aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.bash_profile3
-rw-r--r--.gitignore8
-rw-r--r--.vscode/launch.json16
-rw-r--r--client_secret.json1
-rw-r--r--deploy/assets/greencheck.pngbin0 -> 49332 bytes
-rw-r--r--deploy/assets/pdf.worker.js20320
-rw-r--r--deploy/assets/redx.pngbin0 -> 7353 bytes
-rw-r--r--log.err10
-rw-r--r--log.txt5
-rw-r--r--output.log37908
-rw-r--r--package-lock.json18912
-rw-r--r--package.json222
-rw-r--r--savedLog.txt13
-rw-r--r--session.config.json12
-rw-r--r--solr-8.1.1/contrib/clustering/lib/simple-xml-2.7.1.jarbin413197 -> 0 bytes
-rw-r--r--solr-8.1.1/example/example-DIH/solr/db/conf/dataimport.properties3
-rw-r--r--solr-8.1.1/example/example-DIH/solr/solr/conf/dataimport.properties3
-rw-r--r--solr-8.1.1/example/exampledocs/post.jarbin27249 -> 0 bytes
-rw-r--r--solr-8.1.1/licenses/asciidoctor-ant-1.6.0-alpha.5.jar.sha11
-rw-r--r--solr-8.1.1/licenses/caffeine-2.4.0.jar.sha11
-rw-r--r--solr-8.1.1/licenses/commons-beanutils-1.9.3.jar.sha11
-rw-r--r--solr-8.1.1/licenses/http2-client-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/http2-common-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/http2-hpack-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/http2-http-client-transport-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/http2-server-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jackson-annotations-2.9.8.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jackson-core-2.9.8.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jackson-databind-2.9.8.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jackson-dataformat-smile-2.9.8.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-alpn-client-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-alpn-java-client-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-alpn-java-server-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-alpn-server-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-client-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-continuation-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-deploy-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-http-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-io-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-jmx-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-rewrite-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-security-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-server-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-servlet-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-servlets-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-util-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-webapp-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/jetty-xml-9.4.14.v20181114.jar.sha11
-rw-r--r--solr-8.1.1/licenses/netty-all-4.0.52.Final.jar.sha11
-rw-r--r--solr-8.1.1/licenses/noggit-0.8.jar.sha11
-rw-r--r--solr-8.1.1/licenses/noggit-NOTICE.txt3
-rw-r--r--solr-8.1.1/licenses/simple-xml-2.7.1.jar.sha11
-rw-r--r--solr-8.1.1/licenses/start.jar.sha11
-rw-r--r--solr-8.1.1/licenses/zookeeper-3.4.14.jar.sha11
-rw-r--r--solr-8.1.1/server/lib/jetty-deploy-9.4.14.v20181114.jarbin61457 -> 0 bytes
-rw-r--r--solr-8.1.1/server/lib/jetty-http-9.4.14.v20181114.jarbin204320 -> 0 bytes
-rw-r--r--solr-8.1.1/server/lib/jetty-io-9.4.14.v20181114.jarbin147977 -> 0 bytes
-rw-r--r--solr-8.1.1/server/lib/jetty-security-9.4.14.v20181114.jarbin115991 -> 0 bytes
-rw-r--r--solr-8.1.1/server/lib/jetty-server-9.4.14.v20181114.jarbin617072 -> 0 bytes
-rw-r--r--solr-8.1.1/server/lib/jetty-servlet-9.4.14.v20181114.jarbin121970 -> 0 bytes
-rw-r--r--solr-8.1.1/server/lib/jetty-xml-9.4.14.v20181114.jarbin61035 -> 0 bytes
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/caffeine-2.4.0.jarbin972531 -> 0 bytes
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-beanutils-1.9.3.jarbin246174 -> 0 bytes
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-http-client-transport-9.4.14.v20181114.jarbin39534 -> 0 bytes
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-http-9.4.14.v20181114.jarbin204320 -> 0 bytes
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-io-9.4.14.v20181114.jarbin147977 -> 0 bytes
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-8.1.1.jarbin342841 -> 0 bytes
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/noggit-0.8.jarbin27948 -> 0 bytes
-rw-r--r--solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.4.14.jarbin911603 -> 0 bytes
-rw-r--r--solr-8.1.1/server/tmp/start_1162091086783172980.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_2100856759874646244.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_2576004904278670344.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_2971323387275179200.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_3460593255669540278.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_405608392786276922.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_4369196645186488783.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_4663740760277313991.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_4733293799511346628.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_4743562251234760998.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_5229015896118315876.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_5271912985233565832.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_5430857760236735908.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_544112310419136346.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_5597932996249302507.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_5600187431431293204.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_6033597490012985323.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_6505785163785330358.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_6748886024297018280.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_7361894075389096225.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_7478138185329880739.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_8093481146562670635.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_8121074207568089845.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_8126409778075289800.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_8282691445249098340.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_8630006632336387536.properties11
-rw-r--r--solr-8.1.1/server/tmp/start_8840501328449354697.properties11
-rw-r--r--solr-8.3.1/CHANGES.txt (renamed from solr-8.1.1/CHANGES.txt)625
-rw-r--r--solr-8.3.1/LICENSE.txt (renamed from solr-8.1.1/LICENSE.txt)0
-rw-r--r--solr-8.3.1/LUCENE_CHANGES.txt (renamed from solr-8.1.1/LUCENE_CHANGES.txt)339
-rw-r--r--solr-8.3.1/NOTICE.txt (renamed from solr-8.1.1/NOTICE.txt)13
-rw-r--r--solr-8.3.1/README.txt (renamed from solr-8.1.1/README.txt)0
-rw-r--r--solr-8.3.1/bin/init.d/solr (renamed from solr-8.1.1/bin/init.d/solr)0
-rw-r--r--solr-8.3.1/bin/install_solr_service.sh (renamed from solr-8.1.1/bin/install_solr_service.sh)0
-rw-r--r--solr-8.3.1/bin/oom_solr.sh (renamed from solr-8.1.1/bin/oom_solr.sh)0
-rw-r--r--solr-8.3.1/bin/post (renamed from solr-8.1.1/bin/post)0
-rw-r--r--solr-8.3.1/bin/solr (renamed from solr-8.1.1/bin/solr)31
-rw-r--r--solr-8.3.1/bin/solr-8983.pid1
-rw-r--r--solr-8.3.1/bin/solr-8983.port (renamed from solr-8.1.1/bin/solr-8983.port)0
-rw-r--r--solr-8.3.1/bin/solr.cmd (renamed from solr-8.1.1/bin/solr.cmd)12
-rw-r--r--solr-8.3.1/bin/solr.in.cmd (renamed from solr-8.1.1/bin/solr.in.cmd)7
-rw-r--r--solr-8.3.1/bin/solr.in.sh (renamed from solr-8.1.1/bin/solr.in.sh)9
-rw-r--r--solr-8.3.1/contrib/analysis-extras/README.txt (renamed from solr-8.1.1/contrib/analysis-extras/README.txt)0
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lib/icu4j-62.1.jar (renamed from solr-8.1.1/contrib/analysis-extras/lib/icu4j-62.1.jar)bin12370975 -> 12370975 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lib/morfologik-fsa-2.1.5.jar (renamed from solr-8.1.1/contrib/analysis-extras/lib/morfologik-fsa-2.1.5.jar)bin20140 -> 20140 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lib/morfologik-polish-2.1.5.jar (renamed from solr-8.1.1/contrib/analysis-extras/lib/morfologik-polish-2.1.5.jar)bin1886867 -> 1886867 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lib/morfologik-stemming-2.1.5.jar (renamed from solr-8.1.1/contrib/analysis-extras/lib/morfologik-stemming-2.1.5.jar)bin53644 -> 53644 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lib/morfologik-ukrainian-search-3.9.0.jarbin0 -> 3812649 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lib/opennlp-tools-1.9.1.jar (renamed from solr-8.1.1/contrib/analysis-extras/lib/opennlp-tools-1.9.1.jar)bin1248314 -> 1248314 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-icu-8.3.1.jar (renamed from solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-icu-8.1.1.jar)bin82810 -> 83216 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-morfologik-8.3.1.jar (renamed from solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-morfologik-8.1.1.jar)bin28576 -> 28598 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-opennlp-8.3.1.jar (renamed from solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-opennlp-8.1.1.jar)bin38267 -> 38353 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.3.1.jar (renamed from solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.1.1.jar)bin3597829 -> 3597859 bytes
-rw-r--r--solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-stempel-8.3.1.jar (renamed from solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-stempel-8.1.1.jar)bin518387 -> 518396 bytes
-rw-r--r--solr-8.3.1/contrib/clustering/README.txt (renamed from solr-8.1.1/contrib/clustering/README.txt)0
-rw-r--r--solr-8.3.1/contrib/clustering/lib/attributes-binder-1.3.3.jar (renamed from solr-8.1.1/contrib/clustering/lib/attributes-binder-1.3.3.jar)bin83452 -> 83452 bytes
-rw-r--r--solr-8.3.1/contrib/clustering/lib/carrot2-guava-18.0.jar (renamed from solr-8.1.1/contrib/clustering/lib/carrot2-guava-18.0.jar)bin2329412 -> 2329412 bytes
-rw-r--r--solr-8.3.1/contrib/clustering/lib/carrot2-mini-3.16.0.jar (renamed from solr-8.1.1/contrib/clustering/lib/carrot2-mini-3.16.0.jar)bin1003752 -> 1003752 bytes
-rw-r--r--solr-8.3.1/contrib/clustering/lib/jackson-annotations-2.9.9.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-annotations-2.9.8.jar)bin66894 -> 66897 bytes
-rw-r--r--solr-8.3.1/contrib/clustering/lib/jackson-databind-2.9.9.3.jar (renamed from solr-8.1.1/contrib/clustering/lib/jackson-databind-2.9.8.jar)bin1347236 -> 1348389 bytes
-rw-r--r--solr-8.3.1/contrib/clustering/lib/simple-xml-safe-2.7.1.jarbin0 -> 417640 bytes
-rw-r--r--solr-8.3.1/contrib/dataimporthandler-extras/lib/activation-1.1.1.jar (renamed from solr-8.1.1/contrib/dataimporthandler-extras/lib/activation-1.1.1.jar)bin69409 -> 69409 bytes
-rw-r--r--solr-8.3.1/contrib/dataimporthandler-extras/lib/gimap-1.5.1.jar (renamed from solr-8.1.1/contrib/dataimporthandler-extras/lib/gimap-1.5.1.jar)bin15075 -> 15075 bytes
-rw-r--r--solr-8.3.1/contrib/dataimporthandler-extras/lib/javax.mail-1.5.1.jar (renamed from solr-8.1.1/contrib/dataimporthandler-extras/lib/javax.mail-1.5.1.jar)bin545362 -> 545362 bytes
-rw-r--r--solr-8.3.1/contrib/dataimporthandler/README.txt (renamed from solr-8.1.1/contrib/dataimporthandler/README.txt)0
-rw-r--r--solr-8.3.1/contrib/extraction/README.txt (renamed from solr-8.1.1/contrib/extraction/README.txt)0
-rw-r--r--solr-8.3.1/contrib/extraction/lib/apache-mime4j-core-0.8.2.jar (renamed from solr-8.1.1/contrib/extraction/lib/apache-mime4j-core-0.8.2.jar)bin103707 -> 103707 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/apache-mime4j-dom-0.8.2.jar (renamed from solr-8.1.1/contrib/extraction/lib/apache-mime4j-dom-0.8.2.jar)bin330543 -> 330543 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/aspectjrt-1.8.0.jar (renamed from solr-8.1.1/contrib/extraction/lib/aspectjrt-1.8.0.jar)bin117099 -> 117099 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/bcmail-jdk15on-1.60.jar (renamed from solr-8.1.1/contrib/extraction/lib/bcmail-jdk15on-1.60.jar)bin108233 -> 108233 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/bcpkix-jdk15on-1.60.jar (renamed from solr-8.1.1/contrib/extraction/lib/bcpkix-jdk15on-1.60.jar)bin796532 -> 796532 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/bcprov-jdk15on-1.60.jar (renamed from solr-8.1.1/contrib/extraction/lib/bcprov-jdk15on-1.60.jar)bin4189874 -> 4189874 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/boilerpipe-1.1.0.jar (renamed from solr-8.1.1/contrib/extraction/lib/boilerpipe-1.1.0.jar)bin92027 -> 92027 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/commons-collections4-4.2.jar (renamed from solr-8.1.1/contrib/extraction/lib/commons-collections4-4.2.jar)bin752798 -> 752798 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/commons-compress-1.18.jar (renamed from solr-8.1.1/contrib/extraction/lib/commons-compress-1.18.jar)bin591748 -> 591748 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/curvesapi-1.04.jar (renamed from solr-8.1.1/contrib/extraction/lib/curvesapi-1.04.jar)bin98365 -> 98365 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/dec-0.1.2.jar (renamed from solr-8.1.1/contrib/extraction/lib/dec-0.1.2.jar)bin98115 -> 98115 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/fontbox-2.0.12.jar (renamed from solr-8.1.1/contrib/extraction/lib/fontbox-2.0.12.jar)bin1557183 -> 1557183 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/icu4j-62.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/icu4j-62.1.jar)bin12370975 -> 12370975 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/isoparser-1.1.22.jar (renamed from solr-8.1.1/contrib/extraction/lib/isoparser-1.1.22.jar)bin1060923 -> 1060923 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/jackcess-2.1.12.jar (renamed from solr-8.1.1/contrib/extraction/lib/jackcess-2.1.12.jar)bin889128 -> 889128 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/jackcess-encrypt-2.1.4.jar (renamed from solr-8.1.1/contrib/extraction/lib/jackcess-encrypt-2.1.4.jar)bin86730 -> 86730 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/java-libpst-0.8.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/java-libpst-0.8.1.jar)bin85452 -> 85452 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/jdom2-2.0.6.jar (renamed from solr-8.1.1/contrib/extraction/lib/jdom2-2.0.6.jar)bin304924 -> 304924 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/jempbox-1.8.16.jar (renamed from solr-8.1.1/contrib/extraction/lib/jempbox-1.8.16.jar)bin51743 -> 51743 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/jmatio-1.5.jar (renamed from solr-8.1.1/contrib/extraction/lib/jmatio-1.5.jar)bin75551 -> 75551 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/juniversalchardet-1.0.3.jar (renamed from solr-8.1.1/contrib/extraction/lib/juniversalchardet-1.0.3.jar)bin220813 -> 220813 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/metadata-extractor-2.11.0.jar (renamed from solr-8.1.1/contrib/extraction/lib/metadata-extractor-2.11.0.jar)bin672656 -> 672656 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/parso-2.0.9.jar (renamed from solr-8.1.1/contrib/extraction/lib/parso-2.0.9.jar)bin55067 -> 55067 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/pdfbox-2.0.12.jar (renamed from solr-8.1.1/contrib/extraction/lib/pdfbox-2.0.12.jar)bin2541248 -> 2541248 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/pdfbox-tools-2.0.12.jar (renamed from solr-8.1.1/contrib/extraction/lib/pdfbox-tools-2.0.12.jar)bin72937 -> 72937 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/poi-4.0.0.jar (renamed from solr-8.1.1/contrib/extraction/lib/poi-4.0.0.jar)bin2715721 -> 2715721 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/poi-ooxml-4.0.0.jar (renamed from solr-8.1.1/contrib/extraction/lib/poi-ooxml-4.0.0.jar)bin1758061 -> 1758061 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/poi-ooxml-schemas-4.0.0.jar (renamed from solr-8.1.1/contrib/extraction/lib/poi-ooxml-schemas-4.0.0.jar)bin6477408 -> 6477408 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/poi-scratchpad-4.0.0.jar (renamed from solr-8.1.1/contrib/extraction/lib/poi-scratchpad-4.0.0.jar)bin1382948 -> 1382948 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/rome-1.5.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/rome-1.5.1.jar)bin242809 -> 242809 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/rome-utils-1.5.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/rome-utils-1.5.1.jar)bin6812 -> 6812 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/tagsoup-1.2.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/tagsoup-1.2.1.jar)bin90722 -> 90722 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/tika-core-1.19.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/tika-core-1.19.1.jar)bin694500 -> 694500 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/tika-java7-1.19.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/tika-java7-1.19.1.jar)bin13990 -> 13990 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/tika-parsers-1.19.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/tika-parsers-1.19.1.jar)bin1157388 -> 1157388 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/tika-xmp-1.19.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/tika-xmp-1.19.1.jar)bin34489 -> 34489 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/vorbis-java-core-0.8.jar (renamed from solr-8.1.1/contrib/extraction/lib/vorbis-java-core-0.8.jar)bin121084 -> 121084 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/vorbis-java-tika-0.8.jar (renamed from solr-8.1.1/contrib/extraction/lib/vorbis-java-tika-0.8.jar)bin24941 -> 24941 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/xercesImpl-2.9.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/xercesImpl-2.9.1.jar)bin1229125 -> 1229125 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/xmlbeans-3.0.1.jar (renamed from solr-8.1.1/contrib/extraction/lib/xmlbeans-3.0.1.jar)bin2582300 -> 2582300 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/xmpcore-5.1.3.jar (renamed from solr-8.1.1/contrib/extraction/lib/xmpcore-5.1.3.jar)bin91822 -> 91822 bytes
-rw-r--r--solr-8.3.1/contrib/extraction/lib/xz-1.8.jar (renamed from solr-8.1.1/contrib/extraction/lib/xz-1.8.jar)bin108555 -> 108555 bytes
-rw-r--r--solr-8.3.1/contrib/jaegertracer-configurator/README.txt32
-rw-r--r--solr-8.3.1/contrib/jaegertracer-configurator/lib/jaeger-core-0.35.5.jarbin0 -> 134790 bytes
-rw-r--r--solr-8.3.1/contrib/jaegertracer-configurator/lib/jaeger-thrift-0.35.5.jarbin0 -> 704038 bytes
-rw-r--r--solr-8.3.1/contrib/jaegertracer-configurator/lib/libthrift-0.12.0.jarbin0 -> 246445 bytes
-rw-r--r--solr-8.3.1/contrib/langid/README.txt (renamed from solr-8.1.1/contrib/langid/README.txt)0
-rw-r--r--solr-8.3.1/contrib/langid/lib/jsonic-1.2.7.jar (renamed from solr-8.1.1/contrib/langid/lib/jsonic-1.2.7.jar)bin147477 -> 147477 bytes
-rw-r--r--solr-8.3.1/contrib/langid/lib/langdetect-1.1-20120112.jar (renamed from solr-8.1.1/contrib/langid/lib/langdetect-1.1-20120112.jar)bin1236033 -> 1236033 bytes
-rw-r--r--solr-8.3.1/contrib/langid/lib/opennlp-tools-1.9.1.jar (renamed from solr-8.1.1/contrib/langid/lib/opennlp-tools-1.9.1.jar)bin1248314 -> 1248314 bytes
-rw-r--r--solr-8.3.1/contrib/ltr/README.txt (renamed from solr-8.1.1/contrib/ltr/README.txt)0
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/README.txt (renamed from solr-8.1.1/contrib/prometheus-exporter/README.txt)0
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter (renamed from solr-8.1.1/contrib/prometheus-exporter/bin/solr-exporter)23
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter.cmd (renamed from solr-8.1.1/contrib/prometheus-exporter/bin/solr-exporter.cmd)7
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json (renamed from solr-8.1.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json)0
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml (renamed from solr-8.1.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml)0
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/argparse4j-0.8.1.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/argparse4j-0.8.1.jar)bin110140 -> 110140 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/jackson-annotations-2.9.9.jar (renamed from solr-8.1.1/contrib/clustering/lib/jackson-annotations-2.9.8.jar)bin66894 -> 66897 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/jackson-core-2.9.9.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/jackson-core-2.9.8.jar)bin325619 -> 325632 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/jackson-databind-2.9.9.3.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/jackson-databind-2.9.8.jar)bin1347236 -> 1348389 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/jackson-jq-0.0.8.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/jackson-jq-0.0.8.jar)bin254678 -> 254678 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/log4j-api-2.11.2.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/log4j-api-2.11.2.jar)bin266283 -> 266283 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/log4j-core-2.11.2.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/log4j-core-2.11.2.jar)bin1629585 -> 1629585 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/log4j-slf4j-impl-2.11.2.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/log4j-slf4j-impl-2.11.2.jar)bin23239 -> 23239 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/simpleclient-0.2.0.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/simpleclient-0.2.0.jar)bin57981 -> 57981 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/simpleclient_common-0.2.0.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/simpleclient_common-0.2.0.jar)bin5754 -> 5754 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/simpleclient_httpserver-0.2.0.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/simpleclient_httpserver-0.2.0.jar)bin9515 -> 9515 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lib/slf4j-api-1.7.24.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/slf4j-api-1.7.24.jar)bin41205 -> 41205 bytes
-rw-r--r--solr-8.3.1/contrib/prometheus-exporter/lucene-libs/lucene-analyzers-common-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-common-8.1.1.jar)bin1655240 -> 1681448 bytes
-rw-r--r--solr-8.3.1/contrib/velocity/lib/commons-lang3-3.8.1.jar (renamed from solr-8.1.1/contrib/velocity/lib/commons-lang3-3.8.1.jar)bin501879 -> 501879 bytes
-rw-r--r--solr-8.3.1/contrib/velocity/lib/velocity-engine-core-2.0.jar (renamed from solr-8.1.1/contrib/velocity/lib/velocity-engine-core-2.0.jar)bin432111 -> 432111 bytes
-rw-r--r--solr-8.3.1/contrib/velocity/lib/velocity-tools-generic-3.0.jar (renamed from solr-8.1.1/contrib/velocity/lib/velocity-tools-generic-3.0.jar)bin213692 -> 213692 bytes
-rw-r--r--solr-8.3.1/contrib/velocity/lib/velocity-tools-view-3.0.jar (renamed from solr-8.1.1/contrib/velocity/lib/velocity-tools-view-3.0.jar)bin118794 -> 118794 bytes
-rw-r--r--solr-8.3.1/contrib/velocity/lib/velocity-tools-view-jsp-3.0.jar (renamed from solr-8.1.1/contrib/velocity/lib/velocity-tools-view-jsp-3.0.jar)bin28701 -> 28701 bytes
-rw-r--r--solr-8.3.1/docs/images/solr.svg (renamed from solr-8.1.1/docs/images/solr.svg)0
-rw-r--r--solr-8.3.1/docs/index.html (renamed from solr-8.1.1/docs/index.html)6
-rw-r--r--solr-8.3.1/example/README.txt (renamed from solr-8.1.1/example/README.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/README.txt (renamed from solr-8.1.1/example/example-DIH/README.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/hsqldb/ex.script (renamed from solr-8.1.1/example/example-DIH/hsqldb/ex.script)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/atom/conf/atom-data-config.xml (renamed from solr-8.1.1/example/example-DIH/solr/atom/conf/atom-data-config.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/atom/conf/lang/stopwords_en.txt (renamed from solr-8.1.1/example/example-DIH/solr/atom/conf/lang/stopwords_en.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/atom/conf/managed-schema (renamed from solr-8.1.1/example/example-DIH/solr/atom/conf/managed-schema)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/atom/conf/protwords.txt (renamed from solr-8.1.1/example/example-DIH/solr/atom/conf/protwords.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/atom/conf/solrconfig.xml (renamed from solr-8.1.1/example/example-DIH/solr/atom/conf/solrconfig.xml)2
-rw-r--r--solr-8.3.1/example/example-DIH/solr/atom/conf/synonyms.txt (renamed from solr-8.1.1/example/example-DIH/solr/atom/conf/synonyms.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/atom/conf/url_types.txt (renamed from solr-8.1.1/example/example-DIH/solr/atom/conf/url_types.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/atom/core.properties (renamed from solr-8.1.1/example/example-DIH/solr/atom/core.properties)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/currency.xml (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/currency.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/db-data-config.xml (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/db-data-config.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/elevate.xml (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/elevate.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_ca.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_ca.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_fr.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_fr.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_ga.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_ga.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_it.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_it.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/hyphenations_ga.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/hyphenations_ga.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stemdict_nl.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stemdict_nl.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stoptags_ja.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stoptags_ja.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ar.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ar.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_bg.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_bg.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ca.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ca.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ckb.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ckb.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_cz.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_cz.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_da.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_da.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_de.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_de.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_el.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_el.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_en.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_en.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_es.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_es.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_eu.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_eu.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_fa.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_fa.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_fi.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_fi.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_fr.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_fr.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ga.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ga.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_gl.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_gl.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_hi.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_hi.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_hu.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_hu.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_hy.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_hy.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_id.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_id.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_it.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_it.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ja.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ja.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_lv.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_lv.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_nl.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_nl.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_no.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_no.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_pt.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_pt.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ro.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ro.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ru.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ru.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_sv.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_sv.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_th.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_th.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_tr.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_tr.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/lang/userdict_ja.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/lang/userdict_ja.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/managed-schema (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/managed-schema)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/mapping-FoldToASCII.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/mapping-FoldToASCII.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/mapping-ISOLatin1Accent.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/mapping-ISOLatin1Accent.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/protwords.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/protwords.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/solrconfig.xml (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/solrconfig.xml)2
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/spellings.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/spellings.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/stopwords.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/stopwords.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/synonyms.txt (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/synonyms.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/update-script.js (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/update-script.js)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example.xsl (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/xslt/example.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/xslt/luke.xsl (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/xslt/luke.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl (renamed from solr-8.1.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/core.properties (renamed from solr-8.1.1/example/example-DIH/solr/db/core.properties)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/lib/derby-10.9.1.0.jar (renamed from solr-8.1.1/example/example-DIH/solr/db/lib/derby-10.9.1.0.jar)bin2703892 -> 2703892 bytes
-rw-r--r--solr-8.3.1/example/example-DIH/solr/db/lib/hsqldb-2.4.0.jar (renamed from solr-8.1.1/example/example-DIH/solr/db/lib/hsqldb-2.4.0.jar)bin1543134 -> 1543134 bytes
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/currency.xml (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/currency.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/elevate.xml (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/elevate.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_ca.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_ca.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_fr.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_fr.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_ga.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_ga.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_it.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_it.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/hyphenations_ga.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/hyphenations_ga.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stemdict_nl.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stemdict_nl.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stoptags_ja.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stoptags_ja.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ar.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ar.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_bg.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_bg.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ca.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ca.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ckb.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ckb.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_cz.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_cz.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_da.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_da.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_de.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_de.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_el.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_el.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_en.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_en.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_es.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_es.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_eu.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_eu.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_fa.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_fa.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_fi.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_fi.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_fr.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_fr.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ga.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ga.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_gl.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_gl.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_hi.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_hi.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_hu.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_hu.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_hy.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_hy.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_id.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_id.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_it.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_it.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ja.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ja.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_lv.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_lv.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_nl.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_nl.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_no.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_no.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_pt.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_pt.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ro.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ro.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ru.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ru.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_sv.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_sv.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_th.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_th.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_tr.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_tr.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/lang/userdict_ja.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/lang/userdict_ja.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/mail-data-config.xml (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/mail-data-config.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/managed-schema (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/managed-schema)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/mapping-FoldToASCII.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/mapping-FoldToASCII.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/mapping-ISOLatin1Accent.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/mapping-ISOLatin1Accent.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/protwords.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/protwords.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/solrconfig.xml (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/solrconfig.xml)2
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/spellings.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/spellings.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/stopwords.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/stopwords.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/synonyms.txt (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/synonyms.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/update-script.js (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/update-script.js)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example.xsl (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/example.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl (renamed from solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/mail/core.properties (renamed from solr-8.1.1/example/example-DIH/solr/mail/core.properties)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr.xml (renamed from solr-8.1.1/example/example-DIH/solr/solr.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/currency.xml (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/currency.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/elevate.xml (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/elevate.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_ca.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_ca.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_fr.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_fr.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_ga.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_ga.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_it.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_it.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/hyphenations_ga.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/hyphenations_ga.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stemdict_nl.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stemdict_nl.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stoptags_ja.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stoptags_ja.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ar.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ar.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_bg.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_bg.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ca.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ca.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ckb.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ckb.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_cz.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_cz.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_da.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_da.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_de.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_de.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_el.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_el.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_en.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_en.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_es.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_es.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_eu.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_eu.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_fa.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_fa.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_fi.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_fi.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_fr.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_fr.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ga.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ga.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_gl.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_gl.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_hi.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_hi.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_hu.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_hu.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_hy.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_hy.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_id.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_id.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_it.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_it.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ja.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ja.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_lv.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_lv.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_nl.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_nl.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_no.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_no.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_pt.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_pt.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ro.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ro.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ru.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ru.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_sv.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_sv.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_th.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_th.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_tr.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_tr.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/lang/userdict_ja.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/lang/userdict_ja.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/managed-schema (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/managed-schema)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/mapping-FoldToASCII.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/mapping-FoldToASCII.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/mapping-ISOLatin1Accent.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/mapping-ISOLatin1Accent.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/protwords.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/protwords.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/solr-data-config.xml (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/solr-data-config.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/solrconfig.xml (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/solrconfig.xml)2
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/spellings.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/spellings.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/stopwords.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/stopwords.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/synonyms.txt (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/synonyms.txt)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/update-script.js (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/update-script.js)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example.xsl (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/example.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl (renamed from solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/solr/core.properties (renamed from solr-8.1.1/example/example-DIH/solr/solr/core.properties)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/tika/conf/managed-schema (renamed from solr-8.1.1/example/example-DIH/solr/tika/conf/managed-schema)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/tika/conf/solrconfig.xml (renamed from solr-8.1.1/example/example-DIH/solr/tika/conf/solrconfig.xml)2
-rw-r--r--solr-8.3.1/example/example-DIH/solr/tika/conf/tika-data-config.xml (renamed from solr-8.1.1/example/example-DIH/solr/tika/conf/tika-data-config.xml)0
-rw-r--r--solr-8.3.1/example/example-DIH/solr/tika/core.properties (renamed from solr-8.1.1/example/example-DIH/solr/tika/core.properties)0
-rw-r--r--solr-8.3.1/example/exampledocs/books.csv (renamed from solr-8.1.1/example/exampledocs/books.csv)0
-rw-r--r--solr-8.3.1/example/exampledocs/books.json (renamed from solr-8.1.1/example/exampledocs/books.json)0
-rw-r--r--solr-8.3.1/example/exampledocs/gb18030-example.xml (renamed from solr-8.1.1/example/exampledocs/gb18030-example.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/hd.xml (renamed from solr-8.1.1/example/exampledocs/hd.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/ipod_other.xml (renamed from solr-8.1.1/example/exampledocs/ipod_other.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/ipod_video.xml (renamed from solr-8.1.1/example/exampledocs/ipod_video.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/manufacturers.xml (renamed from solr-8.1.1/example/exampledocs/manufacturers.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/mem.xml (renamed from solr-8.1.1/example/exampledocs/mem.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/money.xml (renamed from solr-8.1.1/example/exampledocs/money.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/monitor.xml (renamed from solr-8.1.1/example/exampledocs/monitor.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/monitor2.xml (renamed from solr-8.1.1/example/exampledocs/monitor2.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/more_books.jsonl (renamed from solr-8.1.1/example/exampledocs/more_books.jsonl)0
-rw-r--r--solr-8.3.1/example/exampledocs/mp500.xml (renamed from solr-8.1.1/example/exampledocs/mp500.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/post.jarbin0 -> 27246 bytes
-rw-r--r--solr-8.3.1/example/exampledocs/sample.html (renamed from solr-8.1.1/example/exampledocs/sample.html)0
-rw-r--r--solr-8.3.1/example/exampledocs/sd500.xml (renamed from solr-8.1.1/example/exampledocs/sd500.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/solr-word.pdf (renamed from solr-8.1.1/example/exampledocs/solr-word.pdf)bin21052 -> 21052 bytes
-rw-r--r--solr-8.3.1/example/exampledocs/solr.xml (renamed from solr-8.1.1/example/exampledocs/solr.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/test_utf8.sh (renamed from solr-8.1.1/example/exampledocs/test_utf8.sh)0
-rw-r--r--solr-8.3.1/example/exampledocs/utf8-example.xml (renamed from solr-8.1.1/example/exampledocs/utf8-example.xml)0
-rw-r--r--solr-8.3.1/example/exampledocs/vidcard.xml (renamed from solr-8.1.1/example/exampledocs/vidcard.xml)0
-rw-r--r--solr-8.3.1/example/files/README.txt (renamed from solr-8.1.1/example/files/README.txt)0
-rw-r--r--solr-8.3.1/example/files/browse-resources/velocity/resources.properties (renamed from solr-8.1.1/example/files/browse-resources/velocity/resources.properties)0
-rw-r--r--solr-8.3.1/example/files/browse-resources/velocity/resources_de_DE.properties (renamed from solr-8.1.1/example/files/browse-resources/velocity/resources_de_DE.properties)0
-rw-r--r--solr-8.3.1/example/files/browse-resources/velocity/resources_fr_FR.properties (renamed from solr-8.1.1/example/files/browse-resources/velocity/resources_fr_FR.properties)0
-rw-r--r--solr-8.3.1/example/files/conf/currency.xml (renamed from solr-8.1.1/example/files/conf/currency.xml)0
-rw-r--r--solr-8.3.1/example/files/conf/elevate.xml (renamed from solr-8.1.1/example/files/conf/elevate.xml)0
-rw-r--r--solr-8.3.1/example/files/conf/email_url_types.txt (renamed from solr-8.1.1/example/files/conf/email_url_types.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/contractions_ca.txt (renamed from solr-8.1.1/example/files/conf/lang/contractions_ca.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/contractions_fr.txt (renamed from solr-8.1.1/example/files/conf/lang/contractions_fr.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/contractions_ga.txt (renamed from solr-8.1.1/example/files/conf/lang/contractions_ga.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/contractions_it.txt (renamed from solr-8.1.1/example/files/conf/lang/contractions_it.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/hyphenations_ga.txt (renamed from solr-8.1.1/example/files/conf/lang/hyphenations_ga.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stemdict_nl.txt (renamed from solr-8.1.1/example/files/conf/lang/stemdict_nl.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stoptags_ja.txt (renamed from solr-8.1.1/example/files/conf/lang/stoptags_ja.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_ar.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_ar.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_bg.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_bg.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_ca.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_ca.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_cz.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_cz.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_da.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_da.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_de.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_de.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_el.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_el.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_en.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_en.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_es.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_es.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_eu.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_eu.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_fa.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_fa.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_fi.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_fi.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_fr.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_fr.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_ga.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_ga.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_gl.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_gl.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_hi.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_hi.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_hu.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_hu.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_hy.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_hy.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_id.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_id.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_it.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_it.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_ja.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_ja.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_lv.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_lv.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_nl.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_nl.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_no.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_no.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_pt.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_pt.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_ro.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_ro.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_ru.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_ru.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_sv.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_sv.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_th.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_th.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/stopwords_tr.txt (renamed from solr-8.1.1/example/files/conf/lang/stopwords_tr.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/lang/userdict_ja.txt (renamed from solr-8.1.1/example/files/conf/lang/userdict_ja.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/managed-schema (renamed from solr-8.1.1/example/files/conf/managed-schema)0
-rw-r--r--solr-8.3.1/example/files/conf/params.json (renamed from solr-8.1.1/example/files/conf/params.json)0
-rw-r--r--solr-8.3.1/example/files/conf/protwords.txt (renamed from solr-8.1.1/example/files/conf/protwords.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/solrconfig.xml (renamed from solr-8.1.1/example/files/conf/solrconfig.xml)2
-rw-r--r--solr-8.3.1/example/files/conf/stopwords.txt (renamed from solr-8.1.1/example/files/conf/stopwords.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/synonyms.txt (renamed from solr-8.1.1/example/files/conf/synonyms.txt)0
-rw-r--r--solr-8.3.1/example/files/conf/update-script.js (renamed from solr-8.1.1/example/files/conf/update-script.js)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/browse.vm (renamed from solr-8.1.1/example/files/conf/velocity/browse.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/dropit.js (renamed from solr-8.1.1/example/files/conf/velocity/dropit.js)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/facet_doc_type.vm (renamed from solr-8.1.1/example/files/conf/velocity/facet_doc_type.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/facet_text_shingles.vm (renamed from solr-8.1.1/example/files/conf/velocity/facet_text_shingles.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/facets.vm (renamed from solr-8.1.1/example/files/conf/velocity/facets.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/footer.vm (renamed from solr-8.1.1/example/files/conf/velocity/footer.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/head.vm (renamed from solr-8.1.1/example/files/conf/velocity/head.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/hit.vm (renamed from solr-8.1.1/example/files/conf/velocity/hit.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/img/english_640.png (renamed from solr-8.1.1/example/files/conf/velocity/img/english_640.png)bin138412 -> 138412 bytes
-rw-r--r--solr-8.3.1/example/files/conf/velocity/img/france_640.png (renamed from solr-8.1.1/example/files/conf/velocity/img/france_640.png)bin99992 -> 99992 bytes
-rw-r--r--solr-8.3.1/example/files/conf/velocity/img/germany_640.png (renamed from solr-8.1.1/example/files/conf/velocity/img/germany_640.png)bin105271 -> 105271 bytes
-rw-r--r--solr-8.3.1/example/files/conf/velocity/img/globe_256.png (renamed from solr-8.1.1/example/files/conf/velocity/img/globe_256.png)bin46622 -> 46622 bytes
-rw-r--r--solr-8.3.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js (renamed from solr-8.1.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/js/dropit.js (renamed from solr-8.1.1/example/files/conf/velocity/js/dropit.js)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/js/jquery.autocomplete.js (renamed from solr-8.1.1/example/files/conf/velocity/js/jquery.autocomplete.js)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js (renamed from solr-8.1.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/layout.vm (renamed from solr-8.1.1/example/files/conf/velocity/layout.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/macros.vm (renamed from solr-8.1.1/example/files/conf/velocity/macros.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/mime_type_lists.vm (renamed from solr-8.1.1/example/files/conf/velocity/mime_type_lists.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/results.vm (renamed from solr-8.1.1/example/files/conf/velocity/results.vm)0
-rw-r--r--solr-8.3.1/example/files/conf/velocity/results_list.vm (renamed from solr-8.1.1/example/files/conf/velocity/results_list.vm)0
-rw-r--r--solr-8.3.1/example/films/README.txt (renamed from solr-8.1.1/example/films/README.txt)0
-rw-r--r--solr-8.3.1/example/films/film_data_generator.py (renamed from solr-8.1.1/example/films/film_data_generator.py)0
-rw-r--r--solr-8.3.1/example/films/films-LICENSE.txt (renamed from solr-8.1.1/example/films/films-LICENSE.txt)0
-rw-r--r--solr-8.3.1/example/films/films.csv (renamed from solr-8.1.1/example/films/films.csv)0
-rw-r--r--solr-8.3.1/example/films/films.json (renamed from solr-8.1.1/example/films/films.json)0
-rw-r--r--solr-8.3.1/example/films/films.xml (renamed from solr-8.1.1/example/films/films.xml)0
-rw-r--r--solr-8.3.1/licenses/activation-1.1.1.jar.sha1 (renamed from solr-8.1.1/licenses/activation-1.1.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/activation-LICENSE-CDDL.txt (renamed from solr-8.1.1/licenses/activation-LICENSE-CDDL.txt)0
-rw-r--r--solr-8.3.1/licenses/android-json-0.0.20131108.vaadin1.jar.sha1 (renamed from solr-8.1.1/licenses/android-json-0.0.20131108.vaadin1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/android-json-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/android-json-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/android-json-NOTICE.txt (renamed from solr-8.1.1/licenses/android-json-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/ant-1.8.2.jar.sha1 (renamed from solr-8.1.1/licenses/ant-1.8.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/ant-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/ant-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/ant-NOTICE.txt (renamed from solr-8.1.1/licenses/ant-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/antlr4-runtime-4.5.1-1.jar.sha1 (renamed from solr-8.1.1/licenses/antlr4-runtime-4.5.1-1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/antlr4-runtime-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/antlr4-runtime-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/antlr4-runtime-NOTICE.txt (renamed from solr-8.1.1/licenses/antlr4-runtime-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/apache-mime4j-core-0.8.2.jar.sha1 (renamed from solr-8.1.1/licenses/apache-mime4j-core-0.8.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/apache-mime4j-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/apache-mime4j-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/apache-mime4j-core-NOTICE.txt (renamed from solr-8.1.1/licenses/apache-mime4j-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/apache-mime4j-dom-0.8.2.jar.sha1 (renamed from solr-8.1.1/licenses/apache-mime4j-dom-0.8.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/apache-mime4j-dom-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/apache-mime4j-dom-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/apache-mime4j-dom-NOTICE.txt (renamed from solr-8.1.1/licenses/apache-mime4j-dom-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/argparse4j-0.8.1.jar.sha1 (renamed from solr-8.1.1/licenses/argparse4j-0.8.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/argparse4j-LICENSE-MIT.txt (renamed from solr-8.1.1/licenses/argparse4j-LICENSE-MIT.txt)0
-rw-r--r--solr-8.3.1/licenses/argparse4j-NOTICE.txt (renamed from solr-8.1.1/licenses/argparse4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/asciidoctor-ant-1.6.2.jar.sha11
-rw-r--r--solr-8.3.1/licenses/asciidoctor-ant-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/asciidoctor-ant-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/asciidoctor-ant-NOTICE.txt (renamed from solr-8.1.1/licenses/asciidoctor-ant-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/asm-5.1.jar.sha1 (renamed from solr-8.1.1/licenses/asm-5.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/asm-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/asm-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/asm-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/asm-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/asm-NOTICE.txt (renamed from solr-8.1.1/licenses/asm-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/asm-commons-5.1.jar.sha1 (renamed from solr-8.1.1/licenses/asm-commons-5.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/asm-commons-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/asm-commons-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/asm-commons-NOTICE.txt (renamed from solr-8.1.1/licenses/asm-commons-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/aspectjrt-1.8.0.jar.sha1 (renamed from solr-8.1.1/licenses/aspectjrt-1.8.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/aspectjrt-LICENSE-EPL.txt (renamed from solr-8.1.1/licenses/aspectjrt-LICENSE-EPL.txt)0
-rw-r--r--solr-8.3.1/licenses/attributes-binder-1.3.3.jar.sha1 (renamed from solr-8.1.1/licenses/attributes-binder-1.3.3.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/attributes-binder-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/attributes-binder-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/attributes-binder-NOTICE.txt (renamed from solr-8.1.1/licenses/attributes-binder-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/avatica-core-1.13.0.jar.sha1 (renamed from solr-8.1.1/licenses/avatica-core-1.13.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/avatica-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/avatica-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/avatica-core-NOTICE.txt (renamed from solr-8.1.1/licenses/avatica-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/bcmail-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/bcmail-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/bcmail-NOTICE.txt (renamed from solr-8.1.1/licenses/bcmail-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/bcmail-jdk15on-1.60.jar.sha1 (renamed from solr-8.1.1/licenses/bcmail-jdk15on-1.60.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/bcpkix-jdk15on-1.60.jar.sha1 (renamed from solr-8.1.1/licenses/bcpkix-jdk15on-1.60.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/bcpkix-jdk15on-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/bcpkix-jdk15on-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/bcpkix-jdk15on-NOTICE.txt (renamed from solr-8.1.1/licenses/bcpkix-jdk15on-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/bcprov-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/bcprov-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/bcprov-NOTICE.txt (renamed from solr-8.1.1/licenses/bcprov-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/bcprov-jdk15on-1.60.jar.sha1 (renamed from solr-8.1.1/licenses/bcprov-jdk15on-1.60.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/boilerpipe-1.1.0.jar.sha1 (renamed from solr-8.1.1/licenses/boilerpipe-1.1.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/boilerpipe-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/boilerpipe-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/boilerpipe-NOTICE.txt (renamed from solr-8.1.1/licenses/boilerpipe-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/byte-buddy-1.9.3.jar.sha1 (renamed from solr-8.1.1/licenses/byte-buddy-1.9.3.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/byte-buddy-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/byte-buddy-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/byte-buddy-NOTICE.txt (renamed from solr-8.1.1/licenses/byte-buddy-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/caffeine-2.8.0.jar.sha11
-rw-r--r--solr-8.3.1/licenses/caffeine-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/caffeine-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/caffeine-NOTICE.txt (renamed from solr-8.1.1/licenses/caffeine-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/calcite-core-1.18.0.jar.sha1 (renamed from solr-8.1.1/licenses/calcite-core-1.18.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/calcite-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/calcite-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/calcite-core-NOTICE.txt (renamed from solr-8.1.1/licenses/calcite-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/calcite-linq4j-1.18.0.jar.sha1 (renamed from solr-8.1.1/licenses/calcite-linq4j-1.18.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/calcite-linq4j-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/calcite-linq4j-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/calcite-linq4j-NOTICE.txt (renamed from solr-8.1.1/licenses/calcite-linq4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/carrot2-guava-18.0.jar.sha1 (renamed from solr-8.1.1/licenses/carrot2-guava-18.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/carrot2-guava-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/carrot2-guava-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/carrot2-guava-NOTICE.txt (renamed from solr-8.1.1/licenses/carrot2-guava-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/carrot2-mini-3.16.0.jar.sha1 (renamed from solr-8.1.1/licenses/carrot2-mini-3.16.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/carrot2-mini-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/carrot2-mini-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/carrot2-mini-NOTICE.txt (renamed from solr-8.1.1/licenses/carrot2-mini-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-cli-1.2.jar.sha1 (renamed from solr-8.1.1/licenses/commons-cli-1.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-cli-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-cli-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-cli-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-cli-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-codec-1.11.jar.sha1 (renamed from solr-8.1.1/licenses/commons-codec-1.11.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-codec-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-codec-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-codec-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-codec-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-collections-3.2.2.jar.sha1 (renamed from solr-8.1.1/licenses/commons-collections-3.2.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-collections-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-collections-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-collections-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-collections-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-collections4-4.2.jar.sha1 (renamed from solr-8.1.1/licenses/commons-collections4-4.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-collections4-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-collections4-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-collections4-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-collections4-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-compiler-3.0.9.jar.sha1 (renamed from solr-8.1.1/licenses/commons-compiler-3.0.9.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-compiler-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/commons-compiler-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-compiler-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-compiler-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-compress-1.18.jar.sha1 (renamed from solr-8.1.1/licenses/commons-compress-1.18.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-compress-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-compress-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-compress-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-compress-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-configuration-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-configuration-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-configuration-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-configuration-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-configuration2-2.1.1.jar.sha1 (renamed from solr-8.1.1/licenses/commons-configuration2-2.1.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-configuration2-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-configuration2-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-configuration2-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-configuration2-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-digester-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-digester-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-digester-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-digester-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-exec-1.3.jar.sha1 (renamed from solr-8.1.1/licenses/commons-exec-1.3.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-exec-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-exec-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-exec-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-exec-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-fileupload-1.3.3.jar.sha1 (renamed from solr-8.1.1/licenses/commons-fileupload-1.3.3.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-fileupload-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-fileupload-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-fileupload-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-fileupload-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-io-2.5.jar.sha1 (renamed from solr-8.1.1/licenses/commons-io-2.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-io-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-io-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-io-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-io-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-lang3-3.8.1.jar.sha1 (renamed from solr-8.1.1/licenses/commons-lang3-3.8.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-lang3-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-lang3-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-lang3-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-lang3-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-logging-1.1.3.jar.sha1 (renamed from solr-8.1.1/licenses/commons-logging-1.1.3.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-logging-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-logging-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-logging-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-logging-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-math3-3.6.1.jar.sha1 (renamed from solr-8.1.1/licenses/commons-math3-3.6.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-math3-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-math3-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-math3-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-math3-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-text-1.6.jar.sha1 (renamed from solr-8.1.1/licenses/commons-text-1.6.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/commons-text-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-text-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/commons-text-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-text-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/curator-client-2.13.0.jar.sha1 (renamed from solr-8.1.1/licenses/curator-client-2.13.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/curator-client-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/curator-client-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/curator-client-NOTICE.txt (renamed from solr-8.1.1/licenses/curator-client-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/curator-framework-2.13.0.jar.sha1 (renamed from solr-8.1.1/licenses/curator-framework-2.13.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/curator-framework-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/curator-framework-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/curator-framework-NOTICE.txt (renamed from solr-8.1.1/licenses/curator-framework-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/curator-recipes-2.13.0.jar.sha1 (renamed from solr-8.1.1/licenses/curator-recipes-2.13.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/curator-recipes-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/curator-recipes-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/curator-recipes-NOTICE.txt (renamed from solr-8.1.1/licenses/curator-recipes-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/curvesapi-1.04.jar.sha1 (renamed from solr-8.1.1/licenses/curvesapi-1.04.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/curvesapi-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/curvesapi-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/curvesapi-NOTICE.txt (renamed from solr-8.1.1/licenses/curvesapi-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/dec-0.1.2.jar.sha1 (renamed from solr-8.1.1/licenses/dec-0.1.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/dec-LICENSE-MIT.txt (renamed from solr-8.1.1/licenses/dec-LICENSE-MIT.txt)0
-rw-r--r--solr-8.3.1/licenses/dec-NOTICE.txt (renamed from solr-8.1.1/licenses/dec-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/derby-10.9.1.0.jar.sha1 (renamed from solr-8.1.1/licenses/derby-10.9.1.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/derby-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/derby-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/derby-NOTICE.txt (renamed from solr-8.1.1/licenses/derby-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/disruptor-3.4.2.jar.sha1 (renamed from solr-8.1.1/licenses/disruptor-3.4.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/disruptor-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/disruptor-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/disruptor-NOTICE.txt (renamed from solr-8.1.1/licenses/disruptor-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/eigenbase-properties-1.1.5.jar.sha1 (renamed from solr-8.1.1/licenses/eigenbase-properties-1.1.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/eigenbase-properties-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/eigenbase-properties-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/eigenbase-properties-NOTICE.txt (renamed from solr-8.1.1/licenses/eigenbase-properties-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/fontbox-2.0.12.jar.sha1 (renamed from solr-8.1.1/licenses/fontbox-2.0.12.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/fontbox-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/fontbox-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/fontbox-NOTICE.txt (renamed from solr-8.1.1/licenses/fontbox-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/gimap-1.5.1.jar.sha1 (renamed from solr-8.1.1/licenses/gimap-1.5.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/gimap-LICENSE-CDDL.txt (renamed from solr-8.1.1/licenses/gimap-LICENSE-CDDL.txt)0
-rw-r--r--solr-8.3.1/licenses/guava-25.1-jre.jar.sha1 (renamed from solr-8.1.1/licenses/guava-25.1-jre.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/guava-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/guava-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/guava-NOTICE.txt (renamed from solr-8.1.1/licenses/guava-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-annotations-3.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/hadoop-annotations-3.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hadoop-annotations-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hadoop-annotations-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-annotations-NOTICE.txt (renamed from solr-8.1.1/licenses/hadoop-annotations-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-auth-3.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/hadoop-auth-3.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hadoop-auth-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hadoop-auth-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-auth-NOTICE.txt (renamed from solr-8.1.1/licenses/hadoop-auth-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-common-3.2.0-tests.jar.sha1 (renamed from solr-8.1.1/licenses/hadoop-common-3.2.0-tests.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hadoop-common-3.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/hadoop-common-3.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hadoop-common-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hadoop-common-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-common-NOTICE.txt (renamed from solr-8.1.1/licenses/hadoop-common-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-common-tests-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hadoop-common-tests-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-common-tests-NOTICE.txt (renamed from solr-8.1.1/licenses/hadoop-common-tests-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-hdfs-3.2.0-tests.jar.sha1 (renamed from solr-8.1.1/licenses/hadoop-hdfs-3.2.0-tests.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hadoop-hdfs-3.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/hadoop-hdfs-3.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hadoop-hdfs-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hadoop-hdfs-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-hdfs-NOTICE.txt (renamed from solr-8.1.1/licenses/hadoop-hdfs-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-hdfs-client-3.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/hadoop-hdfs-client-3.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hadoop-hdfs-client-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hadoop-hdfs-client-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-hdfs-client-NOTICE.txt (renamed from solr-8.1.1/licenses/hadoop-hdfs-client-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-hdfs-tests-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hadoop-hdfs-tests-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-hdfs-tests-NOTICE.txt (renamed from solr-8.1.1/licenses/hadoop-hdfs-tests-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-minicluster-3.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/hadoop-minicluster-3.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hadoop-minicluster-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hadoop-minicluster-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-minicluster-NOTICE.txt (renamed from solr-8.1.1/licenses/hadoop-minicluster-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-minikdc-3.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/hadoop-minikdc-3.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hadoop-minikdc-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hadoop-minikdc-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hadoop-minikdc-NOTICE.txt (renamed from solr-8.1.1/licenses/hadoop-minikdc-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hamcrest-core-1.3.jar.sha1 (renamed from solr-8.1.1/licenses/hamcrest-core-1.3.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hamcrest-core-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/hamcrest-core-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/hamcrest-core-NOTICE.txt (renamed from solr-8.1.1/licenses/hamcrest-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hppc-0.8.1.jar.sha1 (renamed from solr-8.1.1/licenses/hppc-0.8.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hppc-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/hppc-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/hppc-NOTICE.txt (renamed from solr-8.1.1/licenses/hppc-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/hsqldb-2.4.0.jar.sha1 (renamed from solr-8.1.1/licenses/hsqldb-2.4.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/hsqldb-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/hsqldb-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/hsqldb-NOTICE.txt (renamed from solr-8.1.1/licenses/hsqldb-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/htrace-core4-4.1.0-incubating.jar.sha1 (renamed from solr-8.1.1/licenses/htrace-core4-4.1.0-incubating.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/htrace-core4-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/htrace-core4-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/htrace-core4-NOTICE.txt (renamed from solr-8.1.1/licenses/htrace-core4-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-client-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/http2-client-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/http2-client-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-client-NOTICE.txt (renamed from solr-8.1.1/licenses/http2-client-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-common-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/http2-common-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/http2-common-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-common-NOTICE.txt (renamed from solr-8.1.1/licenses/http2-common-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-hpack-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/http2-hpack-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/http2-hpack-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-hpack-NOTICE.txt (renamed from solr-8.1.1/licenses/http2-hpack-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-http-client-transport-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/http2-http-client-transport-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/http2-http-client-transport-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-http-client-transport-NOTICE.txt (renamed from solr-8.1.1/licenses/http2-http-client-transport-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-server-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/http2-server-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/http2-server-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/http2-server-NOTICE.txt (renamed from solr-8.1.1/licenses/http2-server-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/httpclient-4.5.6.jar.sha1 (renamed from solr-8.1.1/licenses/httpclient-4.5.6.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/httpclient-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/httpclient-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/httpclient-NOTICE.txt (renamed from solr-8.1.1/licenses/httpclient-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/httpcore-4.4.10.jar.sha1 (renamed from solr-8.1.1/licenses/httpcore-4.4.10.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/httpcore-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/httpcore-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/httpcore-NOTICE.txt (renamed from solr-8.1.1/licenses/httpcore-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/httpmime-4.5.6.jar.sha1 (renamed from solr-8.1.1/licenses/httpmime-4.5.6.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/httpmime-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/httpmime-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/httpmime-NOTICE.txt (renamed from solr-8.1.1/licenses/httpmime-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/icu4j-62.1.jar.sha1 (renamed from solr-8.1.1/licenses/icu4j-62.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/icu4j-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/icu4j-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/icu4j-NOTICE.txt (renamed from solr-8.1.1/licenses/icu4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/isoparser-1.1.22.jar.sha1 (renamed from solr-8.1.1/licenses/isoparser-1.1.22.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/isoparser-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/isoparser-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/isoparser-NOTICE.txt (renamed from solr-8.1.1/licenses/isoparser-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jackcess-2.1.12.jar.sha1 (renamed from solr-8.1.1/licenses/jackcess-2.1.12.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jackcess-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jackcess-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jackcess-NOTICE.txt (renamed from solr-8.1.1/licenses/jackcess-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jackcess-encrypt-2.1.4.jar.sha1 (renamed from solr-8.1.1/licenses/jackcess-encrypt-2.1.4.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jackcess-encrypt-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jackcess-encrypt-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jackcess-encrypt-NOTICE.txt (renamed from solr-8.1.1/licenses/jackcess-encrypt-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-annotations-2.9.9.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jackson-annotations-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jackson-annotations-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-annotations-NOTICE.txt (renamed from solr-8.1.1/licenses/jackson-annotations-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-core-2.9.9.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jackson-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jackson-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-core-NOTICE.txt (renamed from solr-8.1.1/licenses/jackson-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-core-asl-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jackson-core-asl-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-core-asl-NOTICE.txt (renamed from solr-8.1.1/licenses/jackson-core-asl-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-databind-2.9.9.3.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jackson-databind-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jackson-databind-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-databind-NOTICE.txt (renamed from solr-8.1.1/licenses/jackson-databind-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-dataformat-smile-2.9.9.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jackson-dataformat-smile-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jackson-dataformat-smile-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-dataformat-smile-NOTICE.txt (renamed from solr-8.1.1/licenses/jackson-dataformat-smile-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-jq-0.0.8.jar.sha1 (renamed from solr-8.1.1/licenses/jackson-jq-0.0.8.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jackson-jq-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jackson-jq-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-jq-NOTICE.txt (renamed from solr-8.1.1/licenses/jackson-jq-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-mapper-asl-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jackson-mapper-asl-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jackson-mapper-asl-NOTICE.txt (renamed from solr-8.1.1/licenses/jackson-mapper-asl-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jaeger-core-0.35.5.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jaeger-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/log4j-api-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jaeger-core-NOTICE.txt (renamed from solr-8.1.1/licenses/json-path-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jaeger-thrift-0.35.5.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jaeger-thrift-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/log4j-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jaeger-thrift-NOTICE.txt (renamed from solr-8.1.1/licenses/presto-parser-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/janino-3.0.9.jar.sha1 (renamed from solr-8.1.1/licenses/janino-3.0.9.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/janino-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/janino-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/janino-NOTICE.txt (renamed from solr-8.1.1/licenses/janino-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/java-libpst-0.8.1.jar.sha1 (renamed from solr-8.1.1/licenses/java-libpst-0.8.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/java-libpst-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/java-libpst-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/java-libpst-NOTICE.txt (renamed from solr-8.1.1/licenses/java-libpst-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/javax.mail-1.5.1.jar.sha1 (renamed from solr-8.1.1/licenses/javax.mail-1.5.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/javax.mail-LICENSE-CDDL.txt (renamed from solr-8.1.1/licenses/javax.mail-LICENSE-CDDL.txt)0
-rw-r--r--solr-8.3.1/licenses/javax.servlet-api-3.1.0.jar.sha1 (renamed from solr-8.1.1/licenses/javax.servlet-api-3.1.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/javax.servlet-api-LICENSE-CDDL.txt (renamed from solr-8.1.1/licenses/javax.servlet-api-LICENSE-CDDL.txt)0
-rw-r--r--solr-8.3.1/licenses/javax.servlet-api-NOTICE.txt (renamed from solr-8.1.1/licenses/javax.servlet-api-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jcl-over-slf4j-1.7.24.jar.sha1 (renamed from solr-8.1.1/licenses/jcl-over-slf4j-1.7.24.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jcl-over-slf4j-LICENSE-MIT.txt (renamed from solr-8.1.1/licenses/jcl-over-slf4j-LICENSE-MIT.txt)0
-rw-r--r--solr-8.3.1/licenses/jcl-over-slf4j-NOTICE.txt (renamed from solr-8.1.1/licenses/jcl-over-slf4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jdom2-2.0.6.jar.sha1 (renamed from solr-8.1.1/licenses/jdom2-2.0.6.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jdom2-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/jdom2-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/jdom2-NOTICE.txt (renamed from solr-8.1.1/licenses/jdom2-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jempbox-1.8.16.jar.sha1 (renamed from solr-8.1.1/licenses/jempbox-1.8.16.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jempbox-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jempbox-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jempbox-NOTICE.txt (renamed from solr-8.1.1/licenses/jempbox-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jersey-core-1.19.jar.sha1 (renamed from solr-8.1.1/licenses/jersey-core-1.19.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jersey-core-LICENSE-CDDL.txt (renamed from solr-8.1.1/licenses/jersey-core-LICENSE-CDDL.txt)0
-rw-r--r--solr-8.3.1/licenses/jersey-server-1.19.jar.sha1 (renamed from solr-8.1.1/licenses/jersey-server-1.19.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jersey-server-LICENSE-CDDL.txt (renamed from solr-8.1.1/licenses/jersey-server-LICENSE-CDDL.txt)0
-rw-r--r--solr-8.3.1/licenses/jersey-servlet-1.19.jar.sha1 (renamed from solr-8.1.1/licenses/jersey-servlet-1.19.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jersey-servlet-LICENSE-CDDL.txt (renamed from solr-8.1.1/licenses/jersey-servlet-LICENSE-CDDL.txt)0
-rw-r--r--solr-8.3.1/licenses/jetty-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jetty-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jetty-NOTICE.txt (renamed from solr-8.1.1/licenses/jetty-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jetty-alpn-client-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-alpn-java-client-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-alpn-java-server-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-alpn-server-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-client-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-continuation-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-deploy-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-http-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-io-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-jmx-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-rewrite-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-security-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-server-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-servlet-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-servlets-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-util-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-webapp-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jetty-xml-9.4.19.v20190610.jar.sha11
-rw-r--r--solr-8.3.1/licenses/jmatio-1.5.jar.sha1 (renamed from solr-8.1.1/licenses/jmatio-1.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jmatio-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/jmatio-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/jmatio-NOTICE.txt (renamed from solr-8.1.1/licenses/jmatio-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jose4j-0.6.5.jar.sha1 (renamed from solr-8.1.1/licenses/jose4j-0.6.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jose4j-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jose4j-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jose4j-NOTICE.txt (renamed from solr-8.1.1/licenses/jose4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/json-path-2.4.0.jar.sha1 (renamed from solr-8.1.1/licenses/json-path-2.4.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/json-path-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/json-path-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/json-path-NOTICE.txt (renamed from solr-8.1.1/licenses/slice-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jsonic-1.2.7.jar.sha1 (renamed from solr-8.1.1/licenses/jsonic-1.2.7.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jsonic-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/jsonic-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/jsonic-NOTICE.txt (renamed from solr-8.1.1/licenses/jsonic-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/jsoup-1.11.3.jar.sha1 (renamed from solr-8.1.1/licenses/jsoup-1.11.3.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jsoup-LICENSE-MIT.txt (renamed from solr-8.1.1/licenses/jsoup-LICENSE-MIT.txt)0
-rw-r--r--solr-8.3.1/licenses/jul-to-slf4j-1.7.24.jar.sha1 (renamed from solr-8.1.1/licenses/jul-to-slf4j-1.7.24.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/jul-to-slf4j-LICENSE-MIT.txt (renamed from solr-8.1.1/licenses/jul-to-slf4j-LICENSE-MIT.txt)0
-rw-r--r--solr-8.3.1/licenses/jul-to-slf4j-NOTICE.txt (renamed from solr-8.1.1/licenses/jul-to-slf4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/junit-4.12.jar.sha1 (renamed from solr-8.1.1/licenses/junit-4.12.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/junit-LICENSE-CPL.txt (renamed from solr-8.1.1/licenses/junit-LICENSE-CPL.txt)0
-rw-r--r--solr-8.3.1/licenses/junit-NOTICE.txt (renamed from solr-8.1.1/licenses/junit-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/junit4-ant-2.7.2.jar.sha1 (renamed from solr-8.1.1/licenses/junit4-ant-2.7.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/junit4-ant-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/junit4-ant-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/junit4-ant-NOTICE.txt (renamed from solr-8.1.1/licenses/junit4-ant-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/juniversalchardet-1.0.3.jar.sha1 (renamed from solr-8.1.1/licenses/juniversalchardet-1.0.3.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/juniversalchardet-LICENSE-MPL.txt (renamed from solr-8.1.1/licenses/juniversalchardet-LICENSE-MPL.txt)0
-rw-r--r--solr-8.3.1/licenses/juniversalchardet-NOTICE.txt (renamed from solr-8.1.1/licenses/juniversalchardet-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-admin-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerb-admin-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerb-admin-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerb-admin-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-admin-NOTICE.txt (renamed from solr-8.1.1/licenses/kerb-admin-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-client-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerb-client-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerb-client-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerb-client-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-client-NOTICE.txt (renamed from solr-8.1.1/licenses/kerb-client-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-common-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerb-common-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerb-common-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerb-common-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-common-NOTICE.txt (renamed from solr-8.1.1/licenses/kerb-common-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-core-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerb-core-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerb-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerb-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-core-NOTICE.txt (renamed from solr-8.1.1/licenses/kerb-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-crypto-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerb-crypto-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerb-crypto-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerb-crypto-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-crypto-NOTICE.txt (renamed from solr-8.1.1/licenses/kerb-crypto-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-identity-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerb-identity-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerb-identity-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerb-identity-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-identity-NOTICE.txt (renamed from solr-8.1.1/licenses/kerb-identity-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-server-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerb-server-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerb-server-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerb-server-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-server-NOTICE.txt (renamed from solr-8.1.1/licenses/kerb-server-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-simplekdc-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerb-simplekdc-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerb-simplekdc-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerb-simplekdc-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-simplekdc-NOTICE.txt (renamed from solr-8.1.1/licenses/kerb-simplekdc-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-util-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerb-util-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerb-util-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerb-util-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerb-util-NOTICE.txt (renamed from solr-8.1.1/licenses/kerb-util-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-asn1-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerby-asn1-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerby-asn1-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerby-asn1-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-asn1-NOTICE.txt (renamed from solr-8.1.1/licenses/kerby-asn1-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-config-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerby-config-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerby-config-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerby-config-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-config-NOTICE.txt (renamed from solr-8.1.1/licenses/kerby-config-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-kdc-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerby-kdc-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerby-kdc-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerby-kdc-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-kdc-NOTICE.txt (renamed from solr-8.1.1/licenses/kerby-kdc-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-pkix-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerby-pkix-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerby-pkix-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerby-pkix-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-pkix-NOTICE.txt (renamed from solr-8.1.1/licenses/kerby-pkix-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-util-1.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/kerby-util-1.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/kerby-util-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/kerby-util-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/kerby-util-NOTICE.txt (renamed from solr-8.1.1/licenses/kerby-util-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/langdetect-1.1-20120112.jar.sha1 (renamed from solr-8.1.1/licenses/langdetect-1.1-20120112.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/langdetect-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/langdetect-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/langdetect-NOTICE.txt (renamed from solr-8.1.1/licenses/langdetect-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/libthrift-0.12.0.jar.sha11
-rw-r--r--solr-8.3.1/licenses/libthrift-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/log4j-slf4j-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/libthrift-NOTICE.txt (renamed from solr-8.1.1/licenses/commons-beanutils-NOTICE.txt)4
-rw-r--r--solr-8.3.1/licenses/log4j-1.2-api-2.11.2.jar.sha1 (renamed from solr-8.1.1/licenses/log4j-1.2-api-2.11.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/log4j-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/log4j-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/log4j-NOTICE.txt (renamed from solr-8.1.1/licenses/log4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/log4j-api-2.11.2.jar.sha1 (renamed from solr-8.1.1/licenses/log4j-api-2.11.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/log4j-api-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/noggit-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/log4j-api-NOTICE.txt (renamed from solr-8.1.1/licenses/log4j-api-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/log4j-core-2.11.2.jar.sha1 (renamed from solr-8.1.1/licenses/log4j-core-2.11.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/log4j-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/org.restlet-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/log4j-core-NOTICE.txt (renamed from solr-8.1.1/licenses/log4j-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/log4j-slf4j-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/org.restlet.ext.servlet-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/log4j-slf4j-NOTICE.txt (renamed from solr-8.1.1/licenses/log4j-slf4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/log4j-slf4j-impl-2.11.2.jar.sha1 (renamed from solr-8.1.1/licenses/log4j-slf4j-impl-2.11.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/log4j-web-2.11.2.jar.sha1 (renamed from solr-8.1.1/licenses/log4j-web-2.11.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/log4j-web-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/log4j-web-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/log4j-web-NOTICE.txt (renamed from solr-8.1.1/licenses/log4j-web-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/metadata-extractor-2.11.0.jar.sha1 (renamed from solr-8.1.1/licenses/metadata-extractor-2.11.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/metadata-extractor-LICENSE-PD.txt (renamed from solr-8.1.1/licenses/metadata-extractor-LICENSE-PD.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-core-4.0.5.jar.sha1 (renamed from solr-8.1.1/licenses/metrics-core-4.0.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/metrics-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/metrics-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-core-NOTICE.txt (renamed from solr-8.1.1/licenses/metrics-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-graphite-4.0.5.jar.sha1 (renamed from solr-8.1.1/licenses/metrics-graphite-4.0.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/metrics-graphite-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/metrics-graphite-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-graphite-NOTICE.txt (renamed from solr-8.1.1/licenses/metrics-graphite-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-jetty-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/metrics-jetty-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-jetty-NOTICE.txt (renamed from solr-8.1.1/licenses/metrics-jetty-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-jetty9-4.0.5.jar.sha1 (renamed from solr-8.1.1/licenses/metrics-jetty9-4.0.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/metrics-jmx-4.0.5.jar.sha1 (renamed from solr-8.1.1/licenses/metrics-jmx-4.0.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/metrics-jmx-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/metrics-jmx-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-jmx-NOTICE.txt (renamed from solr-8.1.1/licenses/metrics-jmx-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-json-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/metrics-json-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-json-NOTICE.txt (renamed from solr-8.1.1/licenses/metrics-json-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-jvm-4.0.5.jar.sha1 (renamed from solr-8.1.1/licenses/metrics-jvm-4.0.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/metrics-jvm-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/metrics-jvm-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-jvm-NOTICE.txt (renamed from solr-8.1.1/licenses/metrics-jvm-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-servlets-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/metrics-servlets-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/metrics-servlets-NOTICE.txt (renamed from solr-8.1.1/licenses/metrics-servlets-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/mina-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/mina-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/mina-core-NOTICE.txt (renamed from solr-8.1.1/licenses/mina-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/mockito-core-2.23.4.jar.sha1 (renamed from solr-8.1.1/licenses/mockito-core-2.23.4.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/mockito-core-LICENSE-MIT.txt (renamed from solr-8.1.1/licenses/mockito-core-LICENSE-MIT.txt)0
-rw-r--r--solr-8.3.1/licenses/morfologik-fsa-2.1.5.jar.sha1 (renamed from solr-8.1.1/licenses/morfologik-fsa-2.1.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/morfologik-fsa-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/morfologik-fsa-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/morfologik-fsa-NOTICE.txt (renamed from solr-8.1.1/licenses/morfologik-fsa-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/morfologik-polish-2.1.5.jar.sha1 (renamed from solr-8.1.1/licenses/morfologik-polish-2.1.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/morfologik-polish-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/morfologik-polish-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/morfologik-polish-NOTICE.txt (renamed from solr-8.1.1/licenses/morfologik-polish-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/morfologik-stemming-2.1.5.jar.sha1 (renamed from solr-8.1.1/licenses/morfologik-stemming-2.1.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/morfologik-stemming-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/morfologik-stemming-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/morfologik-stemming-NOTICE.txt (renamed from solr-8.1.1/licenses/morfologik-stemming-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/morfologik-ukrainian-search-3.9.0.jar.sha11
-rw-r--r--solr-8.3.1/licenses/morfologik-ukrainian-search-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/commons-beanutils-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/morfologik-ukrainian-search-NOTICE.txt6
-rw-r--r--solr-8.3.1/licenses/netty-all-4.1.29.Final.jar.sha11
-rw-r--r--solr-8.3.1/licenses/netty-all-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/netty-all-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-all-NOTICE.txt (renamed from solr-8.1.1/licenses/netty-all-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-buffer-4.1.29.Final.jar.sha11
-rw-r--r--solr-8.3.1/licenses/netty-buffer-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/objenesis-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-buffer-NOTICE.txt223
-rw-r--r--solr-8.3.1/licenses/netty-codec-4.1.29.Final.jar.sha11
-rw-r--r--solr-8.3.1/licenses/netty-codec-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/opennlp-tools-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-codec-NOTICE.txt223
-rw-r--r--solr-8.3.1/licenses/netty-common-4.1.29.Final.jar.sha11
-rw-r--r--solr-8.3.1/licenses/netty-common-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/presto-parser-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-common-NOTICE.txt223
-rw-r--r--solr-8.3.1/licenses/netty-handler-4.1.29.Final.jar.sha11
-rw-r--r--solr-8.3.1/licenses/netty-handler-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/randomizedtesting-runner-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-handler-NOTICE.txt223
-rw-r--r--solr-8.3.1/licenses/netty-resolver-4.1.29.Final.jar.sha11
-rw-r--r--solr-8.3.1/licenses/netty-resolver-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/rrd4j-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-resolver-NOTICE.txt223
-rw-r--r--solr-8.3.1/licenses/netty-transport-4.1.29.Final.jar.sha11
-rw-r--r--solr-8.3.1/licenses/netty-transport-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/slice-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-transport-NOTICE.txt223
-rw-r--r--solr-8.3.1/licenses/netty-transport-native-epoll-4.1.29.Final.jar.sha11
-rw-r--r--solr-8.3.1/licenses/netty-transport-native-epoll-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/spatial4j-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-transport-native-epoll-NOTICE.txt223
-rw-r--r--solr-8.3.1/licenses/netty-transport-native-unix-common-4.1.29.Final.jar.sha11
-rw-r--r--solr-8.3.1/licenses/netty-transport-native-unix-common-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/velocity-engine-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/netty-transport-native-unix-common-NOTICE.txt223
-rw-r--r--solr-8.3.1/licenses/objenesis-2.6.jar.sha1 (renamed from solr-8.1.1/licenses/objenesis-2.6.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/objenesis-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/woodstox-core-asl-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/objenesis-NOTICE.txt (renamed from solr-8.1.1/licenses/objenesis-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/opennlp-tools-1.9.1.jar.sha1 (renamed from solr-8.1.1/licenses/opennlp-tools-1.9.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/opennlp-tools-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/zookeeper-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/opennlp-tools-NOTICE.txt (renamed from solr-8.1.1/licenses/opennlp-tools-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/opentracing-api-0.33.0.jar.sha11
-rw-r--r--solr-8.3.1/licenses/opentracing-api-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/simpleclient-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/opentracing-api-NOTICE.txt (renamed from solr-8.1.1/licenses/xmpcore-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/opentracing-mock-0.33.0.jar.sha11
-rw-r--r--solr-8.3.1/licenses/opentracing-mock-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/simpleclient_common-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/opentracing-mock-NOTICE.txt1
-rw-r--r--solr-8.3.1/licenses/opentracing-noop-0.33.0.jar.sha11
-rw-r--r--solr-8.3.1/licenses/opentracing-noop-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/simpleclient_httpserver-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/opentracing-noop-NOTICE.txt1
-rw-r--r--solr-8.3.1/licenses/opentracing-util-0.33.0.jar.sha11
-rw-r--r--solr-8.3.1/licenses/opentracing-util-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/tagsoup-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/opentracing-util-NOTICE.txt1
-rw-r--r--solr-8.3.1/licenses/org.restlet-2.3.0.jar.sha1 (renamed from solr-8.1.1/licenses/org.restlet-2.3.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/org.restlet-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/velocity-tools-generic-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/org.restlet-NOTICE.txt (renamed from solr-8.1.1/licenses/org.restlet-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/org.restlet.ext.servlet-2.3.0.jar.sha1 (renamed from solr-8.1.1/licenses/org.restlet.ext.servlet-2.3.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/org.restlet.ext.servlet-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/velocity-tools-view-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/org.restlet.ext.servlet-NOTICE.txt (renamed from solr-8.1.1/licenses/org.restlet.ext.servlet-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/parso-2.0.9.jar.sha1 (renamed from solr-8.1.1/licenses/parso-2.0.9.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/parso-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/parso-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/parso-NOTICE.txt (renamed from solr-8.1.1/licenses/parso-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/pdfbox-2.0.12.jar.sha1 (renamed from solr-8.1.1/licenses/pdfbox-2.0.12.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/pdfbox-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/pdfbox-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/pdfbox-NOTICE.txt (renamed from solr-8.1.1/licenses/pdfbox-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/pdfbox-tools-2.0.12.jar.sha1 (renamed from solr-8.1.1/licenses/pdfbox-tools-2.0.12.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/pdfbox-tools-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/pdfbox-tools-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/pdfbox-tools-NOTICE.txt (renamed from solr-8.1.1/licenses/pdfbox-tools-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/poi-4.0.0.jar.sha1 (renamed from solr-8.1.1/licenses/poi-4.0.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/poi-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/poi-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/poi-NOTICE.txt (renamed from solr-8.1.1/licenses/poi-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/poi-ooxml-4.0.0.jar.sha1 (renamed from solr-8.1.1/licenses/poi-ooxml-4.0.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/poi-ooxml-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/poi-ooxml-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/poi-ooxml-NOTICE.txt (renamed from solr-8.1.1/licenses/poi-ooxml-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/poi-ooxml-schemas-4.0.0.jar.sha1 (renamed from solr-8.1.1/licenses/poi-ooxml-schemas-4.0.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/poi-ooxml-schemas-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/poi-ooxml-schemas-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/poi-ooxml-schemas-NOTICE.txt (renamed from solr-8.1.1/licenses/poi-ooxml-schemas-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/poi-scratchpad-4.0.0.jar.sha1 (renamed from solr-8.1.1/licenses/poi-scratchpad-4.0.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/poi-scratchpad-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/poi-scratchpad-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/poi-scratchpad-NOTICE.txt (renamed from solr-8.1.1/licenses/poi-scratchpad-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/presto-parser-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/presto-parser-NOTICE.txt1
-rw-r--r--solr-8.3.1/licenses/protobuf-java-3.6.1.jar.sha1 (renamed from solr-8.1.1/licenses/protobuf-java-3.6.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/protobuf-java-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/protobuf-java-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/protobuf-java-NOTICE.txt (renamed from solr-8.1.1/licenses/protobuf-java-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/randomizedtesting-runner-2.7.2.jar.sha1 (renamed from solr-8.1.1/licenses/randomizedtesting-runner-2.7.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/randomizedtesting-runner-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/randomizedtesting-runner-NOTICE.txt (renamed from solr-8.1.1/licenses/randomizedtesting-runner-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/re2j-1.2.jar.sha1 (renamed from solr-8.1.1/licenses/re2j-1.2.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/re2j-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/re2j-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/re2j-NOTICE.txt (renamed from solr-8.1.1/licenses/re2j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/rome-1.5.1.jar.sha1 (renamed from solr-8.1.1/licenses/rome-1.5.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/rome-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/rome-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/rome-NOTICE.txt (renamed from solr-8.1.1/licenses/rome-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/rome-utils-1.5.1.jar.sha1 (renamed from solr-8.1.1/licenses/rome-utils-1.5.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/rome-utils-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/rome-utils-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/rome-utils-NOTICE.txt (renamed from solr-8.1.1/licenses/rome-utils-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/rrd4j-3.5.jar.sha1 (renamed from solr-8.1.1/licenses/rrd4j-3.5.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/rrd4j-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/rrd4j-NOTICE.txt (renamed from solr-8.1.1/licenses/rrd4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/s2-geometry-library-java-1.0.0.jar.sha11
-rw-r--r--solr-8.3.1/licenses/s2-geometry-library-java-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/s2-geometry-library-java-NOTICE.txt1
-rw-r--r--solr-8.3.1/licenses/servlet-api-LICENSE-CDDL.txt (renamed from solr-8.1.1/licenses/servlet-api-LICENSE-CDDL.txt)0
-rw-r--r--solr-8.3.1/licenses/servlet-api-NOTICE.txt (renamed from solr-8.1.1/licenses/servlet-api-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/simple-xml-safe-2.7.1.jar.sha11
-rw-r--r--solr-8.3.1/licenses/simple-xml-safe-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/simple-xml-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/simple-xml-safe-NOTICE.txt (renamed from solr-8.1.1/licenses/simple-xml-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/simpleclient-0.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/simpleclient-0.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/simpleclient-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/velocity-tools-view-jsp-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/simpleclient-NOTICE.txt (renamed from solr-8.1.1/licenses/simpleclient-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/simpleclient_common-0.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/simpleclient_common-0.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/simpleclient_common-LICENSE-ASL.txt201
-rw-r--r--solr-8.3.1/licenses/simpleclient_common-NOTICE.txt (renamed from solr-8.1.1/licenses/simpleclient_common-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/simpleclient_httpserver-0.2.0.jar.sha1 (renamed from solr-8.1.1/licenses/simpleclient_httpserver-0.2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/simpleclient_httpserver-LICENSE-ASL.txt201
-rw-r--r--solr-8.3.1/licenses/simpleclient_httpserver-NOTICE.txt (renamed from solr-8.1.1/licenses/simpleclient_httpserver-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/slf4j-LICENSE-MIT.txt (renamed from solr-8.1.1/licenses/slf4j-LICENSE-MIT.txt)0
-rw-r--r--solr-8.3.1/licenses/slf4j-NOTICE.txt (renamed from solr-8.1.1/licenses/slf4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/slf4j-api-1.7.24.jar.sha1 (renamed from solr-8.1.1/licenses/slf4j-api-1.7.24.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/slf4j-simple-1.7.24.jar.sha1 (renamed from solr-8.1.1/licenses/slf4j-simple-1.7.24.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/slice-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/slice-NOTICE.txt1
-rw-r--r--solr-8.3.1/licenses/spatial4j-0.7.jar.sha1 (renamed from solr-8.1.1/licenses/spatial4j-0.7.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/spatial4j-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/spatial4j-NOTICE.txt (renamed from solr-8.1.1/licenses/spatial4j-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/start.jar.sha11
-rw-r--r--solr-8.3.1/licenses/stax2-api-3.1.4.jar.sha1 (renamed from solr-8.1.1/licenses/stax2-api-3.1.4.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/stax2-api-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/stax2-api-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/stax2-api-NOTICE.txt (renamed from solr-8.1.1/licenses/stax2-api-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/t-digest-3.1.jar.sha1 (renamed from solr-8.1.1/licenses/t-digest-3.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/t-digest-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/t-digest-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/t-digest-NOTICE.txt (renamed from solr-8.1.1/licenses/t-digest-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/tagsoup-1.2.1.jar.sha1 (renamed from solr-8.1.1/licenses/tagsoup-1.2.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/tagsoup-LICENSE-ASL.txt201
-rw-r--r--solr-8.3.1/licenses/tagsoup-NOTICE.txt (renamed from solr-8.1.1/licenses/tagsoup-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/tika-core-1.19.1.jar.sha1 (renamed from solr-8.1.1/licenses/tika-core-1.19.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/tika-core-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/tika-core-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/tika-core-NOTICE.txt (renamed from solr-8.1.1/licenses/tika-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/tika-java7-1.19.1.jar.sha1 (renamed from solr-8.1.1/licenses/tika-java7-1.19.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/tika-java7-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/tika-java7-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/tika-java7-NOTICE.txt (renamed from solr-8.1.1/licenses/tika-java7-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/tika-parsers-1.19.1.jar.sha1 (renamed from solr-8.1.1/licenses/tika-parsers-1.19.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/tika-parsers-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/tika-parsers-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/tika-parsers-NOTICE.txt (renamed from solr-8.1.1/licenses/tika-parsers-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/tika-xmp-1.19.1.jar.sha1 (renamed from solr-8.1.1/licenses/tika-xmp-1.19.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/tika-xmp-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/tika-xmp-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/tika-xmp-NOTICE.txt (renamed from solr-8.1.1/licenses/tika-xmp-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/velocity-engine-core-2.0.jar.sha1 (renamed from solr-8.1.1/licenses/velocity-engine-core-2.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/velocity-engine-core-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/velocity-engine-core-NOTICE.txt (renamed from solr-8.1.1/licenses/velocity-engine-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/velocity-tools-generic-3.0.jar.sha1 (renamed from solr-8.1.1/licenses/velocity-tools-generic-3.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/velocity-tools-generic-LICENSE-ASL.txt201
-rw-r--r--solr-8.3.1/licenses/velocity-tools-generic-NOTICE.txt (renamed from solr-8.1.1/licenses/velocity-tools-generic-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/velocity-tools-view-3.0.jar.sha1 (renamed from solr-8.1.1/licenses/velocity-tools-view-3.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/velocity-tools-view-LICENSE-ASL.txt201
-rw-r--r--solr-8.3.1/licenses/velocity-tools-view-NOTICE.txt (renamed from solr-8.1.1/licenses/velocity-tools-view-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/velocity-tools-view-jsp-3.0.jar.sha1 (renamed from solr-8.1.1/licenses/velocity-tools-view-jsp-3.0.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/velocity-tools-view-jsp-LICENSE-ASL.txt201
-rw-r--r--solr-8.3.1/licenses/velocity-tools-view-jsp-NOTICE.txt (renamed from solr-8.1.1/licenses/velocity-tools-view-jsp-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/vorbis-java-core-0.8.jar.sha1 (renamed from solr-8.1.1/licenses/vorbis-java-core-0.8.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/vorbis-java-core-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/vorbis-java-core-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/vorbis-java-core-NOTICE.txt (renamed from solr-8.1.1/licenses/vorbis-java-core-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/vorbis-java-tika-0.8.jar.sha1 (renamed from solr-8.1.1/licenses/vorbis-java-tika-0.8.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/vorbis-java-tika-LICENSE-BSD_LIKE.txt (renamed from solr-8.1.1/licenses/vorbis-java-tika-LICENSE-BSD_LIKE.txt)0
-rw-r--r--solr-8.3.1/licenses/vorbis-java-tika-NOTICE.txt (renamed from solr-8.1.1/licenses/vorbis-java-tika-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/woodstox-core-asl-4.4.1.jar.sha1 (renamed from solr-8.1.1/licenses/woodstox-core-asl-4.4.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/woodstox-core-asl-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/woodstox-core-asl-NOTICE.txt (renamed from solr-8.1.1/licenses/woodstox-core-asl-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/xercesImpl-2.9.1.jar.sha1 (renamed from solr-8.1.1/licenses/xercesImpl-2.9.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/xercesImpl-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/xercesImpl-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/xercesImpl-NOTICE.txt (renamed from solr-8.1.1/licenses/xercesImpl-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/xmlbeans-3.0.1.jar.sha1 (renamed from solr-8.1.1/licenses/xmlbeans-3.0.1.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/xmlbeans-LICENSE-ASL.txt (renamed from solr-8.1.1/licenses/xmlbeans-LICENSE-ASL.txt)0
-rw-r--r--solr-8.3.1/licenses/xmlbeans-NOTICE.txt (renamed from solr-8.1.1/licenses/xmlbeans-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/xmpcore-5.1.3.jar.sha1 (renamed from solr-8.1.1/licenses/xmpcore-5.1.3.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/xmpcore-LICENSE-BSD.txt (renamed from solr-8.1.1/licenses/xmpcore-LICENSE-BSD.txt)0
-rw-r--r--solr-8.3.1/licenses/xmpcore-NOTICE.txt1
-rw-r--r--solr-8.3.1/licenses/xz-1.8.jar.sha1 (renamed from solr-8.1.1/licenses/xz-1.8.jar.sha1)0
-rw-r--r--solr-8.3.1/licenses/xz-LICENSE-PD.txt (renamed from solr-8.1.1/licenses/xz-LICENSE-PD.txt)0
-rw-r--r--solr-8.3.1/licenses/xz-NOTICE.txt (renamed from solr-8.1.1/licenses/xz-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/zookeeper-3.5.5.jar.sha11
-rw-r--r--solr-8.3.1/licenses/zookeeper-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/zookeeper-NOTICE.txt (renamed from solr-8.1.1/licenses/zookeeper-NOTICE.txt)0
-rw-r--r--solr-8.3.1/licenses/zookeeper-jute-3.5.5.jar.sha11
-rw-r--r--solr-8.3.1/licenses/zookeeper-jute-LICENSE-ASL.txt202
-rw-r--r--solr-8.3.1/licenses/zookeeper-jute-NOTICE.txt5
-rw-r--r--solr-8.3.1/server/README.txt (renamed from solr-8.1.1/server/README.txt)0
-rw-r--r--solr-8.3.1/server/contexts/solr-jetty-context.xml (renamed from solr-8.1.1/server/contexts/solr-jetty-context.xml)0
-rw-r--r--solr-8.3.1/server/etc/jetty-http.xml (renamed from solr-8.1.1/server/etc/jetty-http.xml)0
-rw-r--r--solr-8.3.1/server/etc/jetty-https.xml (renamed from solr-8.1.1/server/etc/jetty-https.xml)0
-rw-r--r--solr-8.3.1/server/etc/jetty-https8.xml (renamed from solr-8.1.1/server/etc/jetty-https8.xml)0
-rw-r--r--solr-8.3.1/server/etc/jetty-ssl.xml (renamed from solr-8.1.1/server/etc/jetty-ssl.xml)1
-rw-r--r--solr-8.3.1/server/etc/jetty.xml (renamed from solr-8.1.1/server/etc/jetty.xml)0
-rw-r--r--solr-8.3.1/server/etc/webdefault.xml (renamed from solr-8.1.1/server/etc/webdefault.xml)0
-rw-r--r--solr-8.3.1/server/lib/ext/disruptor-3.4.2.jar (renamed from solr-8.1.1/server/lib/ext/disruptor-3.4.2.jar)bin83064 -> 83064 bytes
-rw-r--r--solr-8.3.1/server/lib/ext/jcl-over-slf4j-1.7.24.jar (renamed from solr-8.1.1/server/lib/ext/jcl-over-slf4j-1.7.24.jar)bin16516 -> 16516 bytes
-rw-r--r--solr-8.3.1/server/lib/ext/jul-to-slf4j-1.7.24.jar (renamed from solr-8.1.1/server/lib/ext/jul-to-slf4j-1.7.24.jar)bin4597 -> 4597 bytes
-rw-r--r--solr-8.3.1/server/lib/ext/log4j-1.2-api-2.11.2.jar (renamed from solr-8.1.1/server/lib/ext/log4j-1.2-api-2.11.2.jar)bin64746 -> 64746 bytes
-rw-r--r--solr-8.3.1/server/lib/ext/log4j-api-2.11.2.jar (renamed from solr-8.1.1/server/lib/ext/log4j-api-2.11.2.jar)bin266283 -> 266283 bytes
-rw-r--r--solr-8.3.1/server/lib/ext/log4j-core-2.11.2.jar (renamed from solr-8.1.1/server/lib/ext/log4j-core-2.11.2.jar)bin1629585 -> 1629585 bytes
-rw-r--r--solr-8.3.1/server/lib/ext/log4j-slf4j-impl-2.11.2.jar (renamed from solr-8.1.1/server/lib/ext/log4j-slf4j-impl-2.11.2.jar)bin23239 -> 23239 bytes
-rw-r--r--solr-8.3.1/server/lib/ext/log4j-web-2.11.2.jar (renamed from solr-8.1.1/server/lib/ext/log4j-web-2.11.2.jar)bin32522 -> 32522 bytes
-rw-r--r--solr-8.3.1/server/lib/ext/slf4j-api-1.7.24.jar (renamed from solr-8.1.1/server/lib/ext/slf4j-api-1.7.24.jar)bin41205 -> 41205 bytes
-rw-r--r--solr-8.3.1/server/lib/http2-common-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/http2-common-9.4.14.v20181114.jar)bin188999 -> 186474 bytes
-rw-r--r--solr-8.3.1/server/lib/http2-hpack-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/http2-hpack-9.4.14.v20181114.jar)bin50834 -> 50438 bytes
-rw-r--r--solr-8.3.1/server/lib/http2-server-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/http2-server-9.4.14.v20181114.jar)bin59238 -> 59083 bytes
-rw-r--r--solr-8.3.1/server/lib/javax.servlet-api-3.1.0.jar (renamed from solr-8.1.1/server/lib/javax.servlet-api-3.1.0.jar)bin95806 -> 95806 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-alpn-java-server-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/jetty-alpn-java-server-9.4.14.v20181114.jar)bin17543 -> 17391 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-alpn-server-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/jetty-alpn-server-9.4.14.v20181114.jar)bin17812 -> 17696 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-continuation-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/jetty-continuation-9.4.14.v20181114.jar)bin25679 -> 25448 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-deploy-9.4.19.v20190610.jarbin0 -> 62576 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-http-9.4.19.v20190610.jarbin0 -> 207685 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-io-9.4.19.v20190610.jarbin0 -> 155937 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-jmx-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/jetty-jmx-9.4.14.v20181114.jar)bin42608 -> 42363 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-rewrite-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/jetty-rewrite-9.4.14.v20181114.jar)bin43427 -> 43009 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-security-9.4.19.v20190610.jarbin0 -> 116949 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-server-9.4.19.v20190610.jarbin0 -> 649028 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-servlet-9.4.19.v20190610.jarbin0 -> 121331 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-servlets-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/jetty-servlets-9.4.14.v20181114.jar)bin101933 -> 101265 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-util-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-util-9.4.14.v20181114.jar)bin516446 -> 526571 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-webapp-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/jetty-webapp-9.4.14.v20181114.jar)bin137249 -> 136674 bytes
-rw-r--r--solr-8.3.1/server/lib/jetty-xml-9.4.19.v20190610.jarbin0 -> 62225 bytes
-rw-r--r--solr-8.3.1/server/lib/metrics-core-4.0.5.jar (renamed from solr-8.1.1/server/lib/metrics-core-4.0.5.jar)bin97688 -> 97688 bytes
-rw-r--r--solr-8.3.1/server/lib/metrics-graphite-4.0.5.jar (renamed from solr-8.1.1/server/lib/metrics-graphite-4.0.5.jar)bin21981 -> 21981 bytes
-rw-r--r--solr-8.3.1/server/lib/metrics-jetty9-4.0.5.jar (renamed from solr-8.1.1/server/lib/metrics-jetty9-4.0.5.jar)bin18426 -> 18426 bytes
-rw-r--r--solr-8.3.1/server/lib/metrics-jmx-4.0.5.jar (renamed from solr-8.1.1/server/lib/metrics-jmx-4.0.5.jar)bin20456 -> 20456 bytes
-rw-r--r--solr-8.3.1/server/lib/metrics-jvm-4.0.5.jar (renamed from solr-8.1.1/server/lib/metrics-jvm-4.0.5.jar)bin23792 -> 23792 bytes
-rw-r--r--solr-8.3.1/server/modules/http.mod (renamed from solr-8.1.1/server/modules/http.mod)0
-rw-r--r--solr-8.3.1/server/modules/https.mod (renamed from solr-8.1.1/server/modules/https.mod)0
-rw-r--r--solr-8.3.1/server/modules/https8.mod (renamed from solr-8.1.1/server/modules/https8.mod)0
-rw-r--r--solr-8.3.1/server/modules/server.mod (renamed from solr-8.1.1/server/modules/server.mod)0
-rw-r--r--solr-8.3.1/server/modules/ssl.mod (renamed from solr-8.1.1/server/modules/ssl.mod)0
-rw-r--r--solr-8.3.1/server/resources/jetty-logging.properties (renamed from solr-8.1.1/server/resources/jetty-logging.properties)0
-rw-r--r--solr-8.3.1/server/resources/log4j2-console.xml (renamed from solr-8.1.1/server/resources/log4j2-console.xml)0
-rw-r--r--solr-8.3.1/server/resources/log4j2.xml (renamed from solr-8.1.1/server/resources/log4j2.xml)0
-rw-r--r--solr-8.3.1/server/scripts/cloud-scripts/snapshotscli.sh (renamed from solr-8.1.1/server/scripts/cloud-scripts/snapshotscli.sh)0
-rw-r--r--solr-8.3.1/server/scripts/cloud-scripts/zkcli.bat (renamed from solr-8.1.1/server/scripts/cloud-scripts/zkcli.bat)0
-rw-r--r--solr-8.3.1/server/scripts/cloud-scripts/zkcli.sh (renamed from solr-8.1.1/server/scripts/cloud-scripts/zkcli.sh)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/antlr4-runtime-4.5.1-1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/antlr4-runtime-4.5.1-1.jar)bin302034 -> 302034 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/asm-5.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/asm-5.1.jar)bin53468 -> 53468 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/asm-commons-5.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/asm-commons-5.1.jar)bin47195 -> 47195 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/avatica-core-1.13.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/avatica-core-1.13.0.jar)bin1309631 -> 1309631 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/caffeine-2.8.0.jarbin0 -> 879660 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-core-1.18.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-core-1.18.0.jar)bin4743200 -> 4743200 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-linq4j-1.18.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-linq4j-1.18.0.jar)bin458695 -> 458695 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-cli-1.2.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-cli-1.2.jar)bin41123 -> 41123 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-codec-1.11.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-codec-1.11.jar)bin335042 -> 335042 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-collections-3.2.2.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-collections-3.2.2.jar)bin588337 -> 588337 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-compiler-3.0.9.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-compiler-3.0.9.jar)bin37871 -> 37871 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-configuration2-2.1.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-configuration2-2.1.1.jar)bin616888 -> 616888 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-exec-1.3.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-exec-1.3.jar)bin54423 -> 54423 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-fileupload-1.3.3.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-fileupload-1.3.3.jar)bin70604 -> 70604 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-io-2.5.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-io-2.5.jar)bin208700 -> 208700 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-lang3-3.8.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-lang3-3.8.1.jar)bin501879 -> 501879 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-math3-3.6.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-math3-3.6.1.jar)bin2213560 -> 2213560 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-text-1.6.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-text-1.6.jar)bin197176 -> 197176 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/curator-client-2.13.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/curator-client-2.13.0.jar)bin2423157 -> 2423157 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/curator-framework-2.13.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/curator-framework-2.13.0.jar)bin201965 -> 201965 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/curator-recipes-2.13.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/curator-recipes-2.13.0.jar)bin283653 -> 283653 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/disruptor-3.4.2.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/disruptor-3.4.2.jar)bin83064 -> 83064 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/eigenbase-properties-1.1.5.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/eigenbase-properties-1.1.5.jar)bin18482 -> 18482 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/guava-25.1-jre.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/guava-25.1-jre.jar)bin2734339 -> 2734339 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-annotations-3.2.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-annotations-3.2.0.jar)bin60244 -> 60244 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-auth-3.2.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-auth-3.2.0.jar)bin139058 -> 139058 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-common-3.2.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-common-3.2.0.jar)bin4092595 -> 4092595 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-hdfs-client-3.2.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-hdfs-client-3.2.0.jar)bin5023516 -> 5023516 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hppc-0.8.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hppc-0.8.1.jar)bin1159086 -> 1159086 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/htrace-core4-4.1.0-incubating.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/htrace-core4-4.1.0-incubating.jar)bin1502280 -> 1502280 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-client-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-client-9.4.14.v20181114.jar)bin29292 -> 29275 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-common-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-common-9.4.14.v20181114.jar)bin188999 -> 186474 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-hpack-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-hpack-9.4.14.v20181114.jar)bin50834 -> 50438 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-http-client-transport-9.4.19.v20190610.jarbin0 -> 39307 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/httpclient-4.5.6.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/httpclient-4.5.6.jar)bin767140 -> 767140 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/httpcore-4.4.10.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/httpcore-4.4.10.jar)bin326356 -> 326356 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/httpmime-4.5.6.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/httpmime-4.5.6.jar)bin41794 -> 41794 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-annotations-2.9.9.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lib/jackson-annotations-2.9.8.jar)bin66894 -> 66897 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-core-2.9.9.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-core-2.9.8.jar)bin325619 -> 325632 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-databind-2.9.9.3.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-databind-2.9.8.jar)bin1347236 -> 1348389 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-dataformat-smile-2.9.9.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-dataformat-smile-2.9.8.jar)bin84076 -> 84075 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/janino-3.0.9.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/janino-3.0.9.jar)bin801369 -> 801369 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-client-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-client-9.4.14.v20181114.jar)bin16736 -> 16567 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-java-client-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-java-client-9.4.14.v20181114.jar)bin17209 -> 17059 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-client-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-client-9.4.14.v20181114.jar)bin301489 -> 299585 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-http-9.4.19.v20190610.jarbin0 -> 207685 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-io-9.4.19.v20190610.jarbin0 -> 155937 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-util-9.4.19.v20190610.jar (renamed from solr-8.1.1/server/lib/jetty-util-9.4.14.v20181114.jar)bin516446 -> 526571 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jose4j-0.6.5.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jose4j-0.6.5.jar)bin260130 -> 260130 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/json-path-2.4.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/json-path-2.4.0.jar)bin223186 -> 223186 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-core-1.0.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-core-1.0.1.jar)bin226672 -> 226672 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-util-1.0.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-util-1.0.1.jar)bin36708 -> 36708 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-asn1-1.0.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-asn1-1.0.1.jar)bin102174 -> 102174 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-pkix-1.0.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-pkix-1.0.1.jar)bin204650 -> 204650 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-common-8.3.1.jar (renamed from solr-8.1.1/contrib/prometheus-exporter/lucene-libs/lucene-analyzers-common-8.1.1.jar)bin1655240 -> 1681448 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-kuromoji-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-kuromoji-8.1.1.jar)bin4628905 -> 4655425 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-nori-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-nori-8.1.1.jar)bin7499146 -> 7529528 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-phonetic-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-phonetic-8.1.1.jar)bin26210 -> 26304 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-backward-codecs-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-backward-codecs-8.1.1.jar)bin102244 -> 102269 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-classification-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-classification-8.1.1.jar)bin68377 -> 68384 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-codecs-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-codecs-8.1.1.jar)bin454339 -> 544491 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-core-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-core-8.1.1.jar)bin3177010 -> 3245357 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-expressions-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-expressions-8.1.1.jar)bin73063 -> 73071 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-grouping-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-grouping-8.1.1.jar)bin90658 -> 90661 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-highlighter-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-highlighter-8.1.1.jar)bin208877 -> 210152 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-join-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-join-8.1.1.jar)bin147525 -> 148881 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-memory-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-memory-8.1.1.jar)bin51873 -> 51873 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-misc-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-misc-8.1.1.jar)bin96684 -> 99046 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queries-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queries-8.1.1.jar)bin251092 -> 369270 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queryparser-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queryparser-8.1.1.jar)bin381055 -> 382090 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-8.3.1.jarbin0 -> 289919 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial-extras-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial-extras-8.1.1.jar)bin238754 -> 240315 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial3d-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial3d-8.1.1.jar)bin306581 -> 306795 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-suggest-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-suggest-8.1.1.jar)bin245801 -> 248806 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-buffer-4.1.29.Final.jarbin0 -> 272683 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-codec-4.1.29.Final.jarbin0 -> 316412 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-common-4.1.29.Final.jarbin0 -> 578177 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-handler-4.1.29.Final.jarbin0 -> 394702 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-resolver-4.1.29.Final.jarbin0 -> 32275 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-4.1.29.Final.jarbin0 -> 461842 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-native-epoll-4.1.29.Final.jarbin0 -> 115477 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-native-unix-common-4.1.29.Final.jarbin0 -> 31171 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-api-0.33.0.jarbin0 -> 18189 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-noop-0.33.0.jarbin0 -> 10542 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-util-0.33.0.jarbin0 -> 7504 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet-2.3.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet-2.3.0.jar)bin708039 -> 708039 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet.ext.servlet-2.3.0.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet.ext.servlet-2.3.0.jar)bin22972 -> 22972 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/protobuf-java-3.6.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/protobuf-java-3.6.1.jar)bin1421323 -> 1421323 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/re2j-1.2.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/re2j-1.2.jar)bin126747 -> 126747 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/rrd4j-3.5.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/rrd4j-3.5.jar)bin769611 -> 769611 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/s2-geometry-library-java-1.0.0.jarbin0 -> 120854 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/solr-core-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/solr-core-8.1.1.jar)bin5792810 -> 6010537 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/solr-solrj-8.3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/solr-solrj-8.1.1.jar)bin2140519 -> 2243017 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/spatial4j-0.7.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/spatial4j-0.7.jar)bin204833 -> 204833 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/stax2-api-3.1.4.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/stax2-api-3.1.4.jar)bin161867 -> 161867 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/t-digest-3.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/t-digest-3.1.jar)bin61298 -> 61298 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/woodstox-core-asl-4.4.1.jar (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/woodstox-core-asl-4.4.1.jar)bin486013 -> 486013 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.5.5.jarbin0 -> 979195 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-jute-3.5.5.jarbin0 -> 371719 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/WEB-INF/web.xml (renamed from solr-8.1.1/server/solr-webapp/webapp/WEB-INF/web.xml)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/analysis.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/analysis.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/chosen.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/chosen.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/cloud.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/cloud.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/collections.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/collections.css)38
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/common.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/common.css)8
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/cores.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/cores.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/dashboard.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/dashboard.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/dataimport.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/dataimport.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/documents.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/documents.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/files.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/files.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/index.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/index.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/java-properties.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/java-properties.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/logging.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/logging.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/login.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/login.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/menu.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/menu.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/overview.css42
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/plugins.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/plugins.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/query.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/query.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/replication.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/replication.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/schema.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/schema.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/segments.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/segments.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/stream.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/stream.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/suggestions.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/suggestions.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/css/angular/threads.css (renamed from solr-8.1.1/server/solr-webapp/webapp/css/angular/threads.css)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/favicon.ico (renamed from solr-8.1.1/server/solr-webapp/webapp/favicon.ico)bin3262 -> 3262 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/chosen-sprite-2x.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/chosen-sprite-2x.png)bin738 -> 738 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/chosen-sprite.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/chosen-sprite.png)bin559 -> 559 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/div.gif (renamed from solr-8.1.1/server/solr-webapp/webapp/img/div.gif)bin1093 -> 1093 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/favicon.ico (renamed from solr-8.1.1/server/solr-webapp/webapp/img/favicon.ico)bin3262 -> 3262 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/7z.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/7z.png)bin651 -> 651 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/README (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/README)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ai.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ai.png)bin927 -> 927 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/aiff.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/aiff.png)bin876 -> 876 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/asc.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/asc.png)bin759 -> 759 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/audio.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/audio.png)bin727 -> 727 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/bin.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/bin.png)bin616 -> 616 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/bz2.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/bz2.png)bin720 -> 720 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/c.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/c.png)bin827 -> 827 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cfc.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cfc.png)bin1145 -> 1145 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cfm.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cfm.png)bin1145 -> 1145 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/chm.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/chm.png)bin483 -> 483 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/class.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/class.png)bin759 -> 759 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/conf.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/conf.png)bin717 -> 717 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cpp.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cpp.png)bin881 -> 881 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cs.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cs.png)bin808 -> 808 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/css.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/css.png)bin896 -> 896 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/csv.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/csv.png)bin480 -> 480 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/deb.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/deb.png)bin716 -> 716 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/divx.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/divx.png)bin897 -> 897 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/doc.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/doc.png)bin659 -> 659 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/dot.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/dot.png)bin658 -> 658 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/eml.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/eml.png)bin376 -> 376 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/enc.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/enc.png)bin757 -> 757 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/file.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/file.png)bin720 -> 720 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/gif.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/gif.png)bin1001 -> 1001 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/gz.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/gz.png)bin716 -> 716 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/hlp.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/hlp.png)bin483 -> 483 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/htm.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/htm.png)bin748 -> 748 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/html.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/html.png)bin748 -> 748 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/image.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/image.png)bin906 -> 906 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/iso.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/iso.png)bin700 -> 700 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/jar.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/jar.png)bin672 -> 672 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/java.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/java.png)bin727 -> 727 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/jpeg.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/jpeg.png)bin1001 -> 1001 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/jpg.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/jpg.png)bin1001 -> 1001 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/js.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/js.png)bin862 -> 862 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/lua.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/lua.png)bin465 -> 465 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/m.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/m.png)bin915 -> 915 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mm.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mm.png)bin464 -> 464 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mov.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mov.png)bin887 -> 887 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mp3.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mp3.png)bin885 -> 885 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mpg.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mpg.png)bin894 -> 894 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odc.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odc.png)bin749 -> 749 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odf.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odf.png)bin807 -> 807 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odg.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odg.png)bin788 -> 788 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odi.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odi.png)bin788 -> 788 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odp.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odp.png)bin744 -> 744 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ods.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ods.png)bin749 -> 749 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odt.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odt.png)bin577 -> 577 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ogg.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ogg.png)bin865 -> 865 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/pdf.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/pdf.png)bin663 -> 663 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/pgp.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/pgp.png)bin750 -> 750 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/php.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/php.png)bin887 -> 887 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/pl.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/pl.png)bin871 -> 871 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/png.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/png.png)bin1001 -> 1001 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ppt.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ppt.png)bin762 -> 762 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ps.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ps.png)bin648 -> 648 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/py.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/py.png)bin871 -> 871 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ram.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ram.png)bin806 -> 806 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rar.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rar.png)bin631 -> 631 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rb.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rb.png)bin878 -> 878 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rm.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rm.png)bin866 -> 866 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rpm.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rpm.png)bin638 -> 638 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rtf.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rtf.png)bin474 -> 474 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sig.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sig.png)bin610 -> 610 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sql.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sql.png)bin865 -> 865 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/swf.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/swf.png)bin843 -> 843 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxc.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxc.png)bin749 -> 749 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxd.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxd.png)bin788 -> 788 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxi.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxi.png)bin744 -> 744 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxw.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxw.png)bin577 -> 577 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/tar.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/tar.png)bin747 -> 747 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/tex.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/tex.png)bin890 -> 890 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/tgz.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/tgz.png)bin716 -> 716 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/txt.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/txt.png)bin542 -> 542 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/vcf.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/vcf.png)bin711 -> 711 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/video.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/video.png)bin740 -> 740 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/vsd.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/vsd.png)bin814 -> 814 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/wav.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/wav.png)bin881 -> 881 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/wma.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/wma.png)bin886 -> 886 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/wmv.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/wmv.png)bin892 -> 892 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xls.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xls.png)bin731 -> 731 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xml.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xml.png)bin475 -> 475 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xpi.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xpi.png)bin952 -> 952 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xvid.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xvid.png)bin906 -> 906 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/filetypes/zip.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/filetypes/zip.png)bin874 -> 874 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/arrow-000-small.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/arrow-000-small.png)bin346 -> 346 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/arrow-circle.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/arrow-circle.png)bin802 -> 802 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/arrow-switch.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/arrow-switch.png)bin877 -> 877 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/asterisk.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/asterisk.png)bin682 -> 682 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/battery.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/battery.png)bin611 -> 611 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/block-small.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/block-small.png)bin444 -> 444 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/block.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/block.png)bin630 -> 630 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/book-open-text.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/book-open-text.png)bin628 -> 628 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/box.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/box.png)bin508 -> 508 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/bug.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/bug.png)bin704 -> 704 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/chart.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/chart.png)bin659 -> 659 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/chevron-small-expand.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/chevron-small-expand.png)bin450 -> 450 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/chevron-small.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/chevron-small.png)bin443 -> 443 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/clipboard-list.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/clipboard-list.png)bin640 -> 640 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/clipboard-paste-document-text.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/clipboard-paste-document-text.png)bin715 -> 715 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/clipboard-paste.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/clipboard-paste.png)bin685 -> 685 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/clock-select-remain.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/clock-select-remain.png)bin796 -> 796 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/clock-select.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/clock-select.png)bin741 -> 741 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/construction.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/construction.png)bin558 -> 558 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/cross-0.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/cross-0.png)bin164 -> 164 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/cross-1.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/cross-1.png)bin269 -> 269 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/cross-button.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/cross-button.png)bin588 -> 588 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/cross.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/cross.png)bin544 -> 544 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/dashboard.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/dashboard.png)bin646 -> 646 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/database--plus.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/database--plus.png)bin664 -> 664 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/database.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/database.png)bin569 -> 569 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/databases.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/databases.png)bin661 -> 661 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/disk-black.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/disk-black.png)bin434 -> 434 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/document-convert.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/document-convert.png)bin772 -> 772 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/document-import.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/document-import.png)bin688 -> 688 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/document-list.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/document-list.png)bin650 -> 650 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/document-text.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/document-text.png)bin592 -> 592 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/documents-stack.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/documents-stack.png)bin594 -> 594 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/download-cloud.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/download-cloud.png)bin1643 -> 1643 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/drive-upload.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/drive-upload.png)bin746 -> 746 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/exclamation-button.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/exclamation-button.png)bin585 -> 585 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/eye.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/eye.png)bin566 -> 566 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/folder-export.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/folder-export.png)bin632 -> 632 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/folder-tree.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/folder-tree.png)bin518 -> 518 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/folder.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/folder.png)bin476 -> 476 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/funnel-small.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/funnel-small.png)bin410 -> 410 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/funnel.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/funnel.png)bin591 -> 591 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/gear.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/gear.png)bin736 -> 736 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/globe-network.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/globe-network.png)bin809 -> 809 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/globe.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/globe.png)bin882 -> 882 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/hammer-screwdriver.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/hammer-screwdriver.png)bin786 -> 786 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/hammer.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/hammer.png)bin554 -> 554 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/hand.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/hand.png)bin672 -> 672 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/highlighter-text.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/highlighter-text.png)bin588 -> 588 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/home.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/home.png)bin752 -> 752 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/hourglass--exclamation.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/hourglass--exclamation.png)bin812 -> 812 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/hourglass.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/hourglass.png)bin716 -> 716 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/idea.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/idea.png)bin732 -> 732 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/inbox-document-text.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/inbox-document-text.png)bin675 -> 675 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/information-button.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/information-button.png)bin621 -> 621 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/information-small.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/information-small.png)bin352 -> 352 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/information-white.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/information-white.png)bin707 -> 707 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/information.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/information.png)bin744 -> 744 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/jar.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/jar.png)bin805 -> 805 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/magnifier.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/magnifier.png)bin700 -> 700 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/mail.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/mail.png)bin505 -> 505 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/memory.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/memory.png)bin349 -> 349 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/minus-button.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/minus-button.png)bin479 -> 479 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/molecule.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/molecule.png)bin1657 -> 1657 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/network-cloud.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/network-cloud.png)bin623 -> 623 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status-away.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status-away.png)bin1468 -> 1468 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status-busy.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status-busy.png)bin1423 -> 1423 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status-offline.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status-offline.png)bin1461 -> 1461 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status.png)bin1441 -> 1441 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/network.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/network.png)bin264 -> 264 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/node-design.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/node-design.png)bin597 -> 597 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/node-master.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/node-master.png)bin1308 -> 1308 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/node-select.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/node-select.png)bin630 -> 630 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/node-slave.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/node-slave.png)bin1261 -> 1261 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/node.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/node.png)bin548 -> 548 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/pencil-small.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/pencil-small.png)bin384 -> 384 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/pencil.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/pencil.png)bin1529 -> 1529 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/plus-button.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/plus-button.png)bin583 -> 583 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/processor.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/processor.png)bin635 -> 635 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/prohibition.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/prohibition.png)bin1659 -> 1659 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/property.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/property.png)bin769 -> 769 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/question-small-white.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/question-small-white.png)bin491 -> 491 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/question-white.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/question-white.png)bin761 -> 761 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/question.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/question.png)bin766 -> 766 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/receipt-invoice.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/receipt-invoice.png)bin549 -> 549 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/receipt.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/receipt.png)bin403 -> 403 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/run.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/run.png)bin1205 -> 1205 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/script-code.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/script-code.png)bin568 -> 568 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/server-cast.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/server-cast.png)bin644 -> 644 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/server.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/server.png)bin423 -> 423 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/sitemap.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/sitemap.png)bin524 -> 524 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/slash.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/slash.png)bin752 -> 752 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/status-away.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/status-away.png)bin457 -> 457 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/status-busy.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/status-busy.png)bin439 -> 439 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/status-offline.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/status-offline.png)bin448 -> 448 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/status.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/status.png)bin433 -> 433 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/system-monitor--exclamation.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/system-monitor--exclamation.png)bin704 -> 704 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/system-monitor.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/system-monitor.png)bin547 -> 547 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/table.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/table.png)bin563 -> 563 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/terminal.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/terminal.png)bin492 -> 492 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/tick-circle.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/tick-circle.png)bin724 -> 724 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/tick-red.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/tick-red.png)bin1515 -> 1515 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/tick.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/tick.png)bin634 -> 634 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/toggle-small-expand.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/toggle-small-expand.png)bin418 -> 418 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/toggle-small.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/toggle-small.png)bin394 -> 394 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/toolbox.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/toolbox.png)bin501 -> 501 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-accordion.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-accordion.png)bin583 -> 583 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-address-bar.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-address-bar.png)bin349 -> 349 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-check-box-uncheck.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-check-box-uncheck.png)bin355 -> 355 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-check-box.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-check-box.png)bin435 -> 435 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-radio-button-uncheck.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-radio-button-uncheck.png)bin415 -> 415 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-radio-button.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-radio-button.png)bin478 -> 478 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-text-field-select.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-text-field-select.png)bin417 -> 417 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/users.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/users.png)bin870 -> 870 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/wooden-box.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/wooden-box.png)bin438 -> 438 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/ico/zone.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/ico/zone.png)bin434 -> 434 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/loader-light.gif (renamed from solr-8.1.1/server/solr-webapp/webapp/img/loader-light.gif)bin1849 -> 1849 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/loader.gif (renamed from solr-8.1.1/server/solr-webapp/webapp/img/loader.gif)bin1553 -> 1553 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/lucene-ico.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/lucene-ico.png)bin1508 -> 1508 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/solr-ico.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/solr-ico.png)bin978 -> 978 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/solr.svg (renamed from solr-8.1.1/server/solr-webapp/webapp/img/solr.svg)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/img/tree.png (renamed from solr-8.1.1/server/solr-webapp/webapp/img/tree.png)bin1112 -> 1112 bytes
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/index.html (renamed from solr-8.1.1/server/solr-webapp/webapp/index.html)21
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/app.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/app.js)71
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/alias-overview.js27
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js)70
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collections.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/collections.js)43
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cores.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/cores.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/documents.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/documents.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/files.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/files.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/index.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/index.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/logging.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/login.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/login.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/query.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/query.js)2
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/replication.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/schema.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/schema.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/segments.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/segments.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/stream.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/stream.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/threads.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/threads.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js (renamed from solr-8.1.1/server/solr-webapp/webapp/js/angular/services.js)6
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-chosen.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-chosen.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-cookies.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-cookies.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-resource.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-resource.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-route.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-route.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-sanitize.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/angular.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/angular.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/chosen.jquery.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/d3.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/d3.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/highlight.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/highlight.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/jquery-ui.min.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/jquery-ui.min.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/jquery.jstree.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/jquery.jstree.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/libs/ngtimeago.js (renamed from solr-8.1.1/server/solr-webapp/webapp/libs/ngtimeago.js)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/alias_overview.html46
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/analysis.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/analysis.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/cloud.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/cloud.html)2
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/cluster_suggestions.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/cluster_suggestions.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/collection_overview.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/collection_overview.html)2
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/collections.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/collections.html)223
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/core_overview.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/core_overview.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/cores.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/cores.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/dataimport.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/dataimport.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/documents.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/documents.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/files.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/files.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/index.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/index.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/java-properties.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/java-properties.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/logging-levels.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/logging-levels.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/logging.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/logging.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/login.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/login.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/plugins.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/plugins.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/query.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/query.html)20
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/replication.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/replication.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/schema.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/schema.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/segments.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/segments.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/stream.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/stream.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/threads.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/threads.html)0
-rw-r--r--solr-8.3.1/server/solr-webapp/webapp/partials/unknown.html (renamed from solr-8.1.1/server/solr-webapp/webapp/partials/unknown.html)0
-rw-r--r--solr-8.3.1/server/solr/README.txt (renamed from solr-8.1.1/server/solr/README.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_ca.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_ca.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_fr.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_fr.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_ga.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_ga.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_it.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_it.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/hyphenations_ga.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/hyphenations_ga.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stemdict_nl.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stemdict_nl.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stoptags_ja.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stoptags_ja.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ar.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ar.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_bg.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_bg.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ca.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ca.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_cz.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_cz.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_da.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_da.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_de.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_de.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_el.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_el.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_en.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_en.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_es.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_es.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_et.txt1603
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_eu.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_eu.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_fa.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_fa.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_fi.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_fi.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_fr.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_fr.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ga.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ga.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_gl.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_gl.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_hi.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_hi.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_hu.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_hu.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_hy.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_hy.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_id.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_id.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_it.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_it.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ja.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ja.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_lv.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_lv.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_nl.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_nl.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_no.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_no.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_pt.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_pt.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ro.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ro.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ru.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ru.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_sv.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_sv.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_th.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_th.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_tr.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_tr.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/lang/userdict_ja.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/lang/userdict_ja.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/managed-schema (renamed from solr-8.1.1/server/solr/configsets/_default/conf/managed-schema)13
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/params.json (renamed from solr-8.1.1/server/solr/configsets/_default/conf/params.json)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/protwords.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/protwords.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/solrconfig.xml (renamed from solr-8.1.1/server/solr/configsets/_default/conf/solrconfig.xml)11
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/stopwords.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/stopwords.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/_default/conf/synonyms.txt (renamed from solr-8.1.1/server/solr/configsets/_default/conf/synonyms.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/README.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/README.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ca.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ca.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_fr.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_fr.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ga.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ga.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_it.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_it.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/hyphenations_ga.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/hyphenations_ga.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stemdict_nl.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stemdict_nl.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stoptags_ja.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stoptags_ja.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ar.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ar.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_bg.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_bg.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ca.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ca.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ckb.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ckb.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_cz.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_cz.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_da.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_da.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_de.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_de.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_el.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_el.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_en.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_en.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_es.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_es.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_et.txt1603
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_eu.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_eu.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fa.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fa.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fi.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fi.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fr.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fr.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ga.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ga.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_gl.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_gl.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hi.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hi.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hu.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hu.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hy.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hy.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_id.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_id.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_it.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_it.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ja.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ja.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_lv.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_lv.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_nl.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_nl.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_no.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_no.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_pt.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_pt.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ro.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ro.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ru.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ru.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_sv.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_sv.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_th.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_th.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_tr.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_tr.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/userdict_ja.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/userdict_ja.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/managed-schema (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/managed-schema)12
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-FoldToASCII.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-FoldToASCII.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-ISOLatin1Accent.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-ISOLatin1Accent.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/params.json (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/params.json)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/protwords.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/protwords.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml)11
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/spellings.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/spellings.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/stopwords.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/stopwords.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/synonyms.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/synonyms.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/README.txt (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/README.txt)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/VM_global_library.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/VM_global_library.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/browse.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/browse.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster_results.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster_results.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/debug.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/debug.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/did_you_mean.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/did_you_mean.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/error.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/error.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_fields.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_fields.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_pivot.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_pivot.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_queries.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_queries.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_ranges.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_ranges.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facets.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facets.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/footer.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/footer.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/head.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/head.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/header.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/header.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_grouped.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_grouped.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_plain.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_plain.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/join_doc.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/join_doc.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/layout.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/layout.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/mime_type_lists.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/mime_type_lists.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_bottom.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_bottom.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_top.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_top.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/product_doc.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/product_doc.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_form.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_form.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_group.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_group.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_spatial.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_spatial.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/results_list.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/results_list.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/richtext_doc.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/richtext_doc.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/suggest.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/suggest.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/tabs.vm (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/tabs.vm)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl)0
-rw-r--r--solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl (renamed from solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/contractions_ca.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/contractions_ca.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/contractions_fr.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/contractions_fr.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/contractions_ga.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/contractions_ga.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/contractions_it.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/contractions_it.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/hyphenations_ga.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/hyphenations_ga.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stemdict_nl.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stemdict_nl.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stoptags_ja.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stoptags_ja.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_ar.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_ar.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_bg.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_bg.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_ca.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_ca.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_cz.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_cz.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_da.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_da.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_de.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_de.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_el.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_el.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_en.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_en.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_es.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_es.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_eu.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_eu.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_fa.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_fa.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_fi.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_fi.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_fr.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_fr.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_ga.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_ga.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_gl.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_gl.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_hi.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_hi.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_hu.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_hu.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_hy.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_hy.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_id.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_id.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_it.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_it.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_ja.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_ja.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_lv.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_lv.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_nl.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_nl.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_no.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_no.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_pt.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_pt.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_ro.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_ro.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_ru.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_ru.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_sv.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_sv.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_th.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_th.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/stopwords_tr.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/stopwords_tr.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/lang/userdict_ja.txt (renamed from solr-8.1.1/server/solr/dash/conf/lang/userdict_ja.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/params.json (renamed from solr-8.1.1/server/solr/dash/conf/params.json)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/protwords.txt (renamed from solr-8.1.1/server/solr/dash/conf/protwords.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/schema.xml (renamed from solr-8.1.1/server/solr/dash/conf/schema.xml)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/schema.xml~ (renamed from solr-8.1.1/server/solr/dash/conf/schema.xml~)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/solrconfig.xml (renamed from solr-8.1.1/server/solr/dash/conf/solrconfig.xml)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/solrconfig.xml~ (renamed from solr-8.1.1/server/solr/dash/conf/solrconfig.xml~)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/stopwords.txt (renamed from solr-8.1.1/server/solr/dash/conf/stopwords.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/conf/synonyms.txt (renamed from solr-8.1.1/server/solr/dash/conf/synonyms.txt)0
-rw-r--r--solr-8.3.1/server/solr/dash/core.properties (renamed from solr-8.1.1/server/solr/dash/core.properties)2
-rw-r--r--solr-8.3.1/server/solr/dash/data/index/write.lock (renamed from solr-8.1.1/server/solr/dash/data/index/write.lock)0
-rw-r--r--solr-8.3.1/server/solr/solr.xml (renamed from solr-8.1.1/server/solr/solr.xml)0
-rw-r--r--solr-8.3.1/server/solr/zoo.cfg (renamed from solr-8.1.1/server/solr/zoo.cfg)0
-rw-r--r--solr-8.3.1/server/start.jar (renamed from solr-8.1.1/server/start.jar)bin160625 -> 160634 bytes
-rw-r--r--solr-8.3.1/server/tmp/start_1935456665153398890.properties11
-rw-r--r--solr-8.3.1/server/tmp/start_5098042466590842962.properties11
-rw-r--r--solr-8.3.1/server/tmp/start_5201032335657884982.properties11
-rw-r--r--solr-8.3.1/server/tmp/start_5906520416860122978.properties11
-rw-r--r--solr-8.3.1/server/tmp/start_5982280610074344638.properties11
-rw-r--r--solr-8.3.1/server/tmp/start_8210707001248201939.properties11
-rw-r--r--solr/conf/lang/contractions_ca.txt8
-rw-r--r--solr/conf/lang/contractions_fr.txt15
-rw-r--r--solr/conf/lang/contractions_ga.txt5
-rw-r--r--solr/conf/lang/contractions_it.txt23
-rw-r--r--solr/conf/lang/hyphenations_ga.txt5
-rw-r--r--solr/conf/lang/stemdict_nl.txt6
-rw-r--r--solr/conf/lang/stoptags_ja.txt420
-rw-r--r--solr/conf/lang/stopwords_ar.txt125
-rw-r--r--solr/conf/lang/stopwords_bg.txt193
-rw-r--r--solr/conf/lang/stopwords_ca.txt220
-rw-r--r--solr/conf/lang/stopwords_cz.txt172
-rw-r--r--solr/conf/lang/stopwords_da.txt110
-rw-r--r--solr/conf/lang/stopwords_de.txt294
-rw-r--r--solr/conf/lang/stopwords_el.txt78
-rw-r--r--solr/conf/lang/stopwords_en.txt54
-rw-r--r--solr/conf/lang/stopwords_es.txt356
-rw-r--r--solr/conf/lang/stopwords_eu.txt99
-rw-r--r--solr/conf/lang/stopwords_fa.txt313
-rw-r--r--solr/conf/lang/stopwords_fi.txt97
-rw-r--r--solr/conf/lang/stopwords_fr.txt186
-rw-r--r--solr/conf/lang/stopwords_ga.txt110
-rw-r--r--solr/conf/lang/stopwords_gl.txt161
-rw-r--r--solr/conf/lang/stopwords_hi.txt235
-rw-r--r--solr/conf/lang/stopwords_hu.txt211
-rw-r--r--solr/conf/lang/stopwords_hy.txt46
-rw-r--r--solr/conf/lang/stopwords_id.txt359
-rw-r--r--solr/conf/lang/stopwords_it.txt303
-rw-r--r--solr/conf/lang/stopwords_ja.txt127
-rw-r--r--solr/conf/lang/stopwords_lv.txt172
-rw-r--r--solr/conf/lang/stopwords_nl.txt119
-rw-r--r--solr/conf/lang/stopwords_no.txt194
-rw-r--r--solr/conf/lang/stopwords_pt.txt253
-rw-r--r--solr/conf/lang/stopwords_ro.txt233
-rw-r--r--solr/conf/lang/stopwords_ru.txt243
-rw-r--r--solr/conf/lang/stopwords_sv.txt133
-rw-r--r--solr/conf/lang/stopwords_th.txt119
-rw-r--r--solr/conf/lang/stopwords_tr.txt212
-rw-r--r--solr/conf/lang/userdict_ja.txt29
-rw-r--r--solr/conf/params.json20
-rw-r--r--solr/conf/protwords.txt21
-rw-r--r--solr/conf/schema.xml62
-rw-r--r--solr/conf/schema.xml~23
-rw-r--r--solr/conf/solrconfig.xml1328
-rw-r--r--solr/conf/solrconfig.xml~1358
-rw-r--r--solr/conf/stopwords.txt14
-rw-r--r--solr/conf/synonyms.txt29
-rw-r--r--src/Utils.ts142
-rw-r--r--src/client/ClientRecommender.tsx6
-rw-r--r--src/client/DocServer.ts37
-rw-r--r--src/client/Network.ts14
-rw-r--r--src/client/apis/GoogleAuthenticationManager.tsx40
-rw-r--r--src/client/apis/google_docs/GoogleApiClientUtils.ts35
-rw-r--r--src/client/apis/google_docs/GooglePhotosClientUtils.ts31
-rw-r--r--src/client/apis/youtube/YoutubeBox.tsx106
-rw-r--r--src/client/cognitive_services/CognitiveServices.ts93
-rw-r--r--src/client/documents/DocumentTypes.ts4
-rw-r--r--src/client/documents/Documents.ts306
-rw-r--r--src/client/northstar/dash-fields/HistogramField.ts13
-rw-r--r--src/client/northstar/dash-nodes/HistogramBinPrimitiveCollection.ts4
-rw-r--r--src/client/northstar/dash-nodes/HistogramBox.tsx12
-rw-r--r--src/client/northstar/dash-nodes/HistogramBoxPrimitives.tsx4
-rw-r--r--src/client/northstar/model/binRanges/QuantitativeVisualBinRange.ts16
-rw-r--r--src/client/northstar/operations/BaseOperation.ts14
-rw-r--r--src/client/northstar/utils/MathUtil.ts44
-rw-r--r--src/client/util/DictationManager.ts78
-rw-r--r--src/client/util/DocumentManager.ts74
-rw-r--r--src/client/util/DragManager.ts461
-rw-r--r--src/client/util/DropConverter.ts46
-rw-r--r--src/client/util/History.ts9
-rw-r--r--src/client/util/Import & Export/DirectoryImportBox.tsx100
-rw-r--r--src/client/util/Import & Export/ImageUtils.ts19
-rw-r--r--src/client/util/Import & Export/ImportMetadataEntry.tsx6
-rw-r--r--src/client/util/InteractionUtils.tsx234
-rw-r--r--src/client/util/LinkManager.ts68
-rw-r--r--src/client/util/ParagraphNodeSpec.ts10
-rw-r--r--src/client/util/ProsemirrorExampleTransfer.ts60
-rw-r--r--src/client/util/RichTextMenu.scss121
-rw-r--r--src/client/util/RichTextMenu.tsx860
-rw-r--r--src/client/util/RichTextRules.ts266
-rw-r--r--src/client/util/RichTextSchema.tsx465
-rw-r--r--src/client/util/Scripting.ts38
-rw-r--r--src/client/util/SearchUtil.ts32
-rw-r--r--src/client/util/SelectionManager.ts49
-rw-r--r--src/client/util/SerializationHelper.ts9
-rw-r--r--src/client/util/SettingsManager.scss136
-rw-r--r--src/client/util/SettingsManager.tsx131
-rw-r--r--src/client/util/SharingManager.tsx14
-rw-r--r--src/client/util/TooltipLinkingMenu.tsx72
-rw-r--r--src/client/util/TooltipTextMenu.tsx1519
-rw-r--r--src/client/util/TypedEvent.ts62
-rw-r--r--src/client/util/UndoManager.ts16
-rw-r--r--src/client/util/request-image-size.js2
-rw-r--r--src/client/util/type_decls.d1
-rw-r--r--src/client/views/AntimodeMenu.scss42
-rw-r--r--src/client/views/AntimodeMenu.tsx152
-rw-r--r--src/client/views/CollectionLinearView.tsx110
-rw-r--r--src/client/views/ContextMenu.tsx22
-rw-r--r--src/client/views/ContextMenuItem.tsx2
-rw-r--r--src/client/views/DictationOverlay.tsx10
-rw-r--r--src/client/views/DocComponent.tsx48
-rw-r--r--src/client/views/DocumentButtonBar.scss122
-rw-r--r--src/client/views/DocumentButtonBar.tsx460
-rw-r--r--src/client/views/DocumentDecorations.tsx292
-rw-r--r--src/client/views/EditableView.tsx37
-rw-r--r--src/client/views/GestureOverlay.scss49
-rw-r--r--src/client/views/GestureOverlay.tsx752
-rw-r--r--src/client/views/GlobalKeyHandler.ts40
-rw-r--r--src/client/views/InkingCanvas.scss51
-rw-r--r--src/client/views/InkingCanvas.tsx196
-rw-r--r--src/client/views/InkingControl.tsx90
-rw-r--r--src/client/views/InkingStroke.tsx114
-rw-r--r--src/client/views/Main.scss22
-rw-r--r--src/client/views/MainView.scss61
-rw-r--r--src/client/views/MainView.tsx240
-rw-r--r--src/client/views/MainViewModal.tsx6
-rw-r--r--src/client/views/MetadataEntryMenu.scss4
-rw-r--r--src/client/views/MetadataEntryMenu.tsx18
-rw-r--r--src/client/views/OCRUtils.ts7
-rw-r--r--src/client/views/OverlayView.tsx12
-rw-r--r--src/client/views/Palette.scss21
-rw-r--r--src/client/views/Palette.tsx80
-rw-r--r--src/client/views/PreviewCursor.scss1
-rw-r--r--src/client/views/PreviewCursor.tsx123
-rw-r--r--src/client/views/ScriptBox.tsx31
-rw-r--r--src/client/views/TemplateMenu.scss51
-rw-r--r--src/client/views/TemplateMenu.tsx117
-rw-r--r--src/client/views/Templates.tsx13
-rw-r--r--src/client/views/TouchScrollableMenu.tsx59
-rw-r--r--src/client/views/Touchable.tsx244
-rw-r--r--src/client/views/collections/CollectionCarouselView.scss40
-rw-r--r--src/client/views/collections/CollectionCarouselView.tsx82
-rw-r--r--src/client/views/collections/CollectionDockingView.scss72
-rw-r--r--src/client/views/collections/CollectionDockingView.tsx295
-rw-r--r--src/client/views/collections/CollectionLinearView.scss (renamed from src/client/views/CollectionLinearView.scss)10
-rw-r--r--src/client/views/collections/CollectionLinearView.tsx134
-rw-r--r--src/client/views/collections/CollectionMasonryViewFieldRow.tsx207
-rw-r--r--src/client/views/collections/CollectionPivotView.scss88
-rw-r--r--src/client/views/collections/CollectionPivotView.tsx148
-rw-r--r--src/client/views/collections/CollectionSchemaCells.tsx65
-rw-r--r--src/client/views/collections/CollectionSchemaHeaders.tsx39
-rw-r--r--src/client/views/collections/CollectionSchemaMovableTableHOC.tsx91
-rw-r--r--src/client/views/collections/CollectionSchemaView.scss14
-rw-r--r--src/client/views/collections/CollectionSchemaView.tsx156
-rw-r--r--src/client/views/collections/CollectionStackingView.scss7
-rw-r--r--src/client/views/collections/CollectionStackingView.tsx232
-rw-r--r--src/client/views/collections/CollectionStackingViewFieldColumn.tsx161
-rw-r--r--src/client/views/collections/CollectionStaffView.scss13
-rw-r--r--src/client/views/collections/CollectionStaffView.tsx55
-rw-r--r--src/client/views/collections/CollectionSubView.tsx220
-rw-r--r--src/client/views/collections/CollectionTreeView.scss10
-rw-r--r--src/client/views/collections/CollectionTreeView.tsx435
-rw-r--r--src/client/views/collections/CollectionView.scss2
-rw-r--r--src/client/views/collections/CollectionView.tsx157
-rw-r--r--src/client/views/collections/CollectionViewChromes.scss38
-rw-r--r--src/client/views/collections/CollectionViewChromes.tsx209
-rw-r--r--src/client/views/collections/KeyRestrictionRow.tsx6
-rw-r--r--src/client/views/collections/ParentDocumentSelector.scss32
-rw-r--r--src/client/views/collections/ParentDocumentSelector.tsx125
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx65
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx101
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx22
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx12
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormView.scss33
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx936
-rw-r--r--src/client/views/collections/collectionFreeForm/MarqueeOptionsMenu.tsx57
-rw-r--r--src/client/views/collections/collectionFreeForm/MarqueeView.scss4
-rw-r--r--src/client/views/collections/collectionFreeForm/MarqueeView.tsx465
-rw-r--r--src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss33
-rw-r--r--src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx258
-rw-r--r--src/client/views/collections/collectionMulticolumn/MulticolumnResizer.tsx116
-rw-r--r--src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx56
-rw-r--r--src/client/views/document_templates/caption_toggle/DetailedCaptionToggle.tsx6
-rw-r--r--src/client/views/globalCssVariables.scss2
-rw-r--r--src/client/views/linking/LinkEditor.tsx82
-rw-r--r--src/client/views/linking/LinkFollowBox.tsx92
-rw-r--r--src/client/views/linking/LinkMenu.scss85
-rw-r--r--src/client/views/linking/LinkMenu.tsx8
-rw-r--r--src/client/views/linking/LinkMenuGroup.tsx44
-rw-r--r--src/client/views/linking/LinkMenuItem.scss87
-rw-r--r--src/client/views/linking/LinkMenuItem.tsx38
-rw-r--r--src/client/views/nodes/AudioBox.tsx124
-rw-r--r--src/client/views/nodes/ButtonBox.scss13
-rw-r--r--src/client/views/nodes/ButtonBox.tsx24
-rw-r--r--src/client/views/nodes/CollectionFreeFormDocumentView.scss5
-rw-r--r--src/client/views/nodes/CollectionFreeFormDocumentView.tsx98
-rw-r--r--src/client/views/nodes/ColorBox.tsx4
-rw-r--r--src/client/views/nodes/ContentFittingDocumentView.scss5
-rw-r--r--src/client/views/nodes/ContentFittingDocumentView.tsx60
-rw-r--r--src/client/views/nodes/DocuLinkBox.tsx43
-rw-r--r--src/client/views/nodes/DocumentBox.scss15
-rw-r--r--src/client/views/nodes/DocumentBox.tsx111
-rw-r--r--src/client/views/nodes/DocumentContentsView.tsx23
-rw-r--r--src/client/views/nodes/DocumentView.scss61
-rw-r--r--src/client/views/nodes/DocumentView.tsx826
-rw-r--r--src/client/views/nodes/FaceRectangle.tsx2
-rw-r--r--src/client/views/nodes/FaceRectangles.tsx8
-rw-r--r--src/client/views/nodes/FieldView.tsx22
-rw-r--r--src/client/views/nodes/FontIconBox.scss10
-rw-r--r--src/client/views/nodes/FontIconBox.tsx32
-rw-r--r--src/client/views/nodes/FormattedTextBox.scss165
-rw-r--r--src/client/views/nodes/FormattedTextBox.tsx627
-rw-r--r--src/client/views/nodes/FormattedTextBoxComment.tsx53
-rw-r--r--src/client/views/nodes/IconBox.tsx8
-rw-r--r--src/client/views/nodes/ImageBox.scss82
-rw-r--r--src/client/views/nodes/ImageBox.tsx318
-rw-r--r--src/client/views/nodes/KeyValueBox.tsx54
-rw-r--r--src/client/views/nodes/KeyValuePair.tsx13
-rw-r--r--src/client/views/nodes/PDFBox.scss306
-rw-r--r--src/client/views/nodes/PDFBox.tsx122
-rw-r--r--src/client/views/nodes/PresBox.tsx46
-rw-r--r--src/client/views/nodes/RadialMenu.scss83
-rw-r--r--src/client/views/nodes/RadialMenu.tsx224
-rw-r--r--src/client/views/nodes/RadialMenuItem.tsx117
-rw-r--r--src/client/views/nodes/VideoBox.scss6
-rw-r--r--src/client/views/nodes/VideoBox.tsx148
-rw-r--r--src/client/views/nodes/WebBox.tsx40
-rw-r--r--src/client/views/pdf/Annotation.tsx22
-rw-r--r--src/client/views/pdf/PDFMenu.scss40
-rw-r--r--src/client/views/pdf/PDFMenu.tsx159
-rw-r--r--src/client/views/pdf/PDFViewer.scss34
-rw-r--r--src/client/views/pdf/PDFViewer.tsx240
-rw-r--r--src/client/views/presentationview/PresElementBox.tsx21
-rw-r--r--src/client/views/search/FilterBox.tsx53
-rw-r--r--src/client/views/search/IconButton.tsx2
-rw-r--r--src/client/views/search/NaviconButton.tsx22
-rw-r--r--src/client/views/search/SearchBox.scss8
-rw-r--r--src/client/views/search/SearchBox.tsx66
-rw-r--r--src/client/views/search/SearchItem.scss108
-rw-r--r--src/client/views/search/SearchItem.tsx162
-rw-r--r--src/client/views/search/ToggleBar.tsx3
-rw-r--r--src/debug/Viewer.tsx4
-rw-r--r--src/mobile/ImageUpload.tsx46
-rw-r--r--src/mobile/MobileInterface.tsx68
-rw-r--r--src/new_fields/CursorField.ts5
-rw-r--r--src/new_fields/DateField.ts9
-rw-r--r--src/new_fields/Doc.ts368
-rw-r--r--src/new_fields/FieldSymbols.ts3
-rw-r--r--src/new_fields/HtmlField.ts5
-rw-r--r--src/new_fields/IconField.ts5
-rw-r--r--src/new_fields/InkField.ts31
-rw-r--r--src/new_fields/List.ts12
-rw-r--r--src/new_fields/ObjectField.ts5
-rw-r--r--src/new_fields/Proxy.ts5
-rw-r--r--src/new_fields/RefField.ts3
-rw-r--r--src/new_fields/RichTextField.ts5
-rw-r--r--src/new_fields/RichTextUtils.ts87
-rw-r--r--src/new_fields/Schema.ts2
-rw-r--r--src/new_fields/SchemaHeaderField.ts5
-rw-r--r--src/new_fields/ScriptField.ts31
-rw-r--r--src/new_fields/URLField.ts5
-rw-r--r--src/new_fields/documentSchemas.ts43
-rw-r--r--src/new_fields/util.ts43
-rw-r--r--src/pen-gestures/GestureUtils.ts54
-rw-r--r--src/pen-gestures/ndollar.ts547
-rw-r--r--src/scraping/buxton/node_scraper.ts57
-rw-r--r--src/scraping/buxton/scraper.py104
-rw-r--r--src/scraping/buxton/source/Bill_Notes_NB75D.docxbin0 -> 27696302 bytes
-rw-r--r--src/server/ActionUtilities.ts160
-rw-r--r--src/server/ApiManagers/ApiManager.ts11
-rw-r--r--src/server/ApiManagers/DeleteManager.ts78
-rw-r--r--src/server/ApiManagers/DownloadManager.ts267
-rw-r--r--src/server/ApiManagers/GeneralGoogleManager.ts61
-rw-r--r--src/server/ApiManagers/GooglePhotosManager.ts115
-rw-r--r--src/server/ApiManagers/PDFManager.ts115
-rw-r--r--src/server/ApiManagers/SearchManager.ts93
-rw-r--r--src/server/ApiManagers/SessionManager.ts58
-rw-r--r--src/server/ApiManagers/UploadManager.ts233
-rw-r--r--src/server/ApiManagers/UserManager.ts126
-rw-r--r--src/server/ApiManagers/UtilManager.ts101
-rw-r--r--src/server/DashSession/DashSessionAgent.ts223
-rw-r--r--src/server/DashSession/templates/crash_instructions.txt14
-rw-r--r--src/server/DashSession/templates/remote_debug_instructions.txt16
-rw-r--r--src/server/DashUploadUtils.ts254
-rw-r--r--src/server/GarbageCollector.ts4
-rw-r--r--src/server/IDatabase.ts24
-rw-r--r--src/server/MemoryDatabase.ts100
-rw-r--r--src/server/Message.ts3
-rw-r--r--src/server/ProcessFactory.ts44
-rw-r--r--src/server/Recommender.ts54
-rw-r--r--src/server/RouteManager.ts202
-rw-r--r--src/server/RouteStore.ts43
-rw-r--r--src/server/RouteSubscriber.ts2
-rw-r--r--src/server/Search.ts34
-rw-r--r--src/server/SharedMediaTypes.ts8
-rw-r--r--src/server/Websocket/Websocket.ts257
-rw-r--r--src/server/apis/google/GoogleApiServerUtils.ts463
-rw-r--r--src/server/apis/google/GooglePhotosUploadUtils.ts127
-rw-r--r--src/server/authentication/config/passport.ts22
-rw-r--r--src/server/authentication/controllers/user_controller.ts40
-rw-r--r--src/server/authentication/models/current_user_utils.ts190
-rw-r--r--src/server/authentication/models/user_model.ts18
-rw-r--r--src/server/credentials/CredentialsLoader.ts29
-rw-r--r--src/server/credentials/google_project_credentials.json (renamed from src/server/credentials/google_docs_credentials.json)0
-rw-r--r--src/server/database.ts72
-rw-r--r--src/server/downsize.ts2
-rw-r--r--src/server/index.ts1377
-rw-r--r--src/server/public/files/.gitignore2
-rw-r--r--src/server/remapUrl.ts2
-rw-r--r--src/server/server_Initialization.ts155
-rw-r--r--src/server/updateSearch.ts121
-rw-r--r--src/typings/index.d.ts2
-rw-r--r--test/test.ts18
-rw-r--r--tslint.json58
-rw-r--r--views/login.pug4
-rw-r--r--views/stylesheets/authentication.css81
-rw-r--r--views/user_activity.pug19
2078 files changed, 56955 insertions, 67067 deletions
diff --git a/.bash_profile b/.bash_profile
new file mode 100644
index 000000000..d54c83f48
--- /dev/null
+++ b/.bash_profile
@@ -0,0 +1,3 @@
+export PATH="/usr/local/bin:$PATH"
+export PATH="$PATH:/usr/local/mongodb/bin"
+
diff --git a/.gitignore b/.gitignore
index 5161268ac..8376c385e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,11 @@
node_modules
-package-lock.json
dist/
.DS_Store
.env
ClientUtils.ts
-solr-8.1.1/server/
+solr-8.3.1/server/logs/
+solr-8.3.1/server/solr/dash/data/tlog/*
+solr-8.3.1/server/solr/dash/data/index/*
+src/server/public/files/
+src/scraping/acm/package-lock.json
+src/server/session_manager/logs/**/*.log
diff --git a/.vscode/launch.json b/.vscode/launch.json
index d09ba3435..829f8f492 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -3,7 +3,8 @@
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
- "configurations": [{
+ "configurations": [
+ {
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
@@ -16,6 +17,19 @@
]
},
{
+ "type": "chrome",
+ "request": "launch",
+ "name": "Launch Chromium against localhost",
+ "sourceMaps": true,
+ "breakOnLoad": true,
+ "url": "http://localhost:1050/login",
+ "webRoot": "${workspaceFolder}",
+ "runtimeExecutable": "/usr/bin/chromium",
+ "runtimeArgs": [
+ "--experimental-modules"
+ ]
+ },
+ {
"type": "firefox",
"request": "launch",
"name": "Launch Firefox against localhost",
diff --git a/client_secret.json b/client_secret.json
deleted file mode 100644
index a9c698421..000000000
--- a/client_secret.json
+++ /dev/null
@@ -1 +0,0 @@
-{"installed":{"client_id":"1005546247619-kqpnvh42mpa803tem8556b87umi4j9r0.apps.googleusercontent.com","project_id":"brown-dash","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"WshLb5TH9SdFVGGbQcnYj7IU","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}} \ No newline at end of file
diff --git a/deploy/assets/greencheck.png b/deploy/assets/greencheck.png
new file mode 100644
index 000000000..064e9def1
--- /dev/null
+++ b/deploy/assets/greencheck.png
Binary files differ
diff --git a/deploy/assets/pdf.worker.js b/deploy/assets/pdf.worker.js
index 8a362bd75..6b07e439e 100644
--- a/deploy/assets/pdf.worker.js
+++ b/deploy/assets/pdf.worker.js
@@ -2,7 +2,7 @@
* @licstart The following is the entire license notice for the
* Javascript code in this page
*
- * Copyright 2018 Mozilla Foundation
+ * Copyright 2019 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -123,8 +123,8 @@ return /******/ (function(modules) { // webpackBootstrap
"use strict";
-var pdfjsVersion = '2.1.266';
-var pdfjsBuild = '81f5835c';
+var pdfjsVersion = '2.3.200';
+var pdfjsBuild = '4ae3f9fc';
var pdfjsCoreWorker = __w_pdfjs_require__(1);
@@ -144,25 +144,27 @@ exports.WorkerMessageHandler = exports.WorkerTask = void 0;
var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _pdf_manager = __w_pdfjs_require__(151);
+var _primitives = __w_pdfjs_require__(183);
-var _is_node = _interopRequireDefault(__w_pdfjs_require__(9));
+var _pdf_manager = __w_pdfjs_require__(184);
-var _message_handler = __w_pdfjs_require__(189);
+var _is_node = _interopRequireDefault(__w_pdfjs_require__(8));
-var _primitives = __w_pdfjs_require__(155);
+var _message_handler = __w_pdfjs_require__(223);
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _worker_stream = __w_pdfjs_require__(224);
-function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+var _core_utils = __w_pdfjs_require__(186);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
@@ -198,141 +200,6 @@ var WorkerTask = function WorkerTaskClosure() {
}();
exports.WorkerTask = WorkerTask;
-
-var PDFWorkerStream = function PDFWorkerStreamClosure() {
- function PDFWorkerStream(msgHandler) {
- this._msgHandler = msgHandler;
- this._contentLength = null;
- this._fullRequestReader = null;
- this._rangeRequestReaders = [];
- }
-
- PDFWorkerStream.prototype = {
- getFullReader: function getFullReader() {
- (0, _util.assert)(!this._fullRequestReader);
- this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);
- return this._fullRequestReader;
- },
- getRangeReader: function getRangeReader(begin, end) {
- var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);
-
- this._rangeRequestReaders.push(reader);
-
- return reader;
- },
- cancelAllRequests: function cancelAllRequests(reason) {
- if (this._fullRequestReader) {
- this._fullRequestReader.cancel(reason);
- }
-
- var readers = this._rangeRequestReaders.slice(0);
-
- readers.forEach(function (reader) {
- reader.cancel(reason);
- });
- }
- };
-
- function PDFWorkerStreamReader(msgHandler) {
- var _this = this;
-
- this._msgHandler = msgHandler;
- this._contentLength = null;
- this._isRangeSupported = false;
- this._isStreamingSupported = false;
-
- var readableStream = this._msgHandler.sendWithStream('GetReader');
-
- this._reader = readableStream.getReader();
- this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {
- _this._isStreamingSupported = data.isStreamingSupported;
- _this._isRangeSupported = data.isRangeSupported;
- _this._contentLength = data.contentLength;
- });
- }
-
- PDFWorkerStreamReader.prototype = {
- get headersReady() {
- return this._headersReady;
- },
-
- get contentLength() {
- return this._contentLength;
- },
-
- get isStreamingSupported() {
- return this._isStreamingSupported;
- },
-
- get isRangeSupported() {
- return this._isRangeSupported;
- },
-
- read: function read() {
- return this._reader.read().then(function (_ref) {
- var value = _ref.value,
- done = _ref.done;
-
- if (done) {
- return {
- value: undefined,
- done: true
- };
- }
-
- return {
- value: value.buffer,
- done: false
- };
- });
- },
- cancel: function cancel(reason) {
- this._reader.cancel(reason);
- }
- };
-
- function PDFWorkerStreamRangeReader(begin, end, msgHandler) {
- this._msgHandler = msgHandler;
- this.onProgress = null;
-
- var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {
- begin: begin,
- end: end
- });
-
- this._reader = readableStream.getReader();
- }
-
- PDFWorkerStreamRangeReader.prototype = {
- get isStreamingSupported() {
- return false;
- },
-
- read: function read() {
- return this._reader.read().then(function (_ref2) {
- var value = _ref2.value,
- done = _ref2.done;
-
- if (done) {
- return {
- value: undefined,
- done: true
- };
- }
-
- return {
- value: value.buffer,
- done: false
- };
- });
- },
- cancel: function cancel(reason) {
- this._reader.cancel(reason);
- }
- };
- return PDFWorkerStream;
-}();
-
var WorkerMessageHandler = {
setup: function setup(handler, port) {
var testMessageProcessed = false;
@@ -344,28 +211,13 @@ var WorkerMessageHandler = {
testMessageProcessed = true;
if (!(data instanceof Uint8Array)) {
- handler.send('test', false);
+ handler.send('test', null);
return;
}
var supportTransfers = data[0] === 255;
handler.postMessageTransfers = supportTransfers;
- var xhr = new XMLHttpRequest();
- var responseExists = 'response' in xhr;
-
- try {
- xhr.responseType;
- } catch (e) {
- responseExists = false;
- }
-
- if (!responseExists) {
- handler.send('test', false);
- return;
- }
-
handler.send('test', {
- supportTypedArray: true,
supportTransfers: supportTransfers
});
});
@@ -381,8 +233,9 @@ var WorkerMessageHandler = {
var terminated = false;
var cancelXHRs = null;
var WorkerTasks = [];
+ var verbosity = (0, _util.getVerbosityLevel)();
var apiVersion = docParams.apiVersion;
- var workerVersion = '2.1.266';
+ var workerVersion = '2.3.200';
if (apiVersion !== workerVersion) {
throw new Error("The API version \"".concat(apiVersion, "\" does not match ") + "the Worker version \"".concat(workerVersion, "\"."));
@@ -417,10 +270,10 @@ var WorkerMessageHandler = {
function _loadDocument() {
_loadDocument = _asyncToGenerator(
/*#__PURE__*/
- _regenerator.default.mark(function _callee(recoveryMode) {
- var _ref6, _ref7, numPages, fingerprint;
+ _regenerator["default"].mark(function _callee(recoveryMode) {
+ var _ref4, _ref5, numPages, fingerprint;
- return _regenerator.default.wrap(function _callee$(_context) {
+ return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
@@ -449,10 +302,10 @@ var WorkerMessageHandler = {
return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);
case 11:
- _ref6 = _context.sent;
- _ref7 = _slicedToArray(_ref6, 2);
- numPages = _ref7[0];
- fingerprint = _ref7[1];
+ _ref4 = _context.sent;
+ _ref5 = _slicedToArray(_ref4, 2);
+ numPages = _ref5[0];
+ fingerprint = _ref5[1];
return _context.abrupt("return", {
numPages: numPages,
fingerprint: fingerprint
@@ -463,7 +316,7 @@ var WorkerMessageHandler = {
return _context.stop();
}
}
- }, _callee, this);
+ }, _callee);
}));
return _loadDocument.apply(this, arguments);
}
@@ -488,7 +341,7 @@ var WorkerMessageHandler = {
cachedChunks = [];
try {
- pdfStream = new PDFWorkerStream(handler);
+ pdfStream = new _worker_stream.PDFWorkerStream(handler);
} catch (ex) {
pdfManagerCapability.reject(ex);
return pdfManagerCapability.promise;
@@ -516,7 +369,7 @@ var WorkerMessageHandler = {
cachedChunks = [];
pdfManagerCapability.resolve(pdfManager);
cancelXHRs = null;
- }).catch(function (reason) {
+ })["catch"](function (reason) {
pdfManagerCapability.reject(reason);
cancelXHRs = null;
});
@@ -577,13 +430,13 @@ var WorkerMessageHandler = {
fullRequest.read().then(readChunk, reject);
});
- readPromise.catch(function (e) {
+ readPromise["catch"](function (e) {
pdfManagerCapability.reject(e);
cancelXHRs = null;
});
- cancelXHRs = function cancelXHRs() {
- pdfStream.cancelAllRequests('abort');
+ cancelXHRs = function cancelXHRs(reason) {
+ pdfStream.cancelAllRequests(reason);
};
return pdfManagerCapability.promise;
@@ -607,7 +460,7 @@ var WorkerMessageHandler = {
finishWorkerTask(task);
pdfManager.updatePassword(data.password);
pdfManagerReady();
- }).catch(function (boundException) {
+ })["catch"](function (boundException) {
finishWorkerTask(task);
handler.send('PasswordException', boundException);
}.bind(null, e));
@@ -627,7 +480,7 @@ var WorkerMessageHandler = {
loadDocument(false).then(onSuccess, function loadFailure(ex) {
ensureNotTerminated();
- if (!(ex instanceof _util.XRefParseException)) {
+ if (!(ex instanceof _core_utils.XRefParseException)) {
onFailure(ex);
return;
}
@@ -651,7 +504,7 @@ var WorkerMessageHandler = {
};
getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {
if (terminated) {
- newPdfManager.terminate();
+ newPdfManager.terminate(new _util.AbortException('Worker was terminated.'));
throw new Error('Worker was terminated');
}
@@ -666,12 +519,12 @@ var WorkerMessageHandler = {
handler.on('GetPage', function wphSetupGetPage(data) {
return pdfManager.getPage(data.pageIndex).then(function (page) {
- return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref3) {
- var _ref4 = _slicedToArray(_ref3, 4),
- rotate = _ref4[0],
- ref = _ref4[1],
- userUnit = _ref4[2],
- view = _ref4[3];
+ return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref) {
+ var _ref2 = _slicedToArray(_ref, 4),
+ rotate = _ref2[0],
+ ref = _ref2[1],
+ userUnit = _ref2[2],
+ view = _ref2[3];
return {
rotate: rotate,
@@ -683,7 +536,8 @@ var WorkerMessageHandler = {
});
});
handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {
- var ref = new _primitives.Ref(data.ref.num, data.ref.gen);
+ var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);
+
var catalog = pdfManager.pdfDocument.catalog;
return catalog.getPageIndex(ref);
});
@@ -696,10 +550,16 @@ var WorkerMessageHandler = {
handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {
return pdfManager.ensureCatalog('pageLabels');
});
+ handler.on('GetPageLayout', function wphSetupGetPageLayout(data) {
+ return pdfManager.ensureCatalog('pageLayout');
+ });
handler.on('GetPageMode', function wphSetupGetPageMode(data) {
return pdfManager.ensureCatalog('pageMode');
});
- handler.on('getOpenActionDestination', function (data) {
+ handler.on('GetViewerPreferences', function (data) {
+ return pdfManager.ensureCatalog('viewerPreferences');
+ });
+ handler.on('GetOpenActionDestination', function (data) {
return pdfManager.ensureCatalog('openActionDestination');
});
handler.on('GetAttachments', function wphSetupGetAttachments(data) {
@@ -726,29 +586,34 @@ var WorkerMessageHandler = {
handler.on('GetStats', function wphSetupGetStats(data) {
return pdfManager.pdfDocument.xref.stats;
});
- handler.on('GetAnnotations', function (_ref5) {
- var pageIndex = _ref5.pageIndex,
- intent = _ref5.intent;
+ handler.on('GetAnnotations', function (_ref3) {
+ var pageIndex = _ref3.pageIndex,
+ intent = _ref3.intent;
return pdfManager.getPage(pageIndex).then(function (page) {
return page.getAnnotationsData(intent);
});
});
- handler.on('RenderPageRequest', function wphSetupRenderPage(data) {
+ handler.on('GetOperatorList', function wphSetupRenderPage(data, sink) {
var pageIndex = data.pageIndex;
pdfManager.getPage(pageIndex).then(function (page) {
- var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);
+ var task = new WorkerTask("GetOperatorList: page ".concat(pageIndex));
startWorkerTask(task);
- var pageNum = pageIndex + 1;
- var start = Date.now();
+ var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
page.getOperatorList({
handler: handler,
+ sink: sink,
task: task,
intent: data.intent,
renderInteractiveForms: data.renderInteractiveForms
- }).then(function (operatorList) {
+ }).then(function (operatorListInfo) {
finishWorkerTask(task);
- (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);
- }, function (e) {
+
+ if (start) {
+ (0, _util.info)("page=".concat(pageIndex + 1, " - getOperatorList: time=") + "".concat(Date.now() - start, "ms, len=").concat(operatorListInfo.length));
+ }
+
+ sink.close();
+ }, function (reason) {
finishWorkerTask(task);
if (task.terminated) {
@@ -758,31 +623,7 @@ var WorkerMessageHandler = {
handler.send('UnsupportedFeature', {
featureId: _util.UNSUPPORTED_FEATURES.unknown
});
- var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';
- var wrappedException;
-
- if (typeof e === 'string') {
- wrappedException = {
- message: e,
- stack: minimumStackMessage
- };
- } else if (_typeof(e) === 'object') {
- wrappedException = {
- message: e.message || e.toString(),
- stack: e.stack || minimumStackMessage
- };
- } else {
- wrappedException = {
- message: 'Unknown exception type: ' + _typeof(e),
- stack: minimumStackMessage
- };
- }
-
- handler.send('PageError', {
- pageNum: pageNum,
- error: wrappedException,
- intent: data.intent
- });
+ sink.error(reason);
});
});
}, this);
@@ -796,8 +637,7 @@ var WorkerMessageHandler = {
pdfManager.getPage(pageIndex).then(function (page) {
var task = new WorkerTask('GetTextContent: page ' + pageIndex);
startWorkerTask(task);
- var pageNum = pageIndex + 1;
- var start = Date.now();
+ var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
page.extractTextContent({
handler: handler,
task: task,
@@ -806,7 +646,11 @@ var WorkerMessageHandler = {
combineTextItems: data.combineTextItems
}).then(function () {
finishWorkerTask(task);
- (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms');
+
+ if (start) {
+ (0, _util.info)("page=".concat(pageIndex + 1, " - getTextContent: time=") + "".concat(Date.now() - start, "ms"));
+ }
+
sink.close();
}, function (reason) {
finishWorkerTask(task);
@@ -816,7 +660,6 @@ var WorkerMessageHandler = {
}
sink.error(reason);
- throw reason;
});
});
});
@@ -830,14 +673,15 @@ var WorkerMessageHandler = {
terminated = true;
if (pdfManager) {
- pdfManager.terminate();
+ pdfManager.terminate(new _util.AbortException('Worker was terminated.'));
pdfManager = null;
}
if (cancelXHRs) {
- cancelXHRs();
+ cancelXHRs(new _util.AbortException('Worker was terminated.'));
}
+ (0, _primitives.clearPrimitiveCaches)();
var waitOn = [];
WorkerTasks.forEach(function (task) {
waitOn.push(task.finished);
@@ -866,7 +710,7 @@ function isMessagePort(maybePort) {
return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;
}
-if (typeof window === 'undefined' && !(0, _is_node.default)() && typeof self !== 'undefined' && isMessagePort(self)) {
+if (typeof window === 'undefined' && !(0, _is_node["default"])() && typeof self !== 'undefined' && isMessagePort(self)) {
WorkerMessageHandler.initializeFromPort(self);
}
@@ -884,39 +728,11 @@ module.exports = __w_pdfjs_require__(3);
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-
-function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-var g = function () {
- return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self;
-}() || Function("return this")();
-
-var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0;
-var oldRuntime = hadRuntime && g.regeneratorRuntime;
-g.regeneratorRuntime = undefined;
-module.exports = __w_pdfjs_require__(4);
-
-if (hadRuntime) {
- g.regeneratorRuntime = oldRuntime;
-} else {
- try {
- delete g.regeneratorRuntime;
- } catch (e) {
- g.regeneratorRuntime = undefined;
- }
-}
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
/* WEBPACK VAR INJECTION */(function(module) {
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-!function (global) {
+var runtime = function (exports) {
"use strict";
var Op = Object.prototype;
@@ -926,18 +742,6 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
var iteratorSymbol = $Symbol.iterator || "@@iterator";
var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
- var inModule = ( false ? undefined : _typeof(module)) === "object";
- var runtime = global.regeneratorRuntime;
-
- if (runtime) {
- if (inModule) {
- module.exports = runtime;
- }
-
- return;
- }
-
- runtime = global.regeneratorRuntime = inModule ? module.exports : {};
function wrap(innerFn, outerFn, self, tryLocsList) {
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
@@ -947,7 +751,7 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
return generator;
}
- runtime.wrap = wrap;
+ exports.wrap = wrap;
function tryCatch(fn, obj, arg) {
try {
@@ -1001,12 +805,12 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
});
}
- runtime.isGeneratorFunction = function (genFun) {
+ exports.isGeneratorFunction = function (genFun) {
var ctor = typeof genFun === "function" && genFun.constructor;
return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false;
};
- runtime.mark = function (genFun) {
+ exports.mark = function (genFun) {
if (Object.setPrototypeOf) {
Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
} else {
@@ -1021,7 +825,7 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
return genFun;
};
- runtime.awrap = function (arg) {
+ exports.awrap = function (arg) {
return {
__await: arg
};
@@ -1075,11 +879,11 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
return this;
};
- runtime.AsyncIterator = AsyncIterator;
+ exports.AsyncIterator = AsyncIterator;
- runtime.async = function (innerFn, outerFn, self, tryLocsList) {
+ exports.async = function (innerFn, outerFn, self, tryLocsList) {
var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));
- return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
+ return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
return result.done ? result.value : iter.next();
});
};
@@ -1157,7 +961,7 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
context.delegate = null;
if (context.method === "throw") {
- if (delegate.iterator.return) {
+ if (delegate.iterator["return"]) {
context.method = "return";
context.arg = undefined;
maybeInvokeDelegate(delegate, context);
@@ -1251,7 +1055,7 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
this.reset(true);
}
- runtime.keys = function (object) {
+ exports.keys = function (object) {
var keys = [];
for (var key in object) {
@@ -1312,7 +1116,7 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
};
}
- runtime.values = values;
+ exports.values = values;
function doneResult() {
return {
@@ -1490,13 +1294,18 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
return ContinueSentinel;
}
};
-}(function () {
- return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self;
-}() || Function("return this")());
-/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(5)(module)))
+ return exports;
+}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {});
+
+try {
+ regeneratorRuntime = runtime;
+} catch (accidentalStrictMode) {
+ Function("r", "regeneratorRuntime = r")(runtime);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(4)(module)))
/***/ }),
-/* 5 */
+/* 4 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -1527,7 +1336,7 @@ module.exports = function (module) {
};
/***/ }),
-/* 6 */
+/* 5 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -1536,18 +1345,15 @@ module.exports = function (module) {
Object.defineProperty(exports, "__esModule", {
value: true
});
-exports.toRomanNumerals = toRomanNumerals;
exports.arrayByteLength = arrayByteLength;
exports.arraysToBytes = arraysToBytes;
exports.assert = assert;
exports.bytesToString = bytesToString;
exports.createPromiseCapability = createPromiseCapability;
-exports.deprecated = deprecated;
-exports.getInheritableProperty = getInheritableProperty;
-exports.getLookupTableFactory = getLookupTableFactory;
exports.getVerbosityLevel = getVerbosityLevel;
exports.info = info;
exports.isArrayBuffer = isArrayBuffer;
+exports.isArrayEqual = isArrayEqual;
exports.isBool = isBool;
exports.isEmptyObj = isEmptyObj;
exports.isNum = isNum;
@@ -1573,26 +1379,34 @@ exports.warn = warn;
exports.unreachable = unreachable;
Object.defineProperty(exports, "ReadableStream", {
enumerable: true,
- get: function get() {
+ get: function () {
return _streams_polyfill.ReadableStream;
}
});
-Object.defineProperty(exports, "URL", {
- enumerable: true,
- get: function get() {
- return _url_polyfill.URL;
- }
-});
-exports.createObjectURL = exports.FormatError = exports.XRefParseException = exports.XRefEntryException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = void 0;
+exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0;
-__w_pdfjs_require__(7);
+__w_pdfjs_require__(6);
-var _streams_polyfill = __w_pdfjs_require__(147);
+var _streams_polyfill = __w_pdfjs_require__(181);
-var _url_polyfill = __w_pdfjs_require__(149);
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
+
+function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
+function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
+
+function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
+
var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
@@ -1662,6 +1476,29 @@ var AnnotationType = {
REDACT: 26
};
exports.AnnotationType = AnnotationType;
+var AnnotationStateModelType = {
+ MARKED: 'Marked',
+ REVIEW: 'Review'
+};
+exports.AnnotationStateModelType = AnnotationStateModelType;
+var AnnotationMarkedState = {
+ MARKED: 'Marked',
+ UNMARKED: 'Unmarked'
+};
+exports.AnnotationMarkedState = AnnotationMarkedState;
+var AnnotationReviewState = {
+ ACCEPTED: 'Accepted',
+ REJECTED: 'Rejected',
+ CANCELLED: 'Cancelled',
+ COMPLETED: 'Completed',
+ NONE: 'None'
+};
+exports.AnnotationReviewState = AnnotationReviewState;
+var AnnotationReplyType = {
+ GROUP: 'Group',
+ REPLY: 'R'
+};
+exports.AnnotationReplyType = AnnotationReplyType;
var AnnotationFlag = {
INVISIBLE: 0x01,
HIDDEN: 0x02,
@@ -1706,30 +1543,30 @@ var AnnotationBorderStyleType = {
};
exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
var StreamType = {
- UNKNOWN: 0,
- FLATE: 1,
- LZW: 2,
- DCT: 3,
- JPX: 4,
- JBIG: 5,
- A85: 6,
- AHX: 7,
- CCF: 8,
- RL: 9
+ UNKNOWN: 'UNKNOWN',
+ FLATE: 'FLATE',
+ LZW: 'LZW',
+ DCT: 'DCT',
+ JPX: 'JPX',
+ JBIG: 'JBIG',
+ A85: 'A85',
+ AHX: 'AHX',
+ CCF: 'CCF',
+ RLX: 'RLX'
};
exports.StreamType = StreamType;
var FontType = {
- UNKNOWN: 0,
- TYPE1: 1,
- TYPE1C: 2,
- CIDFONTTYPE0: 3,
- CIDFONTTYPE0C: 4,
- TRUETYPE: 5,
- CIDFONTTYPE2: 6,
- TYPE3: 7,
- OPENTYPE: 8,
- TYPE0: 9,
- MMTYPE1: 10
+ UNKNOWN: 'UNKNOWN',
+ TYPE1: 'TYPE1',
+ TYPE1C: 'TYPE1C',
+ CIDFONTTYPE0: 'CIDFONTTYPE0',
+ CIDFONTTYPE0C: 'CIDFONTTYPE0C',
+ TRUETYPE: 'TRUETYPE',
+ CIDFONTTYPE2: 'CIDFONTTYPE2',
+ TYPE3: 'TYPE3',
+ OPENTYPE: 'OPENTYPE',
+ TYPE0: 'TYPE0',
+ MMTYPE1: 'MMTYPE1'
};
exports.FontType = FontType;
var VerbosityLevel = {
@@ -1866,20 +1703,16 @@ function getVerbosityLevel() {
function info(msg) {
if (verbosity >= VerbosityLevel.INFOS) {
- console.log('Info: ' + msg);
+ console.log("Info: ".concat(msg));
}
}
function warn(msg) {
if (verbosity >= VerbosityLevel.WARNINGS) {
- console.log('Warning: ' + msg);
+ console.log("Warning: ".concat(msg));
}
}
-function deprecated(details) {
- console.log('Deprecated API usage: ' + details);
-}
-
function unreachable(msg) {
throw new Error(msg);
}
@@ -1891,8 +1724,10 @@ function assert(cond, msg) {
}
function isSameOrigin(baseUrl, otherUrl) {
+ var base;
+
try {
- var base = new _url_polyfill.URL(baseUrl);
+ base = new URL(baseUrl);
if (!base.origin || base.origin === 'null') {
return false;
@@ -1901,7 +1736,7 @@ function isSameOrigin(baseUrl, otherUrl) {
return false;
}
- var other = new _url_polyfill.URL(otherUrl, base);
+ var other = new URL(otherUrl, base);
return base.origin === other.origin;
}
@@ -1929,7 +1764,7 @@ function createValidAbsoluteUrl(url, baseUrl) {
}
try {
- var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);
+ var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);
if (_isValidProtocol(absoluteUrl)) {
return absoluteUrl;
@@ -1949,151 +1784,144 @@ function shadow(obj, prop, value) {
return value;
}
-function getLookupTableFactory(initializer) {
- var lookup;
- return function () {
- if (initializer) {
- lookup = Object.create(null);
- initializer(lookup);
- initializer = null;
+var BaseException = function BaseExceptionClosure() {
+ function BaseException(message) {
+ if (this.constructor === BaseException) {
+ unreachable('Cannot initialize BaseException.');
}
- return lookup;
- };
-}
+ this.message = message;
+ this.name = this.constructor.name;
+ }
+
+ BaseException.prototype = new Error();
+ BaseException.constructor = BaseException;
+ return BaseException;
+}();
+
+exports.BaseException = BaseException;
+
+var PasswordException =
+/*#__PURE__*/
+function (_BaseException) {
+ _inherits(PasswordException, _BaseException);
-var PasswordException = function PasswordExceptionClosure() {
function PasswordException(msg, code) {
- this.name = 'PasswordException';
- this.message = msg;
- this.code = code;
+ var _this;
+
+ _classCallCheck(this, PasswordException);
+
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(PasswordException).call(this, msg));
+ _this.code = code;
+ return _this;
}
- PasswordException.prototype = new Error();
- PasswordException.constructor = PasswordException;
return PasswordException;
-}();
+}(BaseException);
exports.PasswordException = PasswordException;
-var UnknownErrorException = function UnknownErrorExceptionClosure() {
+var UnknownErrorException =
+/*#__PURE__*/
+function (_BaseException2) {
+ _inherits(UnknownErrorException, _BaseException2);
+
function UnknownErrorException(msg, details) {
- this.name = 'UnknownErrorException';
- this.message = msg;
- this.details = details;
+ var _this2;
+
+ _classCallCheck(this, UnknownErrorException);
+
+ _this2 = _possibleConstructorReturn(this, _getPrototypeOf(UnknownErrorException).call(this, msg));
+ _this2.details = details;
+ return _this2;
}
- UnknownErrorException.prototype = new Error();
- UnknownErrorException.constructor = UnknownErrorException;
return UnknownErrorException;
-}();
+}(BaseException);
exports.UnknownErrorException = UnknownErrorException;
-var InvalidPDFException = function InvalidPDFExceptionClosure() {
- function InvalidPDFException(msg) {
- this.name = 'InvalidPDFException';
- this.message = msg;
+var InvalidPDFException =
+/*#__PURE__*/
+function (_BaseException3) {
+ _inherits(InvalidPDFException, _BaseException3);
+
+ function InvalidPDFException() {
+ _classCallCheck(this, InvalidPDFException);
+
+ return _possibleConstructorReturn(this, _getPrototypeOf(InvalidPDFException).apply(this, arguments));
}
- InvalidPDFException.prototype = new Error();
- InvalidPDFException.constructor = InvalidPDFException;
return InvalidPDFException;
-}();
+}(BaseException);
exports.InvalidPDFException = InvalidPDFException;
-var MissingPDFException = function MissingPDFExceptionClosure() {
- function MissingPDFException(msg) {
- this.name = 'MissingPDFException';
- this.message = msg;
- }
-
- MissingPDFException.prototype = new Error();
- MissingPDFException.constructor = MissingPDFException;
- return MissingPDFException;
-}();
+var MissingPDFException =
+/*#__PURE__*/
+function (_BaseException4) {
+ _inherits(MissingPDFException, _BaseException4);
-exports.MissingPDFException = MissingPDFException;
+ function MissingPDFException() {
+ _classCallCheck(this, MissingPDFException);
-var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {
- function UnexpectedResponseException(msg, status) {
- this.name = 'UnexpectedResponseException';
- this.message = msg;
- this.status = status;
+ return _possibleConstructorReturn(this, _getPrototypeOf(MissingPDFException).apply(this, arguments));
}
- UnexpectedResponseException.prototype = new Error();
- UnexpectedResponseException.constructor = UnexpectedResponseException;
- return UnexpectedResponseException;
-}();
+ return MissingPDFException;
+}(BaseException);
-exports.UnexpectedResponseException = UnexpectedResponseException;
+exports.MissingPDFException = MissingPDFException;
-var MissingDataException = function MissingDataExceptionClosure() {
- function MissingDataException(begin, end) {
- this.begin = begin;
- this.end = end;
- this.message = 'Missing data [' + begin + ', ' + end + ')';
- }
+var UnexpectedResponseException =
+/*#__PURE__*/
+function (_BaseException5) {
+ _inherits(UnexpectedResponseException, _BaseException5);
- MissingDataException.prototype = new Error();
- MissingDataException.prototype.name = 'MissingDataException';
- MissingDataException.constructor = MissingDataException;
- return MissingDataException;
-}();
+ function UnexpectedResponseException(msg, status) {
+ var _this3;
-exports.MissingDataException = MissingDataException;
+ _classCallCheck(this, UnexpectedResponseException);
-var XRefEntryException = function XRefEntryExceptionClosure() {
- function XRefEntryException(msg) {
- this.message = msg;
+ _this3 = _possibleConstructorReturn(this, _getPrototypeOf(UnexpectedResponseException).call(this, msg));
+ _this3.status = status;
+ return _this3;
}
- XRefEntryException.prototype = new Error();
- XRefEntryException.prototype.name = 'XRefEntryException';
- XRefEntryException.constructor = XRefEntryException;
- return XRefEntryException;
-}();
-
-exports.XRefEntryException = XRefEntryException;
+ return UnexpectedResponseException;
+}(BaseException);
-var XRefParseException = function XRefParseExceptionClosure() {
- function XRefParseException(msg) {
- this.message = msg;
- }
+exports.UnexpectedResponseException = UnexpectedResponseException;
- XRefParseException.prototype = new Error();
- XRefParseException.prototype.name = 'XRefParseException';
- XRefParseException.constructor = XRefParseException;
- return XRefParseException;
-}();
+var FormatError =
+/*#__PURE__*/
+function (_BaseException6) {
+ _inherits(FormatError, _BaseException6);
-exports.XRefParseException = XRefParseException;
+ function FormatError() {
+ _classCallCheck(this, FormatError);
-var FormatError = function FormatErrorClosure() {
- function FormatError(msg) {
- this.message = msg;
+ return _possibleConstructorReturn(this, _getPrototypeOf(FormatError).apply(this, arguments));
}
- FormatError.prototype = new Error();
- FormatError.prototype.name = 'FormatError';
- FormatError.constructor = FormatError;
return FormatError;
-}();
+}(BaseException);
exports.FormatError = FormatError;
-var AbortException = function AbortExceptionClosure() {
- function AbortException(msg) {
- this.name = 'AbortException';
- this.message = msg;
+var AbortException =
+/*#__PURE__*/
+function (_BaseException7) {
+ _inherits(AbortException, _BaseException7);
+
+ function AbortException() {
+ _classCallCheck(this, AbortException);
+
+ return _possibleConstructorReturn(this, _getPrototypeOf(AbortException).apply(this, arguments));
}
- AbortException.prototype = new Error();
- AbortException.constructor = AbortException;
return AbortException;
-}();
+}(BaseException);
exports.AbortException = AbortException;
var NullCharactersRegExp = /\x00/g;
@@ -2149,26 +1977,23 @@ function arrayByteLength(arr) {
}
function arraysToBytes(arr) {
- if (arr.length === 1 && arr[0] instanceof Uint8Array) {
+ var length = arr.length;
+
+ if (length === 1 && arr[0] instanceof Uint8Array) {
return arr[0];
}
var resultLength = 0;
- var i,
- ii = arr.length;
- var item, itemLength;
- for (i = 0; i < ii; i++) {
- item = arr[i];
- itemLength = arrayByteLength(item);
- resultLength += itemLength;
+ for (var i = 0; i < length; i++) {
+ resultLength += arrayByteLength(arr[i]);
}
var pos = 0;
var data = new Uint8Array(resultLength);
- for (i = 0; i < ii; i++) {
- item = arr[i];
+ for (var _i = 0; _i < length; _i++) {
+ var item = arr[_i];
if (!(item instanceof Uint8Array)) {
if (typeof item === 'string') {
@@ -2178,7 +2003,7 @@ function arraysToBytes(arr) {
}
}
- itemLength = item.byteLength;
+ var itemLength = item.byteLength;
data.set(item, pos);
pos += itemLength;
}
@@ -2226,189 +2051,143 @@ function isEvalSupported() {
}
}
-function getInheritableProperty(_ref) {
- var dict = _ref.dict,
- key = _ref.key,
- _ref$getArray = _ref.getArray,
- getArray = _ref$getArray === void 0 ? false : _ref$getArray,
- _ref$stopWhenFound = _ref.stopWhenFound,
- stopWhenFound = _ref$stopWhenFound === void 0 ? true : _ref$stopWhenFound;
- var LOOP_LIMIT = 100;
- var loopCount = 0;
- var values;
-
- while (dict) {
- var value = getArray ? dict.getArray(key) : dict.get(key);
+var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];
- if (value !== undefined) {
- if (stopWhenFound) {
- return value;
- }
-
- if (!values) {
- values = [];
- }
+var Util =
+/*#__PURE__*/
+function () {
+ function Util() {
+ _classCallCheck(this, Util);
+ }
- values.push(value);
+ _createClass(Util, null, [{
+ key: "makeCssRgb",
+ value: function makeCssRgb(r, g, b) {
+ rgbBuf[1] = r;
+ rgbBuf[3] = g;
+ rgbBuf[5] = b;
+ return rgbBuf.join('');
}
-
- if (++loopCount > LOOP_LIMIT) {
- warn("getInheritableProperty: maximum loop count exceeded for \"".concat(key, "\""));
- break;
+ }, {
+ key: "transform",
+ value: function transform(m1, m2) {
+ return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];
}
-
- dict = dict.get('Parent');
- }
-
- return values;
-}
-
-var Util = function UtilClosure() {
- function Util() {}
-
- var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];
-
- Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {
- rgbBuf[1] = r;
- rgbBuf[3] = g;
- rgbBuf[5] = b;
- return rgbBuf.join('');
- };
-
- Util.transform = function Util_transform(m1, m2) {
- return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];
- };
-
- Util.applyTransform = function Util_applyTransform(p, m) {
- var xt = p[0] * m[0] + p[1] * m[2] + m[4];
- var yt = p[0] * m[1] + p[1] * m[3] + m[5];
- return [xt, yt];
- };
-
- Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {
- var d = m[0] * m[3] - m[1] * m[2];
- var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
- var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
- return [xt, yt];
- };
-
- Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {
- var p1 = Util.applyTransform(r, m);
- var p2 = Util.applyTransform(r.slice(2, 4), m);
- var p3 = Util.applyTransform([r[0], r[3]], m);
- var p4 = Util.applyTransform([r[2], r[1]], m);
- return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];
- };
-
- Util.inverseTransform = function Util_inverseTransform(m) {
- var d = m[0] * m[3] - m[1] * m[2];
- return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];
- };
-
- Util.apply3dTransform = function Util_apply3dTransform(m, v) {
- return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];
- };
-
- Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {
- var transpose = [m[0], m[2], m[1], m[3]];
- var a = m[0] * transpose[0] + m[1] * transpose[2];
- var b = m[0] * transpose[1] + m[1] * transpose[3];
- var c = m[2] * transpose[0] + m[3] * transpose[2];
- var d = m[2] * transpose[1] + m[3] * transpose[3];
- var first = (a + d) / 2;
- var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
- var sx = first + second || 1;
- var sy = first - second || 1;
- return [Math.sqrt(sx), Math.sqrt(sy)];
- };
-
- Util.normalizeRect = function Util_normalizeRect(rect) {
- var r = rect.slice(0);
-
- if (rect[0] > rect[2]) {
- r[0] = rect[2];
- r[2] = rect[0];
+ }, {
+ key: "applyTransform",
+ value: function applyTransform(p, m) {
+ var xt = p[0] * m[0] + p[1] * m[2] + m[4];
+ var yt = p[0] * m[1] + p[1] * m[3] + m[5];
+ return [xt, yt];
}
-
- if (rect[1] > rect[3]) {
- r[1] = rect[3];
- r[3] = rect[1];
+ }, {
+ key: "applyInverseTransform",
+ value: function applyInverseTransform(p, m) {
+ var d = m[0] * m[3] - m[1] * m[2];
+ var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
+ var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
+ return [xt, yt];
+ }
+ }, {
+ key: "getAxialAlignedBoundingBox",
+ value: function getAxialAlignedBoundingBox(r, m) {
+ var p1 = Util.applyTransform(r, m);
+ var p2 = Util.applyTransform(r.slice(2, 4), m);
+ var p3 = Util.applyTransform([r[0], r[3]], m);
+ var p4 = Util.applyTransform([r[2], r[1]], m);
+ return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];
+ }
+ }, {
+ key: "inverseTransform",
+ value: function inverseTransform(m) {
+ var d = m[0] * m[3] - m[1] * m[2];
+ return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];
}
+ }, {
+ key: "apply3dTransform",
+ value: function apply3dTransform(m, v) {
+ return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];
+ }
+ }, {
+ key: "singularValueDecompose2dScale",
+ value: function singularValueDecompose2dScale(m) {
+ var transpose = [m[0], m[2], m[1], m[3]];
+ var a = m[0] * transpose[0] + m[1] * transpose[2];
+ var b = m[0] * transpose[1] + m[1] * transpose[3];
+ var c = m[2] * transpose[0] + m[3] * transpose[2];
+ var d = m[2] * transpose[1] + m[3] * transpose[3];
+ var first = (a + d) / 2;
+ var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
+ var sx = first + second || 1;
+ var sy = first - second || 1;
+ return [Math.sqrt(sx), Math.sqrt(sy)];
+ }
+ }, {
+ key: "normalizeRect",
+ value: function normalizeRect(rect) {
+ var r = rect.slice(0);
- return r;
- };
+ if (rect[0] > rect[2]) {
+ r[0] = rect[2];
+ r[2] = rect[0];
+ }
- Util.intersect = function Util_intersect(rect1, rect2) {
- function compare(a, b) {
- return a - b;
+ if (rect[1] > rect[3]) {
+ r[1] = rect[3];
+ r[3] = rect[1];
+ }
+
+ return r;
}
+ }, {
+ key: "intersect",
+ value: function intersect(rect1, rect2) {
+ function compare(a, b) {
+ return a - b;
+ }
- var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
- orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),
- result = [];
- rect1 = Util.normalizeRect(rect1);
- rect2 = Util.normalizeRect(rect2);
+ var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);
+ var orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);
+ var result = [];
+ rect1 = Util.normalizeRect(rect1);
+ rect2 = Util.normalizeRect(rect2);
- if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {
- result[0] = orderedX[1];
- result[2] = orderedX[2];
- } else {
- return false;
- }
+ if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {
+ result[0] = orderedX[1];
+ result[2] = orderedX[2];
+ } else {
+ return null;
+ }
- if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {
- result[1] = orderedY[1];
- result[3] = orderedY[2];
- } else {
- return false;
- }
+ if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {
+ result[1] = orderedY[1];
+ result[3] = orderedY[2];
+ } else {
+ return null;
+ }
- return result;
- };
+ return result;
+ }
+ }]);
return Util;
}();
exports.Util = Util;
-var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];
-
-function toRomanNumerals(number) {
- var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');
- var pos,
- romanBuf = [];
-
- while (number >= 1000) {
- number -= 1000;
- romanBuf.push('M');
- }
-
- pos = number / 100 | 0;
- number %= 100;
- romanBuf.push(ROMAN_NUMBER_MAP[pos]);
- pos = number / 10 | 0;
- number %= 10;
- romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);
- romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);
- var romanStr = romanBuf.join('');
- return lowerCase ? romanStr.toLowerCase() : romanStr;
-}
-
var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC];
function stringToPDFString(str) {
- var i,
- n = str.length,
+ var length = str.length,
strBuf = [];
if (str[0] === '\xFE' && str[1] === '\xFF') {
- for (i = 2; i < n; i += 2) {
+ for (var i = 2; i < length; i += 2) {
strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));
}
} else {
- for (i = 0; i < n; ++i) {
- var code = PDFStringTranslateTable[str.charCodeAt(i)];
- strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
+ for (var _i2 = 0; _i2 < length; ++_i2) {
+ var code = PDFStringTranslateTable[str.charCodeAt(_i2)];
+ strBuf.push(code ? String.fromCharCode(code) : str.charAt(_i2));
}
}
@@ -2447,6 +2226,16 @@ function isArrayBuffer(v) {
return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined;
}
+function isArrayEqual(arr1, arr2) {
+ if (arr1.length !== arr2.length) {
+ return false;
+ }
+
+ return arr1.every(function (element, index) {
+ return element === arr2[index];
+ });
+}
+
function isSpace(ch) {
return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;
}
@@ -2478,14 +2267,14 @@ var createObjectURL = function createObjectURLClosure() {
return function createObjectURL(data, contentType) {
var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
- if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {
+ if (!forceDataSchema && URL.createObjectURL) {
var blob = new Blob([data], {
type: contentType
});
- return _url_polyfill.URL.createObjectURL(blob);
+ return URL.createObjectURL(blob);
}
- var buffer = 'data:' + contentType + ';base64,';
+ var buffer = "data:".concat(contentType, ";base64,");
for (var i = 0, ii = data.length; i < ii; i += 3) {
var b1 = data[i] & 0xFF;
@@ -2505,7 +2294,7 @@ var createObjectURL = function createObjectURLClosure() {
exports.createObjectURL = createObjectURL;
/***/ }),
-/* 7 */
+/* 6 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -2513,12 +2302,12 @@ exports.createObjectURL = createObjectURL;
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-var globalScope = __w_pdfjs_require__(8);
+var globalScope = __w_pdfjs_require__(7);
if (!globalScope._pdfjsCompatibilityChecked) {
globalScope._pdfjsCompatibilityChecked = true;
- var isNodeJS = __w_pdfjs_require__(9);
+ var isNodeJS = __w_pdfjs_require__(8);
var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object';
@@ -2578,8 +2367,8 @@ if (!globalScope._pdfjsCompatibilityChecked) {
tokens[_key] = arguments[_key];
}
- for (var _i = 0; _i < tokens.length; _i++) {
- var token = tokens[_i];
+ for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) {
+ var token = _tokens[_i];
OriginalDOMTokenListAdd.call(this, token);
}
};
@@ -2589,8 +2378,8 @@ if (!globalScope._pdfjsCompatibilityChecked) {
tokens[_key2] = arguments[_key2];
}
- for (var _i2 = 0; _i2 < tokens.length; _i2++) {
- var token = tokens[_i2];
+ for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) {
+ var token = _tokens2[_i2];
OriginalDOMTokenListRemove.call(this, token);
}
};
@@ -2618,7 +2407,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- __w_pdfjs_require__(10);
+ __w_pdfjs_require__(9);
})();
(function checkStringEndsWith() {
@@ -2626,7 +2415,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- __w_pdfjs_require__(40);
+ __w_pdfjs_require__(61);
})();
(function checkStringIncludes() {
@@ -2634,7 +2423,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- __w_pdfjs_require__(42);
+ __w_pdfjs_require__(63);
})();
(function checkArrayIncludes() {
@@ -2642,7 +2431,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- __w_pdfjs_require__(44);
+ __w_pdfjs_require__(65);
})();
(function checkArrayFrom() {
@@ -2650,7 +2439,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- __w_pdfjs_require__(51);
+ __w_pdfjs_require__(72);
})();
(function checkObjectAssign() {
@@ -2658,7 +2447,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- __w_pdfjs_require__(74);
+ __w_pdfjs_require__(93);
})();
(function checkMathLog2() {
@@ -2666,7 +2455,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- Math.log2 = __w_pdfjs_require__(79);
+ Math.log2 = __w_pdfjs_require__(96);
})();
(function checkNumberIsNaN() {
@@ -2674,7 +2463,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- Number.isNaN = __w_pdfjs_require__(81);
+ Number.isNaN = __w_pdfjs_require__(98);
})();
(function checkNumberIsInteger() {
@@ -2682,15 +2471,19 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- Number.isInteger = __w_pdfjs_require__(83);
+ Number.isInteger = __w_pdfjs_require__(100);
})();
(function checkPromise() {
- if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype.finally) {
+ if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype["finally"]) {
return;
}
- globalScope.Promise = __w_pdfjs_require__(86);
+ globalScope.Promise = __w_pdfjs_require__(103);
+ })();
+
+ (function checkURL() {
+ globalScope.URL = __w_pdfjs_require__(125);
})();
(function checkWeakMap() {
@@ -2698,7 +2491,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- globalScope.WeakMap = __w_pdfjs_require__(106);
+ globalScope.WeakMap = __w_pdfjs_require__(132);
})();
(function checkWeakSet() {
@@ -2706,15 +2499,15 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- globalScope.WeakSet = __w_pdfjs_require__(123);
+ globalScope.WeakSet = __w_pdfjs_require__(142);
})();
(function checkStringCodePointAt() {
- if (String.codePointAt) {
+ if (String.prototype.codePointAt) {
return;
}
- String.codePointAt = __w_pdfjs_require__(127);
+ __w_pdfjs_require__(144);
})();
(function checkStringFromCodePoint() {
@@ -2722,7 +2515,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- String.fromCodePoint = __w_pdfjs_require__(129);
+ String.fromCodePoint = __w_pdfjs_require__(146);
})();
(function checkSymbol() {
@@ -2730,7 +2523,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- __w_pdfjs_require__(131);
+ __w_pdfjs_require__(148);
})();
(function checkStringPadStart() {
@@ -2738,7 +2531,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- __w_pdfjs_require__(138);
+ __w_pdfjs_require__(171);
})();
(function checkStringPadEnd() {
@@ -2746,7 +2539,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- __w_pdfjs_require__(142);
+ __w_pdfjs_require__(176);
})();
(function checkObjectValues() {
@@ -2754,12 +2547,12 @@ if (!globalScope._pdfjsCompatibilityChecked) {
return;
}
- Object.values = __w_pdfjs_require__(144);
+ Object.values = __w_pdfjs_require__(178);
})();
}
/***/ }),
-/* 8 */
+/* 7 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -2768,7 +2561,7 @@ if (!globalScope._pdfjsCompatibilityChecked) {
module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};
/***/ }),
-/* 9 */
+/* 8 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -2777,134 +2570,145 @@ module.exports = typeof window !== 'undefined' && window.Math === Math ? window
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
module.exports = function isNodeJS() {
- return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'];
+ return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'] && !process.versions['electron'];
};
/***/ }),
-/* 10 */
+/* 9 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(11);
-
-module.exports = __w_pdfjs_require__(14).String.startsWith;
+__w_pdfjs_require__(10);
+var entryUnbind = __w_pdfjs_require__(58);
+module.exports = entryUnbind('String', 'startsWith');
/***/ }),
-/* 11 */
+/* 10 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var $export = __w_pdfjs_require__(12);
-
-var toLength = __w_pdfjs_require__(30);
-
-var context = __w_pdfjs_require__(32);
-
-var STARTS_WITH = 'startsWith';
-var $startsWith = ''[STARTS_WITH];
-$export($export.P + $export.F * __w_pdfjs_require__(39)(STARTS_WITH), 'String', {
- startsWith: function startsWith(searchString) {
- var that = context(this, searchString, STARTS_WITH);
- var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
- var search = String(searchString);
- return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search;
- }
+var $ = __w_pdfjs_require__(11);
+var toLength = __w_pdfjs_require__(47);
+var notARegExp = __w_pdfjs_require__(53);
+var requireObjectCoercible = __w_pdfjs_require__(21);
+var correctIsRegExpLogic = __w_pdfjs_require__(57);
+var nativeStartsWith = ''.startsWith;
+var min = Math.min;
+$({
+ target: 'String',
+ proto: true,
+ forced: !correctIsRegExpLogic('startsWith')
+}, {
+ startsWith: function startsWith(searchString) {
+ var that = String(requireObjectCoercible(this));
+ notARegExp(searchString);
+ var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
+ var search = String(searchString);
+ return nativeStartsWith ? nativeStartsWith.call(that, search, index) : that.slice(index, index + search.length) === search;
+ }
});
/***/ }),
-/* 12 */
+/* 11 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var global = __w_pdfjs_require__(13);
-
-var core = __w_pdfjs_require__(14);
-
-var hide = __w_pdfjs_require__(15);
-
-var redefine = __w_pdfjs_require__(25);
-
-var ctx = __w_pdfjs_require__(28);
-
-var PROTOTYPE = 'prototype';
-
-var $export = function $export(type, name, source) {
- var IS_FORCED = type & $export.F;
- var IS_GLOBAL = type & $export.G;
- var IS_STATIC = type & $export.S;
- var IS_PROTO = type & $export.P;
- var IS_BIND = type & $export.B;
- var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
- var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
- var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
- var key, own, out, exp;
- if (IS_GLOBAL) source = name;
-
+var global = __w_pdfjs_require__(12);
+var getOwnPropertyDescriptor = __w_pdfjs_require__(13).f;
+var hide = __w_pdfjs_require__(27);
+var redefine = __w_pdfjs_require__(30);
+var setGlobal = __w_pdfjs_require__(32);
+var copyConstructorProperties = __w_pdfjs_require__(40);
+var isForced = __w_pdfjs_require__(52);
+module.exports = function (options, source) {
+ var TARGET = options.target;
+ var GLOBAL = options.global;
+ var STATIC = options.stat;
+ var FORCED, target, key, targetProperty, sourceProperty, descriptor;
+ if (GLOBAL) {
+ target = global;
+ } else if (STATIC) {
+ target = global[TARGET] || setGlobal(TARGET, {});
+ } else {
+ target = (global[TARGET] || {}).prototype;
+ }
+ if (target)
for (key in source) {
- own = !IS_FORCED && target && target[key] !== undefined;
- out = (own ? target : source)[key];
- exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
- if (target) redefine(target, key, out, type & $export.U);
- if (exports[key] != out) hide(exports, key, exp);
- if (IS_PROTO && expProto[key] != out) expProto[key] = out;
+ sourceProperty = source[key];
+ if (options.noTargetGet) {
+ descriptor = getOwnPropertyDescriptor(target, key);
+ targetProperty = descriptor && descriptor.value;
+ } else
+ targetProperty = target[key];
+ FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
+ if (!FORCED && targetProperty !== undefined) {
+ if (typeof sourceProperty === typeof targetProperty)
+ continue;
+ copyConstructorProperties(sourceProperty, targetProperty);
+ }
+ if (options.sham || targetProperty && targetProperty.sham) {
+ hide(sourceProperty, 'sham', true);
+ }
+ redefine(target, key, sourceProperty, options);
}
};
-global.core = core;
-$export.F = 1;
-$export.G = 2;
-$export.S = 4;
-$export.P = 8;
-$export.B = 16;
-$export.W = 32;
-$export.U = 64;
-$export.R = 128;
-module.exports = $export;
+/***/ }),
+/* 12 */
+/***/ (function(module, exports) {
+
+var O = 'object';
+var check = function (it) {
+ return it && it.Math == Math && it;
+};
+module.exports = check(typeof globalThis == O && globalThis) || check(typeof window == O && window) || check(typeof self == O && self) || check(typeof global == O && global) || Function('return this')();
/***/ }),
/* 13 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-if (typeof __g == 'number') __g = global;
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var propertyIsEnumerableModule = __w_pdfjs_require__(16);
+var createPropertyDescriptor = __w_pdfjs_require__(17);
+var toIndexedObject = __w_pdfjs_require__(18);
+var toPrimitive = __w_pdfjs_require__(22);
+var has = __w_pdfjs_require__(24);
+var IE8_DOM_DEFINE = __w_pdfjs_require__(25);
+var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
+ O = toIndexedObject(O);
+ P = toPrimitive(P, true);
+ if (IE8_DOM_DEFINE)
+ try {
+ return nativeGetOwnPropertyDescriptor(O, P);
+ } catch (error) {
+ }
+ if (has(O, P))
+ return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
+};
/***/ }),
/* 14 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var core = module.exports = {
- version: '2.6.2'
-};
-if (typeof __e == 'number') __e = core;
+var fails = __w_pdfjs_require__(15);
+module.exports = !fails(function () {
+ return Object.defineProperty({}, 'a', {
+ get: function () {
+ return 7;
+ }
+ }).a != 7;
+});
/***/ }),
/* 15 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
+/***/ (function(module, exports) {
-
-var dP = __w_pdfjs_require__(16);
-
-var createDesc = __w_pdfjs_require__(24);
-
-module.exports = __w_pdfjs_require__(20) ? function (object, key, value) {
- return dP.f(object, key, createDesc(1, value));
-} : function (object, key, value) {
- object[key] = value;
- return object;
+module.exports = function (exec) {
+ try {
+ return !!exec();
+ } catch (error) {
+ return true;
+ }
};
/***/ }),
@@ -2913,968 +2717,686 @@ module.exports = __w_pdfjs_require__(20) ? function (object, key, value) {
"use strict";
-
-var anObject = __w_pdfjs_require__(17);
-
-var IE8_DOM_DEFINE = __w_pdfjs_require__(19);
-
-var toPrimitive = __w_pdfjs_require__(23);
-
-var dP = Object.defineProperty;
-exports.f = __w_pdfjs_require__(20) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if (IE8_DOM_DEFINE) try {
- return dP(O, P, Attributes);
- } catch (e) {}
- if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
- if ('value' in Attributes) O[P] = Attributes.value;
- return O;
-};
+var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
+exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
+ var descriptor = getOwnPropertyDescriptor(this, V);
+ return !!descriptor && descriptor.enumerable;
+} : nativePropertyIsEnumerable;
/***/ }),
/* 17 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
+/***/ (function(module, exports) {
-var isObject = __w_pdfjs_require__(18);
-
-module.exports = function (it) {
- if (!isObject(it)) throw TypeError(it + ' is not an object!');
- return it;
+module.exports = function (bitmap, value) {
+ return {
+ enumerable: !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable: !(bitmap & 4),
+ value: value
+ };
};
/***/ }),
/* 18 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
+var IndexedObject = __w_pdfjs_require__(19);
+var requireObjectCoercible = __w_pdfjs_require__(21);
module.exports = function (it) {
- return _typeof(it) === 'object' ? it !== null : typeof it === 'function';
+ return IndexedObject(requireObjectCoercible(it));
};
/***/ }),
/* 19 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-module.exports = !__w_pdfjs_require__(20) && !__w_pdfjs_require__(21)(function () {
- return Object.defineProperty(__w_pdfjs_require__(22)('div'), 'a', {
- get: function get() {
- return 7;
- }
- }).a != 7;
-});
+var fails = __w_pdfjs_require__(15);
+var classof = __w_pdfjs_require__(20);
+var split = ''.split;
+module.exports = fails(function () {
+ return !Object('z').propertyIsEnumerable(0);
+}) ? function (it) {
+ return classof(it) == 'String' ? split.call(it, '') : Object(it);
+} : Object;
/***/ }),
/* 20 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
+/***/ (function(module, exports) {
-module.exports = !__w_pdfjs_require__(21)(function () {
- return Object.defineProperty({}, 'a', {
- get: function get() {
- return 7;
- }
- }).a != 7;
-});
+var toString = {}.toString;
+module.exports = function (it) {
+ return toString.call(it).slice(8, -1);
+};
/***/ }),
/* 21 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
+/***/ (function(module, exports) {
-
-module.exports = function (exec) {
- try {
- return !!exec();
- } catch (e) {
- return true;
- }
+module.exports = function (it) {
+ if (it == undefined)
+ throw TypeError("Can't call method on " + it);
+ return it;
};
/***/ }),
/* 22 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var isObject = __w_pdfjs_require__(18);
-
-var document = __w_pdfjs_require__(13).document;
-
-var is = isObject(document) && isObject(document.createElement);
-
-module.exports = function (it) {
- return is ? document.createElement(it) : {};
+var isObject = __w_pdfjs_require__(23);
+module.exports = function (input, PREFERRED_STRING) {
+ if (!isObject(input))
+ return input;
+ var fn, val;
+ if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input)))
+ return val;
+ if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input)))
+ return val;
+ if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input)))
+ return val;
+ throw TypeError("Can't convert object to primitive value");
};
/***/ }),
/* 23 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
+/***/ (function(module, exports) {
-"use strict";
-
-
-var isObject = __w_pdfjs_require__(18);
-
-module.exports = function (it, S) {
- if (!isObject(it)) return it;
- var fn, val;
- if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
- if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
- if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
- throw TypeError("Can't convert object to primitive value");
+module.exports = function (it) {
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
};
/***/ }),
/* 24 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
+/***/ (function(module, exports) {
-module.exports = function (bitmap, value) {
- return {
- enumerable: !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable: !(bitmap & 4),
- value: value
- };
+var hasOwnProperty = {}.hasOwnProperty;
+module.exports = function (it, key) {
+ return hasOwnProperty.call(it, key);
};
/***/ }),
/* 25 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var global = __w_pdfjs_require__(13);
-
-var hide = __w_pdfjs_require__(15);
-
-var has = __w_pdfjs_require__(26);
-
-var SRC = __w_pdfjs_require__(27)('src');
-
-var TO_STRING = 'toString';
-var $toString = Function[TO_STRING];
-var TPL = ('' + $toString).split(TO_STRING);
-
-__w_pdfjs_require__(14).inspectSource = function (it) {
- return $toString.call(it);
-};
-
-(module.exports = function (O, key, val, safe) {
- var isFunction = typeof val == 'function';
- if (isFunction) has(val, 'name') || hide(val, 'name', key);
- if (O[key] === val) return;
- if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
-
- if (O === global) {
- O[key] = val;
- } else if (!safe) {
- delete O[key];
- hide(O, key, val);
- } else if (O[key]) {
- O[key] = val;
- } else {
- hide(O, key, val);
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var fails = __w_pdfjs_require__(15);
+var createElement = __w_pdfjs_require__(26);
+module.exports = !DESCRIPTORS && !fails(function () {
+ return Object.defineProperty(createElement('div'), 'a', {
+ get: function () {
+ return 7;
}
-})(Function.prototype, TO_STRING, function toString() {
- return typeof this == 'function' && this[SRC] || $toString.call(this);
+ }).a != 7;
});
/***/ }),
/* 26 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var hasOwnProperty = {}.hasOwnProperty;
-
-module.exports = function (it, key) {
- return hasOwnProperty.call(it, key);
+var global = __w_pdfjs_require__(12);
+var isObject = __w_pdfjs_require__(23);
+var document = global.document;
+var EXISTS = isObject(document) && isObject(document.createElement);
+module.exports = function (it) {
+ return EXISTS ? document.createElement(it) : {};
};
/***/ }),
/* 27 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var id = 0;
-var px = Math.random();
-
-module.exports = function (key) {
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var definePropertyModule = __w_pdfjs_require__(28);
+var createPropertyDescriptor = __w_pdfjs_require__(17);
+module.exports = DESCRIPTORS ? function (object, key, value) {
+ return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
+} : function (object, key, value) {
+ object[key] = value;
+ return object;
};
/***/ }),
/* 28 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var aFunction = __w_pdfjs_require__(29);
-
-module.exports = function (fn, that, length) {
- aFunction(fn);
- if (that === undefined) return fn;
-
- switch (length) {
- case 1:
- return function (a) {
- return fn.call(that, a);
- };
-
- case 2:
- return function (a, b) {
- return fn.call(that, a, b);
- };
-
- case 3:
- return function (a, b, c) {
- return fn.call(that, a, b, c);
- };
- }
-
- return function () {
- return fn.apply(that, arguments);
- };
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var IE8_DOM_DEFINE = __w_pdfjs_require__(25);
+var anObject = __w_pdfjs_require__(29);
+var toPrimitive = __w_pdfjs_require__(22);
+var nativeDefineProperty = Object.defineProperty;
+exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
+ anObject(O);
+ P = toPrimitive(P, true);
+ anObject(Attributes);
+ if (IE8_DOM_DEFINE)
+ try {
+ return nativeDefineProperty(O, P, Attributes);
+ } catch (error) {
+ }
+ if ('get' in Attributes || 'set' in Attributes)
+ throw TypeError('Accessors not supported');
+ if ('value' in Attributes)
+ O[P] = Attributes.value;
+ return O;
};
/***/ }),
/* 29 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
+var isObject = __w_pdfjs_require__(23);
module.exports = function (it) {
- if (typeof it != 'function') throw TypeError(it + ' is not a function!');
- return it;
+ if (!isObject(it)) {
+ throw TypeError(String(it) + ' is not an object');
+ }
+ return it;
};
/***/ }),
/* 30 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var toInteger = __w_pdfjs_require__(31);
-
-var min = Math.min;
-
-module.exports = function (it) {
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;
-};
+var global = __w_pdfjs_require__(12);
+var shared = __w_pdfjs_require__(31);
+var hide = __w_pdfjs_require__(27);
+var has = __w_pdfjs_require__(24);
+var setGlobal = __w_pdfjs_require__(32);
+var nativeFunctionToString = __w_pdfjs_require__(34);
+var InternalStateModule = __w_pdfjs_require__(35);
+var getInternalState = InternalStateModule.get;
+var enforceInternalState = InternalStateModule.enforce;
+var TEMPLATE = String(nativeFunctionToString).split('toString');
+shared('inspectSource', function (it) {
+ return nativeFunctionToString.call(it);
+});
+(module.exports = function (O, key, value, options) {
+ var unsafe = options ? !!options.unsafe : false;
+ var simple = options ? !!options.enumerable : false;
+ var noTargetGet = options ? !!options.noTargetGet : false;
+ if (typeof value == 'function') {
+ if (typeof key == 'string' && !has(value, 'name'))
+ hide(value, 'name', key);
+ enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
+ }
+ if (O === global) {
+ if (simple)
+ O[key] = value;
+ else
+ setGlobal(key, value);
+ return;
+ } else if (!unsafe) {
+ delete O[key];
+ } else if (!noTargetGet && O[key]) {
+ simple = true;
+ }
+ if (simple)
+ O[key] = value;
+ else
+ hide(O, key, value);
+})(Function.prototype, 'toString', function toString() {
+ return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);
+});
/***/ }),
/* 31 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var ceil = Math.ceil;
-var floor = Math.floor;
-
-module.exports = function (it) {
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-};
+var global = __w_pdfjs_require__(12);
+var setGlobal = __w_pdfjs_require__(32);
+var IS_PURE = __w_pdfjs_require__(33);
+var SHARED = '__core-js_shared__';
+var store = global[SHARED] || setGlobal(SHARED, {});
+(module.exports = function (key, value) {
+ return store[key] || (store[key] = value !== undefined ? value : {});
+})('versions', []).push({
+ version: '3.2.1',
+ mode: IS_PURE ? 'pure' : 'global',
+ copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
+});
/***/ }),
/* 32 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var isRegExp = __w_pdfjs_require__(33);
-
-var defined = __w_pdfjs_require__(38);
-
-module.exports = function (that, searchString, NAME) {
- if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
- return String(defined(that));
+var global = __w_pdfjs_require__(12);
+var hide = __w_pdfjs_require__(27);
+module.exports = function (key, value) {
+ try {
+ hide(global, key, value);
+ } catch (error) {
+ global[key] = value;
+ }
+ return value;
};
/***/ }),
/* 33 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-var isObject = __w_pdfjs_require__(18);
+/***/ (function(module, exports) {
-var cof = __w_pdfjs_require__(34);
-
-var MATCH = __w_pdfjs_require__(35)('match');
-
-module.exports = function (it) {
- var isRegExp;
- return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
-};
+module.exports = false;
/***/ }),
/* 34 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var toString = {}.toString;
-
-module.exports = function (it) {
- return toString.call(it).slice(8, -1);
-};
+var shared = __w_pdfjs_require__(31);
+module.exports = shared('native-function-to-string', Function.toString);
/***/ }),
/* 35 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var store = __w_pdfjs_require__(36)('wks');
-
-var uid = __w_pdfjs_require__(27);
-
-var _Symbol = __w_pdfjs_require__(13).Symbol;
-
-var USE_SYMBOL = typeof _Symbol == 'function';
-
-var $exports = module.exports = function (name) {
- return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));
+var NATIVE_WEAK_MAP = __w_pdfjs_require__(36);
+var global = __w_pdfjs_require__(12);
+var isObject = __w_pdfjs_require__(23);
+var hide = __w_pdfjs_require__(27);
+var objectHas = __w_pdfjs_require__(24);
+var sharedKey = __w_pdfjs_require__(37);
+var hiddenKeys = __w_pdfjs_require__(39);
+var WeakMap = global.WeakMap;
+var set, get, has;
+var enforce = function (it) {
+ return has(it) ? get(it) : set(it, {});
+};
+var getterFor = function (TYPE) {
+ return function (it) {
+ var state;
+ if (!isObject(it) || (state = get(it)).type !== TYPE) {
+ throw TypeError('Incompatible receiver, ' + TYPE + ' required');
+ }
+ return state;
+ };
+};
+if (NATIVE_WEAK_MAP) {
+ var store = new WeakMap();
+ var wmget = store.get;
+ var wmhas = store.has;
+ var wmset = store.set;
+ set = function (it, metadata) {
+ wmset.call(store, it, metadata);
+ return metadata;
+ };
+ get = function (it) {
+ return wmget.call(store, it) || {};
+ };
+ has = function (it) {
+ return wmhas.call(store, it);
+ };
+} else {
+ var STATE = sharedKey('state');
+ hiddenKeys[STATE] = true;
+ set = function (it, metadata) {
+ hide(it, STATE, metadata);
+ return metadata;
+ };
+ get = function (it) {
+ return objectHas(it, STATE) ? it[STATE] : {};
+ };
+ has = function (it) {
+ return objectHas(it, STATE);
+ };
+}
+module.exports = {
+ set: set,
+ get: get,
+ has: has,
+ enforce: enforce,
+ getterFor: getterFor
};
-
-$exports.store = store;
/***/ }),
/* 36 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var core = __w_pdfjs_require__(14);
-
-var global = __w_pdfjs_require__(13);
-
-var SHARED = '__core-js_shared__';
-var store = global[SHARED] || (global[SHARED] = {});
-(module.exports = function (key, value) {
- return store[key] || (store[key] = value !== undefined ? value : {});
-})('versions', []).push({
- version: core.version,
- mode: __w_pdfjs_require__(37) ? 'pure' : 'global',
- copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
-});
+var global = __w_pdfjs_require__(12);
+var nativeFunctionToString = __w_pdfjs_require__(34);
+var WeakMap = global.WeakMap;
+module.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap));
/***/ }),
/* 37 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-module.exports = false;
+var shared = __w_pdfjs_require__(31);
+var uid = __w_pdfjs_require__(38);
+var keys = shared('keys');
+module.exports = function (key) {
+ return keys[key] || (keys[key] = uid(key));
+};
/***/ }),
/* 38 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
+/***/ (function(module, exports) {
-
-module.exports = function (it) {
- if (it == undefined) throw TypeError("Can't call method on " + it);
- return it;
+var id = 0;
+var postfix = Math.random();
+module.exports = function (key) {
+ return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
};
/***/ }),
/* 39 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-var MATCH = __w_pdfjs_require__(35)('match');
-
-module.exports = function (KEY) {
- var re = /./;
+/***/ (function(module, exports) {
- try {
- '/./'[KEY](re);
- } catch (e) {
- try {
- re[MATCH] = false;
- return !'/./'[KEY](re);
- } catch (f) {}
- }
-
- return true;
-};
+module.exports = {};
/***/ }),
/* 40 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(41);
-
-module.exports = __w_pdfjs_require__(14).String.endsWith;
+var has = __w_pdfjs_require__(24);
+var ownKeys = __w_pdfjs_require__(41);
+var getOwnPropertyDescriptorModule = __w_pdfjs_require__(13);
+var definePropertyModule = __w_pdfjs_require__(28);
+module.exports = function (target, source) {
+ var keys = ownKeys(source);
+ var defineProperty = definePropertyModule.f;
+ var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ if (!has(target, key))
+ defineProperty(target, key, getOwnPropertyDescriptor(source, key));
+ }
+};
/***/ }),
/* 41 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var $export = __w_pdfjs_require__(12);
-
-var toLength = __w_pdfjs_require__(30);
-
-var context = __w_pdfjs_require__(32);
-
-var ENDS_WITH = 'endsWith';
-var $endsWith = ''[ENDS_WITH];
-$export($export.P + $export.F * __w_pdfjs_require__(39)(ENDS_WITH), 'String', {
- endsWith: function endsWith(searchString) {
- var that = context(this, searchString, ENDS_WITH);
- var endPosition = arguments.length > 1 ? arguments[1] : undefined;
- var len = toLength(that.length);
- var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
- var search = String(searchString);
- return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;
- }
-});
+var getBuiltIn = __w_pdfjs_require__(42);
+var getOwnPropertyNamesModule = __w_pdfjs_require__(44);
+var getOwnPropertySymbolsModule = __w_pdfjs_require__(51);
+var anObject = __w_pdfjs_require__(29);
+module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
+ var keys = getOwnPropertyNamesModule.f(anObject(it));
+ var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
+ return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
+};
/***/ }),
/* 42 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(43);
-
-module.exports = __w_pdfjs_require__(14).String.includes;
+var path = __w_pdfjs_require__(43);
+var global = __w_pdfjs_require__(12);
+var aFunction = function (variable) {
+ return typeof variable == 'function' ? variable : undefined;
+};
+module.exports = function (namespace, method) {
+ return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
+};
/***/ }),
/* 43 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var $export = __w_pdfjs_require__(12);
-
-var context = __w_pdfjs_require__(32);
-
-var INCLUDES = 'includes';
-$export($export.P + $export.F * __w_pdfjs_require__(39)(INCLUDES), 'String', {
- includes: function includes(searchString) {
- return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
- }
-});
+module.exports = __w_pdfjs_require__(12);
/***/ }),
/* 44 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(45);
-
-module.exports = __w_pdfjs_require__(14).Array.includes;
+var internalObjectKeys = __w_pdfjs_require__(45);
+var enumBugKeys = __w_pdfjs_require__(50);
+var hiddenKeys = enumBugKeys.concat('length', 'prototype');
+exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+ return internalObjectKeys(O, hiddenKeys);
+};
/***/ }),
/* 45 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var $export = __w_pdfjs_require__(12);
-
-var $includes = __w_pdfjs_require__(46)(true);
-
-$export($export.P, 'Array', {
- includes: function includes(el) {
- return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
- }
-});
-
-__w_pdfjs_require__(50)('includes');
+var has = __w_pdfjs_require__(24);
+var toIndexedObject = __w_pdfjs_require__(18);
+var indexOf = __w_pdfjs_require__(46).indexOf;
+var hiddenKeys = __w_pdfjs_require__(39);
+module.exports = function (object, names) {
+ var O = toIndexedObject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O)
+ !has(hiddenKeys, key) && has(O, key) && result.push(key);
+ while (names.length > i)
+ if (has(O, key = names[i++])) {
+ ~indexOf(result, key) || result.push(key);
+ }
+ return result;
+};
/***/ }),
/* 46 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var toIObject = __w_pdfjs_require__(47);
-
-var toLength = __w_pdfjs_require__(30);
-
+var toIndexedObject = __w_pdfjs_require__(18);
+var toLength = __w_pdfjs_require__(47);
var toAbsoluteIndex = __w_pdfjs_require__(49);
-
-module.exports = function (IS_INCLUDES) {
- return function ($this, el, fromIndex) {
- var O = toIObject($this);
- var length = toLength(O.length);
- var index = toAbsoluteIndex(fromIndex, length);
- var value;
- if (IS_INCLUDES && el != el) while (length > index) {
- value = O[index++];
- if (value != value) return true;
- } else for (; length > index; index++) {
- if (IS_INCLUDES || index in O) {
- if (O[index] === el) return IS_INCLUDES || index || 0;
- }
- }
- return !IS_INCLUDES && -1;
- };
+var createMethod = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = toIndexedObject($this);
+ var length = toLength(O.length);
+ var index = toAbsoluteIndex(fromIndex, length);
+ var value;
+ if (IS_INCLUDES && el != el)
+ while (length > index) {
+ value = O[index++];
+ if (value != value)
+ return true;
+ }
+ else
+ for (; length > index; index++) {
+ if ((IS_INCLUDES || index in O) && O[index] === el)
+ return IS_INCLUDES || index || 0;
+ }
+ return !IS_INCLUDES && -1;
+ };
+};
+module.exports = {
+ includes: createMethod(true),
+ indexOf: createMethod(false)
};
/***/ }),
/* 47 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var IObject = __w_pdfjs_require__(48);
-
-var defined = __w_pdfjs_require__(38);
-
-module.exports = function (it) {
- return IObject(defined(it));
+var toInteger = __w_pdfjs_require__(48);
+var min = Math.min;
+module.exports = function (argument) {
+ return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0;
};
/***/ }),
/* 48 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
+/***/ (function(module, exports) {
-var cof = __w_pdfjs_require__(34);
-
-module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
- return cof(it) == 'String' ? it.split('') : Object(it);
+var ceil = Math.ceil;
+var floor = Math.floor;
+module.exports = function (argument) {
+ return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
};
/***/ }),
/* 49 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var toInteger = __w_pdfjs_require__(31);
-
+var toInteger = __w_pdfjs_require__(48);
var max = Math.max;
var min = Math.min;
-
module.exports = function (index, length) {
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
+ var integer = toInteger(index);
+ return integer < 0 ? max(integer + length, 0) : min(integer, length);
};
/***/ }),
/* 50 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-var UNSCOPABLES = __w_pdfjs_require__(35)('unscopables');
-
-var ArrayProto = Array.prototype;
-if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(15)(ArrayProto, UNSCOPABLES, {});
-
-module.exports = function (key) {
- ArrayProto[UNSCOPABLES][key] = true;
-};
+/***/ (function(module, exports) {
+
+module.exports = [
+ 'constructor',
+ 'hasOwnProperty',
+ 'isPrototypeOf',
+ 'propertyIsEnumerable',
+ 'toLocaleString',
+ 'toString',
+ 'valueOf'
+];
/***/ }),
/* 51 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
+/***/ (function(module, exports) {
-__w_pdfjs_require__(52);
-
-__w_pdfjs_require__(67);
-
-module.exports = __w_pdfjs_require__(14).Array.from;
+exports.f = Object.getOwnPropertySymbols;
/***/ }),
/* 52 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var $at = __w_pdfjs_require__(53)(true);
-
-__w_pdfjs_require__(54)(String, 'String', function (iterated) {
- this._t = String(iterated);
- this._i = 0;
-}, function () {
- var O = this._t;
- var index = this._i;
- var point;
- if (index >= O.length) return {
- value: undefined,
- done: true
- };
- point = $at(O, index);
- this._i += point.length;
- return {
- value: point,
- done: false
- };
-});
+var fails = __w_pdfjs_require__(15);
+var replacement = /#|\.prototype\./;
+var isForced = function (feature, detection) {
+ var value = data[normalize(feature)];
+ return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection;
+};
+var normalize = isForced.normalize = function (string) {
+ return String(string).replace(replacement, '.').toLowerCase();
+};
+var data = isForced.data = {};
+var NATIVE = isForced.NATIVE = 'N';
+var POLYFILL = isForced.POLYFILL = 'P';
+module.exports = isForced;
/***/ }),
/* 53 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var toInteger = __w_pdfjs_require__(31);
-
-var defined = __w_pdfjs_require__(38);
-
-module.exports = function (TO_STRING) {
- return function (that, pos) {
- var s = String(defined(that));
- var i = toInteger(pos);
- var l = s.length;
- var a, b;
- if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
+var isRegExp = __w_pdfjs_require__(54);
+module.exports = function (it) {
+ if (isRegExp(it)) {
+ throw TypeError("The method doesn't accept regular expressions");
+ }
+ return it;
};
/***/ }),
/* 54 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var LIBRARY = __w_pdfjs_require__(37);
-
-var $export = __w_pdfjs_require__(12);
-
-var redefine = __w_pdfjs_require__(25);
-
-var hide = __w_pdfjs_require__(15);
-
-var Iterators = __w_pdfjs_require__(55);
-
-var $iterCreate = __w_pdfjs_require__(56);
-
-var setToStringTag = __w_pdfjs_require__(64);
-
-var getPrototypeOf = __w_pdfjs_require__(65);
-
-var ITERATOR = __w_pdfjs_require__(35)('iterator');
-
-var BUGGY = !([].keys && 'next' in [].keys());
-var FF_ITERATOR = '@@iterator';
-var KEYS = 'keys';
-var VALUES = 'values';
-
-var returnThis = function returnThis() {
- return this;
-};
-
-module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
- $iterCreate(Constructor, NAME, next);
-
- var getMethod = function getMethod(kind) {
- if (!BUGGY && kind in proto) return proto[kind];
-
- switch (kind) {
- case KEYS:
- return function keys() {
- return new Constructor(this, kind);
- };
-
- case VALUES:
- return function values() {
- return new Constructor(this, kind);
- };
- }
-
- return function entries() {
- return new Constructor(this, kind);
- };
- };
-
- var TAG = NAME + ' Iterator';
- var DEF_VALUES = DEFAULT == VALUES;
- var VALUES_BUG = false;
- var proto = Base.prototype;
- var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
- var $default = $native || getMethod(DEFAULT);
- var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
- var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
- var methods, key, IteratorPrototype;
-
- if ($anyNative) {
- IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
-
- if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
- setToStringTag(IteratorPrototype, TAG, true);
- if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
-
- if (DEF_VALUES && $native && $native.name !== VALUES) {
- VALUES_BUG = true;
-
- $default = function values() {
- return $native.call(this);
- };
- }
-
- if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
- hide(proto, ITERATOR, $default);
- }
-
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
-
- if (DEFAULT) {
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if (FORCED) for (key in methods) {
- if (!(key in proto)) redefine(proto, key, methods[key]);
- } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
-
- return methods;
+var isObject = __w_pdfjs_require__(23);
+var classof = __w_pdfjs_require__(20);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var MATCH = wellKnownSymbol('match');
+module.exports = function (it) {
+ var isRegExp;
+ return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
};
/***/ }),
/* 55 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-module.exports = {};
+var global = __w_pdfjs_require__(12);
+var shared = __w_pdfjs_require__(31);
+var uid = __w_pdfjs_require__(38);
+var NATIVE_SYMBOL = __w_pdfjs_require__(56);
+var Symbol = global.Symbol;
+var store = shared('wks');
+module.exports = function (name) {
+ return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name] || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));
+};
/***/ }),
/* 56 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var create = __w_pdfjs_require__(57);
-
-var descriptor = __w_pdfjs_require__(24);
-
-var setToStringTag = __w_pdfjs_require__(64);
-
-var IteratorPrototype = {};
-
-__w_pdfjs_require__(15)(IteratorPrototype, __w_pdfjs_require__(35)('iterator'), function () {
- return this;
+var fails = __w_pdfjs_require__(15);
+module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
+ return !String(Symbol());
});
-module.exports = function (Constructor, NAME, next) {
- Constructor.prototype = create(IteratorPrototype, {
- next: descriptor(1, next)
- });
- setToStringTag(Constructor, NAME + ' Iterator');
-};
-
/***/ }),
/* 57 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var anObject = __w_pdfjs_require__(17);
-
-var dPs = __w_pdfjs_require__(58);
-
-var enumBugKeys = __w_pdfjs_require__(62);
-
-var IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO');
-
-var Empty = function Empty() {};
-
-var PROTOTYPE = 'prototype';
-
-var _createDict = function createDict() {
- var iframe = __w_pdfjs_require__(22)('iframe');
-
- var i = enumBugKeys.length;
- var lt = '<';
- var gt = '>';
- var iframeDocument;
- iframe.style.display = 'none';
-
- __w_pdfjs_require__(63).appendChild(iframe);
-
- iframe.src = 'javascript:';
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
- iframeDocument.close();
- _createDict = iframeDocument.F;
-
- while (i--) {
- delete _createDict[PROTOTYPE][enumBugKeys[i]];
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var MATCH = wellKnownSymbol('match');
+module.exports = function (METHOD_NAME) {
+ var regexp = /./;
+ try {
+ '/./'[METHOD_NAME](regexp);
+ } catch (e) {
+ try {
+ regexp[MATCH] = false;
+ return '/./'[METHOD_NAME](regexp);
+ } catch (f) {
}
-
- return _createDict();
-};
-
-module.exports = Object.create || function create(O, Properties) {
- var result;
-
- if (O !== null) {
- Empty[PROTOTYPE] = anObject(O);
- result = new Empty();
- Empty[PROTOTYPE] = null;
- result[IE_PROTO] = O;
- } else result = _createDict();
-
- return Properties === undefined ? result : dPs(result, Properties);
+ }
+ return false;
};
/***/ }),
/* 58 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var dP = __w_pdfjs_require__(16);
-
-var anObject = __w_pdfjs_require__(17);
-
-var getKeys = __w_pdfjs_require__(59);
-
-module.exports = __w_pdfjs_require__(20) ? Object.defineProperties : function defineProperties(O, Properties) {
- anObject(O);
- var keys = getKeys(Properties);
- var length = keys.length;
- var i = 0;
- var P;
-
- while (length > i) {
- dP.f(O, P = keys[i++], Properties[P]);
- }
-
- return O;
+var global = __w_pdfjs_require__(12);
+var bind = __w_pdfjs_require__(59);
+var call = Function.call;
+module.exports = function (CONSTRUCTOR, METHOD, length) {
+ return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);
};
/***/ }),
/* 59 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var $keys = __w_pdfjs_require__(60);
-
-var enumBugKeys = __w_pdfjs_require__(62);
-
-module.exports = Object.keys || function keys(O) {
- return $keys(O, enumBugKeys);
+var aFunction = __w_pdfjs_require__(60);
+module.exports = function (fn, that, length) {
+ aFunction(fn);
+ if (that === undefined)
+ return fn;
+ switch (length) {
+ case 0:
+ return function () {
+ return fn.call(that);
+ };
+ case 1:
+ return function (a) {
+ return fn.call(that, a);
+ };
+ case 2:
+ return function (a, b) {
+ return fn.call(that, a, b);
+ };
+ case 3:
+ return function (a, b, c) {
+ return fn.call(that, a, b, c);
+ };
+ }
+ return function () {
+ return fn.apply(that, arguments);
+ };
};
/***/ }),
/* 60 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-var has = __w_pdfjs_require__(26);
-
-var toIObject = __w_pdfjs_require__(47);
-
-var arrayIndexOf = __w_pdfjs_require__(46)(false);
-
-var IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO');
-
-module.exports = function (object, names) {
- var O = toIObject(object);
- var i = 0;
- var result = [];
- var key;
-
- for (key in O) {
- if (key != IE_PROTO) has(O, key) && result.push(key);
- }
+/***/ (function(module, exports) {
- while (names.length > i) {
- if (has(O, key = names[i++])) {
- ~arrayIndexOf(result, key) || result.push(key);
- }
- }
-
- return result;
+module.exports = function (it) {
+ if (typeof it != 'function') {
+ throw TypeError(String(it) + ' is not a function');
+ }
+ return it;
};
/***/ }),
/* 61 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var shared = __w_pdfjs_require__(36)('keys');
-
-var uid = __w_pdfjs_require__(27);
-
-module.exports = function (key) {
- return shared[key] || (shared[key] = uid(key));
-};
+__w_pdfjs_require__(62);
+var entryUnbind = __w_pdfjs_require__(58);
+module.exports = entryUnbind('String', 'endsWith');
/***/ }),
/* 62 */
@@ -3882,19 +3404,36 @@ module.exports = function (key) {
"use strict";
-
-module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');
+var $ = __w_pdfjs_require__(11);
+var toLength = __w_pdfjs_require__(47);
+var notARegExp = __w_pdfjs_require__(53);
+var requireObjectCoercible = __w_pdfjs_require__(21);
+var correctIsRegExpLogic = __w_pdfjs_require__(57);
+var nativeEndsWith = ''.endsWith;
+var min = Math.min;
+$({
+ target: 'String',
+ proto: true,
+ forced: !correctIsRegExpLogic('endsWith')
+}, {
+ endsWith: function endsWith(searchString) {
+ var that = String(requireObjectCoercible(this));
+ notARegExp(searchString);
+ var endPosition = arguments.length > 1 ? arguments[1] : undefined;
+ var len = toLength(that.length);
+ var end = endPosition === undefined ? len : min(toLength(endPosition), len);
+ var search = String(searchString);
+ return nativeEndsWith ? nativeEndsWith.call(that, search, end) : that.slice(end - search.length, end) === search;
+ }
+});
/***/ }),
/* 63 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var document = __w_pdfjs_require__(13).document;
-
-module.exports = document && document.documentElement;
+__w_pdfjs_require__(64);
+var entryUnbind = __w_pdfjs_require__(58);
+module.exports = entryUnbind('String', 'includes');
/***/ }),
/* 64 */
@@ -3902,45 +3441,27 @@ module.exports = document && document.documentElement;
"use strict";
-
-var def = __w_pdfjs_require__(16).f;
-
-var has = __w_pdfjs_require__(26);
-
-var TAG = __w_pdfjs_require__(35)('toStringTag');
-
-module.exports = function (it, tag, stat) {
- if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {
- configurable: true,
- value: tag
- });
-};
+var $ = __w_pdfjs_require__(11);
+var notARegExp = __w_pdfjs_require__(53);
+var requireObjectCoercible = __w_pdfjs_require__(21);
+var correctIsRegExpLogic = __w_pdfjs_require__(57);
+$({
+ target: 'String',
+ proto: true,
+ forced: !correctIsRegExpLogic('includes')
+}, {
+ includes: function includes(searchString) {
+ return !!~String(requireObjectCoercible(this)).indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
+ }
+});
/***/ }),
/* 65 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var has = __w_pdfjs_require__(26);
-
-var toObject = __w_pdfjs_require__(66);
-
-var IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO');
-
-var ObjectProto = Object.prototype;
-
-module.exports = Object.getPrototypeOf || function (O) {
- O = toObject(O);
- if (has(O, IE_PROTO)) return O[IE_PROTO];
-
- if (typeof O.constructor == 'function' && O instanceof O.constructor) {
- return O.constructor.prototype;
- }
-
- return O instanceof Object ? ObjectProto : null;
-};
+__w_pdfjs_require__(66);
+var entryUnbind = __w_pdfjs_require__(58);
+module.exports = entryUnbind('Array', 'includes');
/***/ }),
/* 66 */
@@ -3948,537 +3469,939 @@ module.exports = Object.getPrototypeOf || function (O) {
"use strict";
-
-var defined = __w_pdfjs_require__(38);
-
-module.exports = function (it) {
- return Object(defined(it));
-};
+var $ = __w_pdfjs_require__(11);
+var $includes = __w_pdfjs_require__(46).includes;
+var addToUnscopables = __w_pdfjs_require__(67);
+$({
+ target: 'Array',
+ proto: true
+}, {
+ includes: function includes(el) {
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
+ }
+});
+addToUnscopables('includes');
/***/ }),
/* 67 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var ctx = __w_pdfjs_require__(28);
-
-var $export = __w_pdfjs_require__(12);
-
-var toObject = __w_pdfjs_require__(66);
-
-var call = __w_pdfjs_require__(68);
-
-var isArrayIter = __w_pdfjs_require__(69);
-
-var toLength = __w_pdfjs_require__(30);
-
-var createProperty = __w_pdfjs_require__(70);
-
-var getIterFn = __w_pdfjs_require__(71);
-
-$export($export.S + $export.F * !__w_pdfjs_require__(73)(function (iter) {
- Array.from(iter);
-}), 'Array', {
- from: function from(arrayLike) {
- var O = toObject(arrayLike);
- var C = typeof this == 'function' ? this : Array;
- var aLen = arguments.length;
- var mapfn = aLen > 1 ? arguments[1] : undefined;
- var mapping = mapfn !== undefined;
- var index = 0;
- var iterFn = getIterFn(O);
- var length, result, step, iterator;
- if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
-
- if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
- for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
- createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
- }
- } else {
- length = toLength(O.length);
-
- for (result = new C(length); length > index; index++) {
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
- }
- }
-
- result.length = index;
- return result;
- }
-});
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var create = __w_pdfjs_require__(68);
+var hide = __w_pdfjs_require__(27);
+var UNSCOPABLES = wellKnownSymbol('unscopables');
+var ArrayPrototype = Array.prototype;
+if (ArrayPrototype[UNSCOPABLES] == undefined) {
+ hide(ArrayPrototype, UNSCOPABLES, create(null));
+}
+module.exports = function (key) {
+ ArrayPrototype[UNSCOPABLES][key] = true;
+};
/***/ }),
/* 68 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var anObject = __w_pdfjs_require__(17);
-
-module.exports = function (iterator, fn, value, entries) {
- try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
- } catch (e) {
- var ret = iterator['return'];
- if (ret !== undefined) anObject(ret.call(iterator));
- throw e;
- }
+var anObject = __w_pdfjs_require__(29);
+var defineProperties = __w_pdfjs_require__(69);
+var enumBugKeys = __w_pdfjs_require__(50);
+var hiddenKeys = __w_pdfjs_require__(39);
+var html = __w_pdfjs_require__(71);
+var documentCreateElement = __w_pdfjs_require__(26);
+var sharedKey = __w_pdfjs_require__(37);
+var IE_PROTO = sharedKey('IE_PROTO');
+var PROTOTYPE = 'prototype';
+var Empty = function () {
+};
+var createDict = function () {
+ var iframe = documentCreateElement('iframe');
+ var length = enumBugKeys.length;
+ var lt = '<';
+ var script = 'script';
+ var gt = '>';
+ var js = 'java' + script + ':';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ html.appendChild(iframe);
+ iframe.src = String(js);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);
+ iframeDocument.close();
+ createDict = iframeDocument.F;
+ while (length--)
+ delete createDict[PROTOTYPE][enumBugKeys[length]];
+ return createDict();
};
+module.exports = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ Empty[PROTOTYPE] = anObject(O);
+ result = new Empty();
+ Empty[PROTOTYPE] = null;
+ result[IE_PROTO] = O;
+ } else
+ result = createDict();
+ return Properties === undefined ? result : defineProperties(result, Properties);
+};
+hiddenKeys[IE_PROTO] = true;
/***/ }),
/* 69 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var Iterators = __w_pdfjs_require__(55);
-
-var ITERATOR = __w_pdfjs_require__(35)('iterator');
-
-var ArrayProto = Array.prototype;
-
-module.exports = function (it) {
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var definePropertyModule = __w_pdfjs_require__(28);
+var anObject = __w_pdfjs_require__(29);
+var objectKeys = __w_pdfjs_require__(70);
+module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
+ anObject(O);
+ var keys = objectKeys(Properties);
+ var length = keys.length;
+ var index = 0;
+ var key;
+ while (length > index)
+ definePropertyModule.f(O, key = keys[index++], Properties[key]);
+ return O;
};
/***/ }),
/* 70 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var $defineProperty = __w_pdfjs_require__(16);
-
-var createDesc = __w_pdfjs_require__(24);
-
-module.exports = function (object, index, value) {
- if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;
+var internalObjectKeys = __w_pdfjs_require__(45);
+var enumBugKeys = __w_pdfjs_require__(50);
+module.exports = Object.keys || function keys(O) {
+ return internalObjectKeys(O, enumBugKeys);
};
/***/ }),
/* 71 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var classof = __w_pdfjs_require__(72);
-
-var ITERATOR = __w_pdfjs_require__(35)('iterator');
-
-var Iterators = __w_pdfjs_require__(55);
-
-module.exports = __w_pdfjs_require__(14).getIteratorMethod = function (it) {
- if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
-};
+var getBuiltIn = __w_pdfjs_require__(42);
+module.exports = getBuiltIn('document', 'documentElement');
/***/ }),
/* 72 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
+__w_pdfjs_require__(73);
+__w_pdfjs_require__(85);
+var path = __w_pdfjs_require__(43);
+module.exports = path.Array.from;
+/***/ }),
+/* 73 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var cof = __w_pdfjs_require__(34);
+"use strict";
-var TAG = __w_pdfjs_require__(35)('toStringTag');
+var charAt = __w_pdfjs_require__(74).charAt;
+var InternalStateModule = __w_pdfjs_require__(35);
+var defineIterator = __w_pdfjs_require__(75);
+var STRING_ITERATOR = 'String Iterator';
+var setInternalState = InternalStateModule.set;
+var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
+defineIterator(String, 'String', function (iterated) {
+ setInternalState(this, {
+ type: STRING_ITERATOR,
+ string: String(iterated),
+ index: 0
+ });
+}, function next() {
+ var state = getInternalState(this);
+ var string = state.string;
+ var index = state.index;
+ var point;
+ if (index >= string.length)
+ return {
+ value: undefined,
+ done: true
+ };
+ point = charAt(string, index);
+ state.index += point.length;
+ return {
+ value: point,
+ done: false
+ };
+});
-var ARG = cof(function () {
- return arguments;
-}()) == 'Arguments';
+/***/ }),
+/* 74 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var tryGet = function tryGet(it, key) {
- try {
- return it[key];
- } catch (e) {}
+var toInteger = __w_pdfjs_require__(48);
+var requireObjectCoercible = __w_pdfjs_require__(21);
+var createMethod = function (CONVERT_TO_STRING) {
+ return function ($this, pos) {
+ var S = String(requireObjectCoercible($this));
+ var position = toInteger(pos);
+ var size = S.length;
+ var first, second;
+ if (position < 0 || position >= size)
+ return CONVERT_TO_STRING ? '' : undefined;
+ first = S.charCodeAt(position);
+ return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
+ };
};
-
-module.exports = function (it) {
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
+module.exports = {
+ codeAt: createMethod(false),
+ charAt: createMethod(true)
};
/***/ }),
-/* 73 */
+/* 75 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var ITERATOR = __w_pdfjs_require__(35)('iterator');
-
-var SAFE_CLOSING = false;
-
-try {
- var riter = [7][ITERATOR]();
-
- riter['return'] = function () {
- SAFE_CLOSING = true;
+var $ = __w_pdfjs_require__(11);
+var createIteratorConstructor = __w_pdfjs_require__(76);
+var getPrototypeOf = __w_pdfjs_require__(78);
+var setPrototypeOf = __w_pdfjs_require__(83);
+var setToStringTag = __w_pdfjs_require__(81);
+var hide = __w_pdfjs_require__(27);
+var redefine = __w_pdfjs_require__(30);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var IS_PURE = __w_pdfjs_require__(33);
+var Iterators = __w_pdfjs_require__(82);
+var IteratorsCore = __w_pdfjs_require__(77);
+var IteratorPrototype = IteratorsCore.IteratorPrototype;
+var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
+var ITERATOR = wellKnownSymbol('iterator');
+var KEYS = 'keys';
+var VALUES = 'values';
+var ENTRIES = 'entries';
+var returnThis = function () {
+ return this;
+};
+module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
+ createIteratorConstructor(IteratorConstructor, NAME, next);
+ var getIterationMethod = function (KIND) {
+ if (KIND === DEFAULT && defaultIterator)
+ return defaultIterator;
+ if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype)
+ return IterablePrototype[KIND];
+ switch (KIND) {
+ case KEYS:
+ return function keys() {
+ return new IteratorConstructor(this, KIND);
+ };
+ case VALUES:
+ return function values() {
+ return new IteratorConstructor(this, KIND);
+ };
+ case ENTRIES:
+ return function entries() {
+ return new IteratorConstructor(this, KIND);
+ };
+ }
+ return function () {
+ return new IteratorConstructor(this);
};
+ };
+ var TO_STRING_TAG = NAME + ' Iterator';
+ var INCORRECT_VALUES_NAME = false;
+ var IterablePrototype = Iterable.prototype;
+ var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];
+ var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
+ var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
+ var CurrentIteratorPrototype, methods, KEY;
+ if (anyNativeIterator) {
+ CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
+ if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
+ if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
+ if (setPrototypeOf) {
+ setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
+ } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {
+ hide(CurrentIteratorPrototype, ITERATOR, returnThis);
+ }
+ }
+ setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
+ if (IS_PURE)
+ Iterators[TO_STRING_TAG] = returnThis;
+ }
+ }
+ if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
+ INCORRECT_VALUES_NAME = true;
+ defaultIterator = function values() {
+ return nativeIterator.call(this);
+ };
+ }
+ if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
+ hide(IterablePrototype, ITERATOR, defaultIterator);
+ }
+ Iterators[NAME] = defaultIterator;
+ if (DEFAULT) {
+ methods = {
+ values: getIterationMethod(VALUES),
+ keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
+ entries: getIterationMethod(ENTRIES)
+ };
+ if (FORCED)
+ for (KEY in methods) {
+ if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
+ redefine(IterablePrototype, KEY, methods[KEY]);
+ }
+ }
+ else
+ $({
+ target: NAME,
+ proto: true,
+ forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME
+ }, methods);
+ }
+ return methods;
+};
- Array.from(riter, function () {
- throw 2;
- });
-} catch (e) {}
-
-module.exports = function (exec, skipClosing) {
- if (!skipClosing && !SAFE_CLOSING) return false;
- var safe = false;
-
- try {
- var arr = [7];
- var iter = arr[ITERATOR]();
-
- iter.next = function () {
- return {
- done: safe = true
- };
- };
-
- arr[ITERATOR] = function () {
- return iter;
- };
+/***/ }),
+/* 76 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
- exec(arr);
- } catch (e) {}
+"use strict";
- return safe;
+var IteratorPrototype = __w_pdfjs_require__(77).IteratorPrototype;
+var create = __w_pdfjs_require__(68);
+var createPropertyDescriptor = __w_pdfjs_require__(17);
+var setToStringTag = __w_pdfjs_require__(81);
+var Iterators = __w_pdfjs_require__(82);
+var returnThis = function () {
+ return this;
+};
+module.exports = function (IteratorConstructor, NAME, next) {
+ var TO_STRING_TAG = NAME + ' Iterator';
+ IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });
+ setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
+ Iterators[TO_STRING_TAG] = returnThis;
+ return IteratorConstructor;
};
/***/ }),
-/* 74 */
+/* 77 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
+var getPrototypeOf = __w_pdfjs_require__(78);
+var hide = __w_pdfjs_require__(27);
+var has = __w_pdfjs_require__(24);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var IS_PURE = __w_pdfjs_require__(33);
+var ITERATOR = wellKnownSymbol('iterator');
+var BUGGY_SAFARI_ITERATORS = false;
+var returnThis = function () {
+ return this;
+};
+var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
+if ([].keys) {
+ arrayIterator = [].keys();
+ if (!('next' in arrayIterator))
+ BUGGY_SAFARI_ITERATORS = true;
+ else {
+ PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
+ if (PrototypeOfArrayIteratorPrototype !== Object.prototype)
+ IteratorPrototype = PrototypeOfArrayIteratorPrototype;
+ }
+}
+if (IteratorPrototype == undefined)
+ IteratorPrototype = {};
+if (!IS_PURE && !has(IteratorPrototype, ITERATOR))
+ hide(IteratorPrototype, ITERATOR, returnThis);
+module.exports = {
+ IteratorPrototype: IteratorPrototype,
+ BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
+};
-__w_pdfjs_require__(75);
+/***/ }),
+/* 78 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-module.exports = __w_pdfjs_require__(14).Object.assign;
+var has = __w_pdfjs_require__(24);
+var toObject = __w_pdfjs_require__(79);
+var sharedKey = __w_pdfjs_require__(37);
+var CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(80);
+var IE_PROTO = sharedKey('IE_PROTO');
+var ObjectPrototype = Object.prototype;
+module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
+ O = toObject(O);
+ if (has(O, IE_PROTO))
+ return O[IE_PROTO];
+ if (typeof O.constructor == 'function' && O instanceof O.constructor) {
+ return O.constructor.prototype;
+ }
+ return O instanceof Object ? ObjectPrototype : null;
+};
/***/ }),
-/* 75 */
+/* 79 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
+var requireObjectCoercible = __w_pdfjs_require__(21);
+module.exports = function (argument) {
+ return Object(requireObjectCoercible(argument));
+};
-var $export = __w_pdfjs_require__(12);
+/***/ }),
+/* 80 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-$export($export.S + $export.F, 'Object', {
- assign: __w_pdfjs_require__(76)
+var fails = __w_pdfjs_require__(15);
+module.exports = !fails(function () {
+ function F() {
+ }
+ F.prototype.constructor = null;
+ return Object.getPrototypeOf(new F()) !== F.prototype;
});
/***/ }),
-/* 76 */
+/* 81 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var getKeys = __w_pdfjs_require__(59);
+var defineProperty = __w_pdfjs_require__(28).f;
+var has = __w_pdfjs_require__(24);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+module.exports = function (it, TAG, STATIC) {
+ if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
+ defineProperty(it, TO_STRING_TAG, {
+ configurable: true,
+ value: TAG
+ });
+ }
+};
-var gOPS = __w_pdfjs_require__(77);
+/***/ }),
+/* 82 */
+/***/ (function(module, exports) {
-var pIE = __w_pdfjs_require__(78);
+module.exports = {};
-var toObject = __w_pdfjs_require__(66);
+/***/ }),
+/* 83 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var IObject = __w_pdfjs_require__(48);
+var anObject = __w_pdfjs_require__(29);
+var aPossiblePrototype = __w_pdfjs_require__(84);
+module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
+ var CORRECT_SETTER = false;
+ var test = {};
+ var setter;
+ try {
+ setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
+ setter.call(test, []);
+ CORRECT_SETTER = test instanceof Array;
+ } catch (error) {
+ }
+ return function setPrototypeOf(O, proto) {
+ anObject(O);
+ aPossiblePrototype(proto);
+ if (CORRECT_SETTER)
+ setter.call(O, proto);
+ else
+ O.__proto__ = proto;
+ return O;
+ };
+}() : undefined);
-var $assign = Object.assign;
-module.exports = !$assign || __w_pdfjs_require__(21)(function () {
- var A = {};
- var B = {};
- var S = Symbol();
- var K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function (k) {
- B[k] = k;
- });
- return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
-}) ? function assign(target, source) {
- var T = toObject(target);
- var aLen = arguments.length;
- var index = 1;
- var getSymbols = gOPS.f;
- var isEnum = pIE.f;
+/***/ }),
+/* 84 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
- while (aLen > index) {
- var S = IObject(arguments[index++]);
- var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
- var length = keys.length;
- var j = 0;
- var key;
+var isObject = __w_pdfjs_require__(23);
+module.exports = function (it) {
+ if (!isObject(it) && it !== null) {
+ throw TypeError("Can't set " + String(it) + ' as a prototype');
+ }
+ return it;
+};
- while (length > j) {
- if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
- }
- }
+/***/ }),
+/* 85 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
- return T;
-} : $assign;
+var $ = __w_pdfjs_require__(11);
+var from = __w_pdfjs_require__(86);
+var checkCorrectnessOfIteration = __w_pdfjs_require__(92);
+var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
+ Array.from(iterable);
+});
+$({
+ target: 'Array',
+ stat: true,
+ forced: INCORRECT_ITERATION
+}, { from: from });
/***/ }),
-/* 77 */
+/* 86 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-exports.f = Object.getOwnPropertySymbols;
+var bind = __w_pdfjs_require__(59);
+var toObject = __w_pdfjs_require__(79);
+var callWithSafeIterationClosing = __w_pdfjs_require__(87);
+var isArrayIteratorMethod = __w_pdfjs_require__(88);
+var toLength = __w_pdfjs_require__(47);
+var createProperty = __w_pdfjs_require__(89);
+var getIteratorMethod = __w_pdfjs_require__(90);
+module.exports = function from(arrayLike) {
+ var O = toObject(arrayLike);
+ var C = typeof this == 'function' ? this : Array;
+ var argumentsLength = arguments.length;
+ var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
+ var mapping = mapfn !== undefined;
+ var index = 0;
+ var iteratorMethod = getIteratorMethod(O);
+ var length, result, step, iterator;
+ if (mapping)
+ mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
+ if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
+ iterator = iteratorMethod.call(O);
+ result = new C();
+ for (; !(step = iterator.next()).done; index++) {
+ createProperty(result, index, mapping ? callWithSafeIterationClosing(iterator, mapfn, [
+ step.value,
+ index
+ ], true) : step.value);
+ }
+ } else {
+ length = toLength(O.length);
+ result = new C(length);
+ for (; length > index; index++) {
+ createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
+ }
+ }
+ result.length = index;
+ return result;
+};
/***/ }),
-/* 78 */
+/* 87 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
+var anObject = __w_pdfjs_require__(29);
+module.exports = function (iterator, fn, value, ENTRIES) {
+ try {
+ return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
+ } catch (error) {
+ var returnMethod = iterator['return'];
+ if (returnMethod !== undefined)
+ anObject(returnMethod.call(iterator));
+ throw error;
+ }
+};
+/***/ }),
+/* 88 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-exports.f = {}.propertyIsEnumerable;
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var Iterators = __w_pdfjs_require__(82);
+var ITERATOR = wellKnownSymbol('iterator');
+var ArrayPrototype = Array.prototype;
+module.exports = function (it) {
+ return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
+};
/***/ }),
-/* 79 */
+/* 89 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
+var toPrimitive = __w_pdfjs_require__(22);
+var definePropertyModule = __w_pdfjs_require__(28);
+var createPropertyDescriptor = __w_pdfjs_require__(17);
+module.exports = function (object, key, value) {
+ var propertyKey = toPrimitive(key);
+ if (propertyKey in object)
+ definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
+ else
+ object[propertyKey] = value;
+};
-__w_pdfjs_require__(80);
+/***/ }),
+/* 90 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-module.exports = __w_pdfjs_require__(14).Math.log2;
+var classof = __w_pdfjs_require__(91);
+var Iterators = __w_pdfjs_require__(82);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var ITERATOR = wellKnownSymbol('iterator');
+module.exports = function (it) {
+ if (it != undefined)
+ return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
+};
/***/ }),
-/* 80 */
+/* 91 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
+var classofRaw = __w_pdfjs_require__(20);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var CORRECT_ARGUMENTS = classofRaw(function () {
+ return arguments;
+}()) == 'Arguments';
+var tryGet = function (it, key) {
+ try {
+ return it[key];
+ } catch (error) {
+ }
+};
+module.exports = function (it) {
+ var O, tag, result;
+ return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
+};
-var $export = __w_pdfjs_require__(12);
+/***/ }),
+/* 92 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-$export($export.S, 'Math', {
- log2: function log2(x) {
- return Math.log(x) / Math.LN2;
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var ITERATOR = wellKnownSymbol('iterator');
+var SAFE_CLOSING = false;
+try {
+ var called = 0;
+ var iteratorWithReturn = {
+ next: function () {
+ return { done: !!called++ };
+ },
+ 'return': function () {
+ SAFE_CLOSING = true;
}
-});
+ };
+ iteratorWithReturn[ITERATOR] = function () {
+ return this;
+ };
+ Array.from(iteratorWithReturn, function () {
+ throw 2;
+ });
+} catch (error) {
+}
+module.exports = function (exec, SKIP_CLOSING) {
+ if (!SKIP_CLOSING && !SAFE_CLOSING)
+ return false;
+ var ITERATION_SUPPORT = false;
+ try {
+ var object = {};
+ object[ITERATOR] = function () {
+ return {
+ next: function () {
+ return { done: ITERATION_SUPPORT = true };
+ }
+ };
+ };
+ exec(object);
+ } catch (error) {
+ }
+ return ITERATION_SUPPORT;
+};
/***/ }),
-/* 81 */
+/* 93 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
+__w_pdfjs_require__(94);
+var path = __w_pdfjs_require__(43);
+module.exports = path.Object.assign;
-__w_pdfjs_require__(82);
+/***/ }),
+/* 94 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-module.exports = __w_pdfjs_require__(14).Number.isNaN;
+var $ = __w_pdfjs_require__(11);
+var assign = __w_pdfjs_require__(95);
+$({
+ target: 'Object',
+ stat: true,
+ forced: Object.assign !== assign
+}, { assign: assign });
/***/ }),
-/* 82 */
+/* 95 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var $export = __w_pdfjs_require__(12);
-
-$export($export.S, 'Number', {
- isNaN: function isNaN(number) {
- return number != number;
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var fails = __w_pdfjs_require__(15);
+var objectKeys = __w_pdfjs_require__(70);
+var getOwnPropertySymbolsModule = __w_pdfjs_require__(51);
+var propertyIsEnumerableModule = __w_pdfjs_require__(16);
+var toObject = __w_pdfjs_require__(79);
+var IndexedObject = __w_pdfjs_require__(19);
+var nativeAssign = Object.assign;
+module.exports = !nativeAssign || fails(function () {
+ var A = {};
+ var B = {};
+ var symbol = Symbol();
+ var alphabet = 'abcdefghijklmnopqrst';
+ A[symbol] = 7;
+ alphabet.split('').forEach(function (chr) {
+ B[chr] = chr;
+ });
+ return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;
+}) ? function assign(target, source) {
+ var T = toObject(target);
+ var argumentsLength = arguments.length;
+ var index = 1;
+ var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
+ var propertyIsEnumerable = propertyIsEnumerableModule.f;
+ while (argumentsLength > index) {
+ var S = IndexedObject(arguments[index++]);
+ var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
+ var length = keys.length;
+ var j = 0;
+ var key;
+ while (length > j) {
+ key = keys[j++];
+ if (!DESCRIPTORS || propertyIsEnumerable.call(S, key))
+ T[key] = S[key];
}
-});
+ }
+ return T;
+} : nativeAssign;
/***/ }),
-/* 83 */
+/* 96 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
+__w_pdfjs_require__(97);
+var path = __w_pdfjs_require__(43);
+module.exports = path.Math.log2;
-__w_pdfjs_require__(84);
+/***/ }),
+/* 97 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-module.exports = __w_pdfjs_require__(14).Number.isInteger;
+var $ = __w_pdfjs_require__(11);
+var log = Math.log;
+var LN2 = Math.LN2;
+$({
+ target: 'Math',
+ stat: true
+}, {
+ log2: function log2(x) {
+ return log(x) / LN2;
+ }
+});
/***/ }),
-/* 84 */
+/* 98 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
+__w_pdfjs_require__(99);
+var path = __w_pdfjs_require__(43);
+module.exports = path.Number.isNaN;
-var $export = __w_pdfjs_require__(12);
+/***/ }),
+/* 99 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-$export($export.S, 'Number', {
- isInteger: __w_pdfjs_require__(85)
+var $ = __w_pdfjs_require__(11);
+$({
+ target: 'Number',
+ stat: true
+}, {
+ isNaN: function isNaN(number) {
+ return number != number;
+ }
});
/***/ }),
-/* 85 */
+/* 100 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
+__w_pdfjs_require__(101);
+var path = __w_pdfjs_require__(43);
+module.exports = path.Number.isInteger;
+/***/ }),
+/* 101 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var isObject = __w_pdfjs_require__(18);
+var $ = __w_pdfjs_require__(11);
+var isInteger = __w_pdfjs_require__(102);
+$({
+ target: 'Number',
+ stat: true
+}, { isInteger: isInteger });
-var floor = Math.floor;
+/***/ }),
+/* 102 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
+var isObject = __w_pdfjs_require__(23);
+var floor = Math.floor;
module.exports = function isInteger(it) {
- return !isObject(it) && isFinite(it) && floor(it) === it;
+ return !isObject(it) && isFinite(it) && floor(it) === it;
};
/***/ }),
-/* 86 */
+/* 103 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(87);
-
-__w_pdfjs_require__(52);
-
-__w_pdfjs_require__(88);
-
-__w_pdfjs_require__(91);
-
__w_pdfjs_require__(104);
+__w_pdfjs_require__(73);
+__w_pdfjs_require__(106);
+__w_pdfjs_require__(109);
+__w_pdfjs_require__(123);
+__w_pdfjs_require__(124);
+var path = __w_pdfjs_require__(43);
+module.exports = path.Promise;
-__w_pdfjs_require__(105);
+/***/ }),
+/* 104 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-module.exports = __w_pdfjs_require__(14).Promise;
+var redefine = __w_pdfjs_require__(30);
+var toString = __w_pdfjs_require__(105);
+var ObjectPrototype = Object.prototype;
+if (toString !== ObjectPrototype.toString) {
+ redefine(ObjectPrototype, 'toString', toString, { unsafe: true });
+}
/***/ }),
-/* 87 */
+/* 105 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var classof = __w_pdfjs_require__(72);
-
+var classof = __w_pdfjs_require__(91);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var test = {};
-test[__w_pdfjs_require__(35)('toStringTag')] = 'z';
-
-if (test + '' != '[object z]') {
- __w_pdfjs_require__(25)(Object.prototype, 'toString', function toString() {
- return '[object ' + classof(this) + ']';
- }, true);
-}
+test[TO_STRING_TAG] = 'z';
+module.exports = String(test) !== '[object z]' ? function toString() {
+ return '[object ' + classof(this) + ']';
+} : test.toString;
/***/ }),
-/* 88 */
+/* 106 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
+var global = __w_pdfjs_require__(12);
+var DOMIterables = __w_pdfjs_require__(107);
+var ArrayIteratorMethods = __w_pdfjs_require__(108);
+var hide = __w_pdfjs_require__(27);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var ITERATOR = wellKnownSymbol('iterator');
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var ArrayValues = ArrayIteratorMethods.values;
+for (var COLLECTION_NAME in DOMIterables) {
+ var Collection = global[COLLECTION_NAME];
+ var CollectionPrototype = Collection && Collection.prototype;
+ if (CollectionPrototype) {
+ if (CollectionPrototype[ITERATOR] !== ArrayValues)
+ try {
+ hide(CollectionPrototype, ITERATOR, ArrayValues);
+ } catch (error) {
+ CollectionPrototype[ITERATOR] = ArrayValues;
+ }
+ if (!CollectionPrototype[TO_STRING_TAG])
+ hide(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
+ if (DOMIterables[COLLECTION_NAME])
+ for (var METHOD_NAME in ArrayIteratorMethods) {
+ if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME])
+ try {
+ hide(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
+ } catch (error) {
+ CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];
+ }
+ }
+ }
+}
+/***/ }),
+/* 107 */
+/***/ (function(module, exports) {
-var $iterators = __w_pdfjs_require__(89);
-
-var getKeys = __w_pdfjs_require__(59);
-
-var redefine = __w_pdfjs_require__(25);
-
-var global = __w_pdfjs_require__(13);
-
-var hide = __w_pdfjs_require__(15);
-
-var Iterators = __w_pdfjs_require__(55);
-
-var wks = __w_pdfjs_require__(35);
-
-var ITERATOR = wks('iterator');
-var TO_STRING_TAG = wks('toStringTag');
-var ArrayValues = Iterators.Array;
-var DOMIterables = {
- CSSRuleList: true,
- CSSStyleDeclaration: false,
- CSSValueList: false,
- ClientRectList: false,
- DOMRectList: false,
- DOMStringList: false,
- DOMTokenList: true,
- DataTransferItemList: false,
- FileList: false,
- HTMLAllCollection: false,
- HTMLCollection: false,
- HTMLFormElement: false,
- HTMLSelectElement: false,
- MediaList: true,
- MimeTypeArray: false,
- NamedNodeMap: false,
- NodeList: true,
- PaintRequestList: false,
- Plugin: false,
- PluginArray: false,
- SVGLengthList: false,
- SVGNumberList: false,
- SVGPathSegList: false,
- SVGPointList: false,
- SVGStringList: false,
- SVGTransformList: false,
- SourceBufferList: false,
- StyleSheetList: true,
- TextTrackCueList: false,
- TextTrackList: false,
- TouchList: false
+module.exports = {
+ CSSRuleList: 0,
+ CSSStyleDeclaration: 0,
+ CSSValueList: 0,
+ ClientRectList: 0,
+ DOMRectList: 0,
+ DOMStringList: 0,
+ DOMTokenList: 1,
+ DataTransferItemList: 0,
+ FileList: 0,
+ HTMLAllCollection: 0,
+ HTMLCollection: 0,
+ HTMLFormElement: 0,
+ HTMLSelectElement: 0,
+ MediaList: 0,
+ MimeTypeArray: 0,
+ NamedNodeMap: 0,
+ NodeList: 1,
+ PaintRequestList: 0,
+ Plugin: 0,
+ PluginArray: 0,
+ SVGLengthList: 0,
+ SVGNumberList: 0,
+ SVGPathSegList: 0,
+ SVGPointList: 0,
+ SVGStringList: 0,
+ SVGTransformList: 0,
+ SourceBufferList: 0,
+ StyleSheetList: 0,
+ TextTrackCueList: 0,
+ TextTrackList: 0,
+ TouchList: 0
};
-for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
- var NAME = collections[i];
- var explicit = DOMIterables[NAME];
- var Collection = global[NAME];
- var proto = Collection && Collection.prototype;
- var key;
-
- if (proto) {
- if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
- if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
- Iterators[NAME] = ArrayValues;
- if (explicit) for (key in $iterators) {
- if (!proto[key]) redefine(proto, key, $iterators[key], true);
- }
- }
-}
-
/***/ }),
-/* 89 */
+/* 108 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var addToUnscopables = __w_pdfjs_require__(50);
-
-var step = __w_pdfjs_require__(90);
-
-var Iterators = __w_pdfjs_require__(55);
-
-var toIObject = __w_pdfjs_require__(47);
-
-module.exports = __w_pdfjs_require__(54)(Array, 'Array', function (iterated, kind) {
- this._t = toIObject(iterated);
- this._i = 0;
- this._k = kind;
+var toIndexedObject = __w_pdfjs_require__(18);
+var addToUnscopables = __w_pdfjs_require__(67);
+var Iterators = __w_pdfjs_require__(82);
+var InternalStateModule = __w_pdfjs_require__(35);
+var defineIterator = __w_pdfjs_require__(75);
+var ARRAY_ITERATOR = 'Array Iterator';
+var setInternalState = InternalStateModule.set;
+var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);
+module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
+ setInternalState(this, {
+ type: ARRAY_ITERATOR,
+ target: toIndexedObject(iterated),
+ index: 0,
+ kind: kind
+ });
}, function () {
- var O = this._t;
- var kind = this._k;
- var index = this._i++;
-
- if (!O || index >= O.length) {
- this._t = undefined;
- return step(1);
- }
-
- if (kind == 'keys') return step(0, index);
- if (kind == 'values') return step(0, O[index]);
- return step(0, [index, O[index]]);
+ var state = getInternalState(this);
+ var target = state.target;
+ var kind = state.kind;
+ var index = state.index++;
+ if (!target || index >= target.length) {
+ state.target = undefined;
+ return {
+ value: undefined,
+ done: true
+ };
+ }
+ if (kind == 'keys')
+ return {
+ value: index,
+ done: false
+ };
+ if (kind == 'values')
+ return {
+ value: target[index],
+ done: false
+ };
+ return {
+ value: [
+ index,
+ target[index]
+ ],
+ done: false
+ };
}, 'values');
Iterators.Arguments = Iterators.Array;
addToUnscopables('keys');
@@ -4486,2197 +4409,3629 @@ addToUnscopables('values');
addToUnscopables('entries');
/***/ }),
-/* 90 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-module.exports = function (done, value) {
- return {
- value: value,
- done: !!done
- };
-};
-
-/***/ }),
-/* 91 */
+/* 109 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var LIBRARY = __w_pdfjs_require__(37);
-
-var global = __w_pdfjs_require__(13);
-
-var ctx = __w_pdfjs_require__(28);
-
-var classof = __w_pdfjs_require__(72);
-
-var $export = __w_pdfjs_require__(12);
-
-var isObject = __w_pdfjs_require__(18);
-
-var aFunction = __w_pdfjs_require__(29);
-
-var anInstance = __w_pdfjs_require__(92);
-
-var forOf = __w_pdfjs_require__(93);
-
-var speciesConstructor = __w_pdfjs_require__(94);
-
-var task = __w_pdfjs_require__(95).set;
-
-var microtask = __w_pdfjs_require__(97)();
-
-var newPromiseCapabilityModule = __w_pdfjs_require__(98);
-
-var perform = __w_pdfjs_require__(99);
-
-var userAgent = __w_pdfjs_require__(100);
-
-var promiseResolve = __w_pdfjs_require__(101);
-
+var $ = __w_pdfjs_require__(11);
+var IS_PURE = __w_pdfjs_require__(33);
+var global = __w_pdfjs_require__(12);
+var path = __w_pdfjs_require__(43);
+var NativePromise = __w_pdfjs_require__(110);
+var redefine = __w_pdfjs_require__(30);
+var redefineAll = __w_pdfjs_require__(111);
+var setToStringTag = __w_pdfjs_require__(81);
+var setSpecies = __w_pdfjs_require__(112);
+var isObject = __w_pdfjs_require__(23);
+var aFunction = __w_pdfjs_require__(60);
+var anInstance = __w_pdfjs_require__(113);
+var classof = __w_pdfjs_require__(20);
+var iterate = __w_pdfjs_require__(114);
+var checkCorrectnessOfIteration = __w_pdfjs_require__(92);
+var speciesConstructor = __w_pdfjs_require__(115);
+var task = __w_pdfjs_require__(116).set;
+var microtask = __w_pdfjs_require__(117);
+var promiseResolve = __w_pdfjs_require__(119);
+var hostReportErrors = __w_pdfjs_require__(121);
+var newPromiseCapabilityModule = __w_pdfjs_require__(120);
+var perform = __w_pdfjs_require__(122);
+var userAgent = __w_pdfjs_require__(118);
+var InternalStateModule = __w_pdfjs_require__(35);
+var isForced = __w_pdfjs_require__(52);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var SPECIES = wellKnownSymbol('species');
var PROMISE = 'Promise';
+var getInternalState = InternalStateModule.get;
+var setInternalState = InternalStateModule.set;
+var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
+var PromiseConstructor = NativePromise;
var TypeError = global.TypeError;
+var document = global.document;
var process = global.process;
+var $fetch = global.fetch;
var versions = process && process.versions;
var v8 = versions && versions.v8 || '';
-var $Promise = global[PROMISE];
-var isNode = classof(process) == 'process';
-
-var empty = function empty() {};
-
-var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
-var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
-var USE_NATIVE = !!function () {
- try {
- var promise = $Promise.resolve(1);
-
- var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(35)('species')] = function (exec) {
- exec(empty, empty);
- };
-
- return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;
- } catch (e) {}
-}();
-
-var isThenable = function isThenable(it) {
- var then;
- return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
+var newPromiseCapability = newPromiseCapabilityModule.f;
+var newGenericPromiseCapability = newPromiseCapability;
+var IS_NODE = classof(process) == 'process';
+var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
+var UNHANDLED_REJECTION = 'unhandledrejection';
+var REJECTION_HANDLED = 'rejectionhandled';
+var PENDING = 0;
+var FULFILLED = 1;
+var REJECTED = 2;
+var HANDLED = 1;
+var UNHANDLED = 2;
+var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
+var FORCED = isForced(PROMISE, function () {
+ var promise = PromiseConstructor.resolve(1);
+ var empty = function () {
+ };
+ var FakePromise = (promise.constructor = {})[SPECIES] = function (exec) {
+ exec(empty, empty);
+ };
+ return !((IS_NODE || typeof PromiseRejectionEvent == 'function') && (!IS_PURE || promise['finally']) && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1);
+});
+var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {
+ PromiseConstructor.all(iterable)['catch'](function () {
+ });
+});
+var isThenable = function (it) {
+ var then;
+ return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
-
-var notify = function notify(promise, isReject) {
- if (promise._n) return;
- promise._n = true;
- var chain = promise._c;
- microtask(function () {
- var value = promise._v;
- var ok = promise._s == 1;
- var i = 0;
-
- var run = function run(reaction) {
- var handler = ok ? reaction.ok : reaction.fail;
- var resolve = reaction.resolve;
- var reject = reaction.reject;
- var domain = reaction.domain;
- var result, then, exited;
-
- try {
- if (handler) {
- if (!ok) {
- if (promise._h == 2) onHandleUnhandled(promise);
- promise._h = 1;
- }
-
- if (handler === true) result = value;else {
- if (domain) domain.enter();
- result = handler(value);
-
- if (domain) {
- domain.exit();
- exited = true;
- }
- }
-
- if (result === reaction.promise) {
- reject(TypeError('Promise-chain cycle'));
- } else if (then = isThenable(result)) {
- then.call(result, resolve, reject);
- } else resolve(result);
- } else reject(value);
- } catch (e) {
- if (domain && !exited) domain.exit();
- reject(e);
- }
- };
-
- while (chain.length > i) {
- run(chain[i++]);
- }
-
- promise._c = [];
- promise._n = false;
- if (isReject && !promise._h) onUnhandled(promise);
- });
+var notify = function (promise, state, isReject) {
+ if (state.notified)
+ return;
+ state.notified = true;
+ var chain = state.reactions;
+ microtask(function () {
+ var value = state.value;
+ var ok = state.state == FULFILLED;
+ var index = 0;
+ while (chain.length > index) {
+ var reaction = chain[index++];
+ var handler = ok ? reaction.ok : reaction.fail;
+ var resolve = reaction.resolve;
+ var reject = reaction.reject;
+ var domain = reaction.domain;
+ var result, then, exited;
+ try {
+ if (handler) {
+ if (!ok) {
+ if (state.rejection === UNHANDLED)
+ onHandleUnhandled(promise, state);
+ state.rejection = HANDLED;
+ }
+ if (handler === true)
+ result = value;
+ else {
+ if (domain)
+ domain.enter();
+ result = handler(value);
+ if (domain) {
+ domain.exit();
+ exited = true;
+ }
+ }
+ if (result === reaction.promise) {
+ reject(TypeError('Promise-chain cycle'));
+ } else if (then = isThenable(result)) {
+ then.call(result, resolve, reject);
+ } else
+ resolve(result);
+ } else
+ reject(value);
+ } catch (error) {
+ if (domain && !exited)
+ domain.exit();
+ reject(error);
+ }
+ }
+ state.reactions = [];
+ state.notified = false;
+ if (isReject && !state.rejection)
+ onUnhandled(promise, state);
+ });
};
-
-var onUnhandled = function onUnhandled(promise) {
- task.call(global, function () {
- var value = promise._v;
- var unhandled = isUnhandled(promise);
- var result, handler, console;
-
- if (unhandled) {
- result = perform(function () {
- if (isNode) {
- process.emit('unhandledRejection', value, promise);
- } else if (handler = global.onunhandledrejection) {
- handler({
- promise: promise,
- reason: value
- });
- } else if ((console = global.console) && console.error) {
- console.error('Unhandled promise rejection', value);
- }
- });
- promise._h = isNode || isUnhandled(promise) ? 2 : 1;
- }
-
- promise._a = undefined;
- if (unhandled && result.e) throw result.v;
- });
+var dispatchEvent = function (name, promise, reason) {
+ var event, handler;
+ if (DISPATCH_EVENT) {
+ event = document.createEvent('Event');
+ event.promise = promise;
+ event.reason = reason;
+ event.initEvent(name, false, true);
+ global.dispatchEvent(event);
+ } else
+ event = {
+ promise: promise,
+ reason: reason
+ };
+ if (handler = global['on' + name])
+ handler(event);
+ else if (name === UNHANDLED_REJECTION)
+ hostReportErrors('Unhandled promise rejection', reason);
};
-
-var isUnhandled = function isUnhandled(promise) {
- return promise._h !== 1 && (promise._a || promise._c).length === 0;
+var onUnhandled = function (promise, state) {
+ task.call(global, function () {
+ var value = state.value;
+ var IS_UNHANDLED = isUnhandled(state);
+ var result;
+ if (IS_UNHANDLED) {
+ result = perform(function () {
+ if (IS_NODE) {
+ process.emit('unhandledRejection', value, promise);
+ } else
+ dispatchEvent(UNHANDLED_REJECTION, promise, value);
+ });
+ state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
+ if (result.error)
+ throw result.value;
+ }
+ });
};
-
-var onHandleUnhandled = function onHandleUnhandled(promise) {
- task.call(global, function () {
- var handler;
-
- if (isNode) {
- process.emit('rejectionHandled', promise);
- } else if (handler = global.onrejectionhandled) {
- handler({
- promise: promise,
- reason: promise._v
- });
- }
- });
+var isUnhandled = function (state) {
+ return state.rejection !== HANDLED && !state.parent;
};
-
-var $reject = function $reject(value) {
- var promise = this;
- if (promise._d) return;
- promise._d = true;
- promise = promise._w || promise;
- promise._v = value;
- promise._s = 2;
- if (!promise._a) promise._a = promise._c.slice();
- notify(promise, true);
+var onHandleUnhandled = function (promise, state) {
+ task.call(global, function () {
+ if (IS_NODE) {
+ process.emit('rejectionHandled', promise);
+ } else
+ dispatchEvent(REJECTION_HANDLED, promise, state.value);
+ });
};
-
-var $resolve = function $resolve(value) {
- var promise = this;
- var then;
- if (promise._d) return;
- promise._d = true;
- promise = promise._w || promise;
-
- try {
- if (promise === value) throw TypeError("Promise can't be resolved itself");
-
- if (then = isThenable(value)) {
- microtask(function () {
- var wrapper = {
- _w: promise,
- _d: false
- };
-
- try {
- then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
- } catch (e) {
- $reject.call(wrapper, e);
- }
- });
- } else {
- promise._v = value;
- promise._s = 1;
- notify(promise, false);
- }
- } catch (e) {
- $reject.call({
- _w: promise,
- _d: false
- }, e);
- }
+var bind = function (fn, promise, state, unwrap) {
+ return function (value) {
+ fn(promise, state, value, unwrap);
+ };
};
-
-if (!USE_NATIVE) {
- $Promise = function Promise(executor) {
- anInstance(this, $Promise, PROMISE, '_h');
- aFunction(executor);
- Internal.call(this);
-
+var internalReject = function (promise, state, value, unwrap) {
+ if (state.done)
+ return;
+ state.done = true;
+ if (unwrap)
+ state = unwrap;
+ state.value = value;
+ state.state = REJECTED;
+ notify(promise, state, true);
+};
+var internalResolve = function (promise, state, value, unwrap) {
+ if (state.done)
+ return;
+ state.done = true;
+ if (unwrap)
+ state = unwrap;
+ try {
+ if (promise === value)
+ throw TypeError("Promise can't be resolved itself");
+ var then = isThenable(value);
+ if (then) {
+ microtask(function () {
+ var wrapper = { done: false };
try {
- executor(ctx($resolve, this, 1), ctx($reject, this, 1));
- } catch (err) {
- $reject.call(this, err);
- }
- };
-
- Internal = function Promise(executor) {
- this._c = [];
- this._a = undefined;
- this._s = 0;
- this._d = false;
- this._v = undefined;
- this._h = 0;
- this._n = false;
- };
-
- Internal.prototype = __w_pdfjs_require__(102)($Promise.prototype, {
- then: function then(onFulfilled, onRejected) {
- var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
- reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
- reaction.fail = typeof onRejected == 'function' && onRejected;
- reaction.domain = isNode ? process.domain : undefined;
-
- this._c.push(reaction);
-
- if (this._a) this._a.push(reaction);
- if (this._s) notify(this, false);
- return reaction.promise;
- },
- 'catch': function _catch(onRejected) {
- return this.then(undefined, onRejected);
+ then.call(value, bind(internalResolve, promise, wrapper, state), bind(internalReject, promise, wrapper, state));
+ } catch (error) {
+ internalReject(promise, wrapper, error, state);
}
+ });
+ } else {
+ state.value = value;
+ state.state = FULFILLED;
+ notify(promise, state, false);
+ }
+ } catch (error) {
+ internalReject(promise, { done: false }, error, state);
+ }
+};
+if (FORCED) {
+ PromiseConstructor = function Promise(executor) {
+ anInstance(this, PromiseConstructor, PROMISE);
+ aFunction(executor);
+ Internal.call(this);
+ var state = getInternalState(this);
+ try {
+ executor(bind(internalResolve, this, state), bind(internalReject, this, state));
+ } catch (error) {
+ internalReject(this, state, error);
+ }
+ };
+ Internal = function Promise(executor) {
+ setInternalState(this, {
+ type: PROMISE,
+ done: false,
+ notified: false,
+ parent: false,
+ reactions: [],
+ rejection: false,
+ state: PENDING,
+ value: undefined
});
-
- OwnPromiseCapability = function OwnPromiseCapability() {
- var promise = new Internal();
- this.promise = promise;
- this.resolve = ctx($resolve, promise, 1);
- this.reject = ctx($reject, promise, 1);
- };
-
- newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {
- return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
- };
+ };
+ Internal.prototype = redefineAll(PromiseConstructor.prototype, {
+ then: function then(onFulfilled, onRejected) {
+ var state = getInternalPromiseState(this);
+ var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
+ reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
+ reaction.fail = typeof onRejected == 'function' && onRejected;
+ reaction.domain = IS_NODE ? process.domain : undefined;
+ state.parent = true;
+ state.reactions.push(reaction);
+ if (state.state != PENDING)
+ notify(this, state, false);
+ return reaction.promise;
+ },
+ 'catch': function (onRejected) {
+ return this.then(undefined, onRejected);
+ }
+ });
+ OwnPromiseCapability = function () {
+ var promise = new Internal();
+ var state = getInternalState(promise);
+ this.promise = promise;
+ this.resolve = bind(internalResolve, promise, state);
+ this.reject = bind(internalReject, promise, state);
+ };
+ newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
+ return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
+ };
+ if (!IS_PURE && typeof NativePromise == 'function') {
+ nativeThen = NativePromise.prototype.then;
+ redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {
+ var that = this;
+ return new PromiseConstructor(function (resolve, reject) {
+ nativeThen.call(that, resolve, reject);
+ }).then(onFulfilled, onRejected);
+ });
+ if (typeof $fetch == 'function')
+ $({
+ global: true,
+ enumerable: true,
+ forced: true
+ }, {
+ fetch: function fetch(input) {
+ return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));
+ }
+ });
+ }
}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, {
- Promise: $Promise
-});
-
-__w_pdfjs_require__(64)($Promise, PROMISE);
-
-__w_pdfjs_require__(103)(PROMISE);
-
-Wrapper = __w_pdfjs_require__(14)[PROMISE];
-$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
- reject: function reject(r) {
- var capability = newPromiseCapability(this);
- var $$reject = capability.reject;
- $$reject(r);
- return capability.promise;
- }
+$({
+ global: true,
+ wrap: true,
+ forced: FORCED
+}, { Promise: PromiseConstructor });
+setToStringTag(PromiseConstructor, PROMISE, false, true);
+setSpecies(PROMISE);
+PromiseWrapper = path[PROMISE];
+$({
+ target: PROMISE,
+ stat: true,
+ forced: FORCED
+}, {
+ reject: function reject(r) {
+ var capability = newPromiseCapability(this);
+ capability.reject.call(undefined, r);
+ return capability.promise;
+ }
});
-$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
- resolve: function resolve(x) {
- return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
- }
+$({
+ target: PROMISE,
+ stat: true,
+ forced: IS_PURE || FORCED
+}, {
+ resolve: function resolve(x) {
+ return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);
+ }
});
-$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(73)(function (iter) {
- $Promise.all(iter)['catch'](empty);
-})), PROMISE, {
- all: function all(iterable) {
- var C = this;
- var capability = newPromiseCapability(C);
- var resolve = capability.resolve;
- var reject = capability.reject;
- var result = perform(function () {
- var values = [];
- var index = 0;
- var remaining = 1;
- forOf(iterable, false, function (promise) {
- var $index = index++;
- var alreadyCalled = false;
- values.push(undefined);
- remaining++;
- C.resolve(promise).then(function (value) {
- if (alreadyCalled) return;
- alreadyCalled = true;
- values[$index] = value;
- --remaining || resolve(values);
- }, reject);
- });
- --remaining || resolve(values);
- });
- if (result.e) reject(result.v);
- return capability.promise;
- },
- race: function race(iterable) {
- var C = this;
- var capability = newPromiseCapability(C);
- var reject = capability.reject;
- var result = perform(function () {
- forOf(iterable, false, function (promise) {
- C.resolve(promise).then(capability.resolve, reject);
- });
- });
- if (result.e) reject(result.v);
- return capability.promise;
- }
+$({
+ target: PROMISE,
+ stat: true,
+ forced: INCORRECT_ITERATION
+}, {
+ all: function all(iterable) {
+ var C = this;
+ var capability = newPromiseCapability(C);
+ var resolve = capability.resolve;
+ var reject = capability.reject;
+ var result = perform(function () {
+ var $promiseResolve = aFunction(C.resolve);
+ var values = [];
+ var counter = 0;
+ var remaining = 1;
+ iterate(iterable, function (promise) {
+ var index = counter++;
+ var alreadyCalled = false;
+ values.push(undefined);
+ remaining++;
+ $promiseResolve.call(C, promise).then(function (value) {
+ if (alreadyCalled)
+ return;
+ alreadyCalled = true;
+ values[index] = value;
+ --remaining || resolve(values);
+ }, reject);
+ });
+ --remaining || resolve(values);
+ });
+ if (result.error)
+ reject(result.value);
+ return capability.promise;
+ },
+ race: function race(iterable) {
+ var C = this;
+ var capability = newPromiseCapability(C);
+ var reject = capability.reject;
+ var result = perform(function () {
+ var $promiseResolve = aFunction(C.resolve);
+ iterate(iterable, function (promise) {
+ $promiseResolve.call(C, promise).then(capability.resolve, reject);
+ });
+ });
+ if (result.error)
+ reject(result.value);
+ return capability.promise;
+ }
});
/***/ }),
-/* 92 */
+/* 110 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
+var global = __w_pdfjs_require__(12);
+module.exports = global.Promise;
-module.exports = function (it, Constructor, name, forbiddenField) {
- if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {
- throw TypeError(name + ': incorrect invocation!');
- }
+/***/ }),
+/* 111 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
- return it;
+var redefine = __w_pdfjs_require__(30);
+module.exports = function (target, src, options) {
+ for (var key in src)
+ redefine(target, key, src[key], options);
+ return target;
};
/***/ }),
-/* 93 */
+/* 112 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
+var getBuiltIn = __w_pdfjs_require__(42);
+var definePropertyModule = __w_pdfjs_require__(28);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var SPECIES = wellKnownSymbol('species');
+module.exports = function (CONSTRUCTOR_NAME) {
+ var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
+ var defineProperty = definePropertyModule.f;
+ if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
+ defineProperty(Constructor, SPECIES, {
+ configurable: true,
+ get: function () {
+ return this;
+ }
+ });
+ }
+};
-var ctx = __w_pdfjs_require__(28);
-
-var call = __w_pdfjs_require__(68);
-
-var isArrayIter = __w_pdfjs_require__(69);
-
-var anObject = __w_pdfjs_require__(17);
-
-var toLength = __w_pdfjs_require__(30);
+/***/ }),
+/* 113 */
+/***/ (function(module, exports) {
-var getIterFn = __w_pdfjs_require__(71);
+module.exports = function (it, Constructor, name) {
+ if (!(it instanceof Constructor)) {
+ throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
+ }
+ return it;
+};
-var BREAK = {};
-var RETURN = {};
+/***/ }),
+/* 114 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
- var iterFn = ITERATOR ? function () {
- return iterable;
- } : getIterFn(iterable);
- var f = ctx(fn, that, entries ? 2 : 1);
- var index = 0;
- var length, step, iterator, result;
- if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
- if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
- result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if (result === BREAK || result === RETURN) return result;
- } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
- result = call(iterator, f, step.value, entries);
- if (result === BREAK || result === RETURN) return result;
+var anObject = __w_pdfjs_require__(29);
+var isArrayIteratorMethod = __w_pdfjs_require__(88);
+var toLength = __w_pdfjs_require__(47);
+var bind = __w_pdfjs_require__(59);
+var getIteratorMethod = __w_pdfjs_require__(90);
+var callWithSafeIterationClosing = __w_pdfjs_require__(87);
+var Result = function (stopped, result) {
+ this.stopped = stopped;
+ this.result = result;
+};
+var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {
+ var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);
+ var iterator, iterFn, index, length, result, step;
+ if (IS_ITERATOR) {
+ iterator = iterable;
+ } else {
+ iterFn = getIteratorMethod(iterable);
+ if (typeof iterFn != 'function')
+ throw TypeError('Target is not iterable');
+ if (isArrayIteratorMethod(iterFn)) {
+ for (index = 0, length = toLength(iterable.length); length > index; index++) {
+ result = AS_ENTRIES ? boundFunction(anObject(step = iterable[index])[0], step[1]) : boundFunction(iterable[index]);
+ if (result && result instanceof Result)
+ return result;
+ }
+ return new Result(false);
}
+ iterator = iterFn.call(iterable);
+ }
+ while (!(step = iterator.next()).done) {
+ result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);
+ if (result && result instanceof Result)
+ return result;
+ }
+ return new Result(false);
+};
+iterate.stop = function (result) {
+ return new Result(true, result);
};
-
-_exports.BREAK = BREAK;
-_exports.RETURN = RETURN;
/***/ }),
-/* 94 */
+/* 115 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var anObject = __w_pdfjs_require__(17);
-
-var aFunction = __w_pdfjs_require__(29);
-
-var SPECIES = __w_pdfjs_require__(35)('species');
-
-module.exports = function (O, D) {
- var C = anObject(O).constructor;
- var S;
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
+var anObject = __w_pdfjs_require__(29);
+var aFunction = __w_pdfjs_require__(60);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var SPECIES = wellKnownSymbol('species');
+module.exports = function (O, defaultConstructor) {
+ var C = anObject(O).constructor;
+ var S;
+ return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);
};
/***/ }),
-/* 95 */
+/* 116 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var ctx = __w_pdfjs_require__(28);
-
-var invoke = __w_pdfjs_require__(96);
-
-var html = __w_pdfjs_require__(63);
-
-var cel = __w_pdfjs_require__(22);
-
-var global = __w_pdfjs_require__(13);
-
+var global = __w_pdfjs_require__(12);
+var fails = __w_pdfjs_require__(15);
+var classof = __w_pdfjs_require__(20);
+var bind = __w_pdfjs_require__(59);
+var html = __w_pdfjs_require__(71);
+var createElement = __w_pdfjs_require__(26);
+var location = global.location;
+var set = global.setImmediate;
+var clear = global.clearImmediate;
var process = global.process;
-var setTask = global.setImmediate;
-var clearTask = global.clearImmediate;
var MessageChannel = global.MessageChannel;
var Dispatch = global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;
-
-var run = function run() {
- var id = +this;
-
- if (queue.hasOwnProperty(id)) {
- var fn = queue[id];
- delete queue[id];
- fn();
- }
+var run = function (id) {
+ if (queue.hasOwnProperty(id)) {
+ var fn = queue[id];
+ delete queue[id];
+ fn();
+ }
};
-
-var listener = function listener(event) {
- run.call(event.data);
+var runner = function (id) {
+ return function () {
+ run(id);
+ };
};
-
-if (!setTask || !clearTask) {
- setTask = function setImmediate(fn) {
- var args = [];
- var i = 1;
-
- while (arguments.length > i) {
- args.push(arguments[i++]);
- }
-
- queue[++counter] = function () {
- invoke(typeof fn == 'function' ? fn : Function(fn), args);
- };
-
- defer(counter);
- return counter;
+var listener = function (event) {
+ run(event.data);
+};
+var post = function (id) {
+ global.postMessage(id + '', location.protocol + '//' + location.host);
+};
+if (!set || !clear) {
+ set = function setImmediate(fn) {
+ var args = [];
+ var i = 1;
+ while (arguments.length > i)
+ args.push(arguments[i++]);
+ queue[++counter] = function () {
+ (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);
};
-
- clearTask = function clearImmediate(id) {
- delete queue[id];
+ defer(counter);
+ return counter;
+ };
+ clear = function clearImmediate(id) {
+ delete queue[id];
+ };
+ if (classof(process) == 'process') {
+ defer = function (id) {
+ process.nextTick(runner(id));
};
-
- if (__w_pdfjs_require__(34)(process) == 'process') {
- defer = function defer(id) {
- process.nextTick(ctx(run, id, 1));
- };
- } else if (Dispatch && Dispatch.now) {
- defer = function defer(id) {
- Dispatch.now(ctx(run, id, 1));
- };
- } else if (MessageChannel) {
- channel = new MessageChannel();
- port = channel.port2;
- channel.port1.onmessage = listener;
- defer = ctx(port.postMessage, port, 1);
- } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
- defer = function defer(id) {
- global.postMessage(id + '', '*');
- };
-
- global.addEventListener('message', listener, false);
- } else if (ONREADYSTATECHANGE in cel('script')) {
- defer = function defer(id) {
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
- html.removeChild(this);
- run.call(id);
- };
- };
- } else {
- defer = function defer(id) {
- setTimeout(ctx(run, id, 1), 0);
- };
- }
+ } else if (Dispatch && Dispatch.now) {
+ defer = function (id) {
+ Dispatch.now(runner(id));
+ };
+ } else if (MessageChannel) {
+ channel = new MessageChannel();
+ port = channel.port2;
+ channel.port1.onmessage = listener;
+ defer = bind(port.postMessage, port, 1);
+ } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {
+ defer = post;
+ global.addEventListener('message', listener, false);
+ } else if (ONREADYSTATECHANGE in createElement('script')) {
+ defer = function (id) {
+ html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
+ html.removeChild(this);
+ run(id);
+ };
+ };
+ } else {
+ defer = function (id) {
+ setTimeout(runner(id), 0);
+ };
+ }
}
-
module.exports = {
- set: setTask,
- clear: clearTask
+ set: set,
+ clear: clear
};
/***/ }),
-/* 96 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-module.exports = function (fn, args, that) {
- var un = that === undefined;
-
- switch (args.length) {
- case 0:
- return un ? fn() : fn.call(that);
-
- case 1:
- return un ? fn(args[0]) : fn.call(that, args[0]);
-
- case 2:
- return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);
-
- case 3:
- return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);
-
- case 4:
- return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);
- }
-
- return fn.apply(that, args);
-};
-
-/***/ }),
-/* 97 */
+/* 117 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var global = __w_pdfjs_require__(13);
-
-var macrotask = __w_pdfjs_require__(95).set;
-
-var Observer = global.MutationObserver || global.WebKitMutationObserver;
+var global = __w_pdfjs_require__(12);
+var getOwnPropertyDescriptor = __w_pdfjs_require__(13).f;
+var classof = __w_pdfjs_require__(20);
+var macrotask = __w_pdfjs_require__(116).set;
+var userAgent = __w_pdfjs_require__(118);
+var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
var process = global.process;
var Promise = global.Promise;
-var isNode = __w_pdfjs_require__(34)(process) == 'process';
-
-module.exports = function () {
- var head, last, notify;
-
- var flush = function flush() {
- var parent, fn;
- if (isNode && (parent = process.domain)) parent.exit();
-
- while (head) {
- fn = head.fn;
- head = head.next;
-
- try {
- fn();
- } catch (e) {
- if (head) notify();else last = undefined;
- throw e;
- }
- }
-
- last = undefined;
- if (parent) parent.enter();
- };
-
- if (isNode) {
- notify = function notify() {
- process.nextTick(flush);
- };
- } else if (Observer && !(global.navigator && global.navigator.standalone)) {
- var toggle = true;
- var node = document.createTextNode('');
- new Observer(flush).observe(node, {
- characterData: true
- });
-
- notify = function notify() {
- node.data = toggle = !toggle;
- };
- } else if (Promise && Promise.resolve) {
- var promise = Promise.resolve(undefined);
-
- notify = function notify() {
- promise.then(flush);
- };
- } else {
- notify = function notify() {
- macrotask.call(global, flush);
- };
+var IS_NODE = classof(process) == 'process';
+var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
+var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;
+var flush, head, last, notify, toggle, node, promise, then;
+if (!queueMicrotask) {
+ flush = function () {
+ var parent, fn;
+ if (IS_NODE && (parent = process.domain))
+ parent.exit();
+ while (head) {
+ fn = head.fn;
+ head = head.next;
+ try {
+ fn();
+ } catch (error) {
+ if (head)
+ notify();
+ else
+ last = undefined;
+ throw error;
+ }
}
-
- return function (fn) {
- var task = {
- fn: fn,
- next: undefined
- };
- if (last) last.next = task;
-
- if (!head) {
- head = task;
- notify();
- }
-
- last = task;
+ last = undefined;
+ if (parent)
+ parent.enter();
+ };
+ if (IS_NODE) {
+ notify = function () {
+ process.nextTick(flush);
};
-};
-
-/***/ }),
-/* 98 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-var aFunction = __w_pdfjs_require__(29);
-
-function PromiseCapability(C) {
- var resolve, reject;
- this.promise = new C(function ($$resolve, $$reject) {
- if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
- resolve = $$resolve;
- reject = $$reject;
- });
- this.resolve = aFunction(resolve);
- this.reject = aFunction(reject);
+ } else if (MutationObserver && !/(iphone|ipod|ipad).*applewebkit/i.test(userAgent)) {
+ toggle = true;
+ node = document.createTextNode('');
+ new MutationObserver(flush).observe(node, { characterData: true });
+ notify = function () {
+ node.data = toggle = !toggle;
+ };
+ } else if (Promise && Promise.resolve) {
+ promise = Promise.resolve(undefined);
+ then = promise.then;
+ notify = function () {
+ then.call(promise, flush);
+ };
+ } else {
+ notify = function () {
+ macrotask.call(global, flush);
+ };
+ }
}
-
-module.exports.f = function (C) {
- return new PromiseCapability(C);
-};
-
-/***/ }),
-/* 99 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-module.exports = function (exec) {
- try {
- return {
- e: false,
- v: exec()
- };
- } catch (e) {
- return {
- e: true,
- v: e
- };
- }
+module.exports = queueMicrotask || function (fn) {
+ var task = {
+ fn: fn,
+ next: undefined
+ };
+ if (last)
+ last.next = task;
+ if (!head) {
+ head = task;
+ notify();
+ }
+ last = task;
};
/***/ }),
-/* 100 */
+/* 118 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var global = __w_pdfjs_require__(13);
-
-var navigator = global.navigator;
-module.exports = navigator && navigator.userAgent || '';
+var getBuiltIn = __w_pdfjs_require__(42);
+module.exports = getBuiltIn('navigator', 'userAgent') || '';
/***/ }),
-/* 101 */
+/* 119 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var anObject = __w_pdfjs_require__(17);
-
-var isObject = __w_pdfjs_require__(18);
-
-var newPromiseCapability = __w_pdfjs_require__(98);
-
+var anObject = __w_pdfjs_require__(29);
+var isObject = __w_pdfjs_require__(23);
+var newPromiseCapability = __w_pdfjs_require__(120);
module.exports = function (C, x) {
- anObject(C);
- if (isObject(x) && x.constructor === C) return x;
- var promiseCapability = newPromiseCapability.f(C);
- var resolve = promiseCapability.resolve;
- resolve(x);
- return promiseCapability.promise;
+ anObject(C);
+ if (isObject(x) && x.constructor === C)
+ return x;
+ var promiseCapability = newPromiseCapability.f(C);
+ var resolve = promiseCapability.resolve;
+ resolve(x);
+ return promiseCapability.promise;
};
/***/ }),
-/* 102 */
+/* 120 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var redefine = __w_pdfjs_require__(25);
-
-module.exports = function (target, src, safe) {
- for (var key in src) {
- redefine(target, key, src[key], safe);
- }
-
- return target;
+var aFunction = __w_pdfjs_require__(60);
+var PromiseCapability = function (C) {
+ var resolve, reject;
+ this.promise = new C(function ($$resolve, $$reject) {
+ if (resolve !== undefined || reject !== undefined)
+ throw TypeError('Bad Promise constructor');
+ resolve = $$resolve;
+ reject = $$reject;
+ });
+ this.resolve = aFunction(resolve);
+ this.reject = aFunction(reject);
+};
+module.exports.f = function (C) {
+ return new PromiseCapability(C);
};
/***/ }),
-/* 103 */
+/* 121 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var global = __w_pdfjs_require__(13);
-
-var dP = __w_pdfjs_require__(16);
-
-var DESCRIPTORS = __w_pdfjs_require__(20);
+var global = __w_pdfjs_require__(12);
+module.exports = function (a, b) {
+ var console = global.console;
+ if (console && console.error) {
+ arguments.length === 1 ? console.error(a) : console.error(a, b);
+ }
+};
-var SPECIES = __w_pdfjs_require__(35)('species');
+/***/ }),
+/* 122 */
+/***/ (function(module, exports) {
-module.exports = function (KEY) {
- var C = global[KEY];
- if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
- configurable: true,
- get: function get() {
- return this;
- }
- });
+module.exports = function (exec) {
+ try {
+ return {
+ error: false,
+ value: exec()
+ };
+ } catch (error) {
+ return {
+ error: true,
+ value: error
+ };
+ }
};
/***/ }),
-/* 104 */
+/* 123 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var $export = __w_pdfjs_require__(12);
-
-var core = __w_pdfjs_require__(14);
-
-var global = __w_pdfjs_require__(13);
-
-var speciesConstructor = __w_pdfjs_require__(94);
-
-var promiseResolve = __w_pdfjs_require__(101);
-
-$export($export.P + $export.R, 'Promise', {
- 'finally': function _finally(onFinally) {
- var C = speciesConstructor(this, core.Promise || global.Promise);
- var isFunction = typeof onFinally == 'function';
- return this.then(isFunction ? function (x) {
- return promiseResolve(C, onFinally()).then(function () {
- return x;
- });
- } : onFinally, isFunction ? function (e) {
- return promiseResolve(C, onFinally()).then(function () {
- throw e;
- });
- } : onFinally);
- }
+var $ = __w_pdfjs_require__(11);
+var aFunction = __w_pdfjs_require__(60);
+var newPromiseCapabilityModule = __w_pdfjs_require__(120);
+var perform = __w_pdfjs_require__(122);
+var iterate = __w_pdfjs_require__(114);
+$({
+ target: 'Promise',
+ stat: true
+}, {
+ allSettled: function allSettled(iterable) {
+ var C = this;
+ var capability = newPromiseCapabilityModule.f(C);
+ var resolve = capability.resolve;
+ var reject = capability.reject;
+ var result = perform(function () {
+ var promiseResolve = aFunction(C.resolve);
+ var values = [];
+ var counter = 0;
+ var remaining = 1;
+ iterate(iterable, function (promise) {
+ var index = counter++;
+ var alreadyCalled = false;
+ values.push(undefined);
+ remaining++;
+ promiseResolve.call(C, promise).then(function (value) {
+ if (alreadyCalled)
+ return;
+ alreadyCalled = true;
+ values[index] = {
+ status: 'fulfilled',
+ value: value
+ };
+ --remaining || resolve(values);
+ }, function (e) {
+ if (alreadyCalled)
+ return;
+ alreadyCalled = true;
+ values[index] = {
+ status: 'rejected',
+ reason: e
+ };
+ --remaining || resolve(values);
+ });
+ });
+ --remaining || resolve(values);
+ });
+ if (result.error)
+ reject(result.value);
+ return capability.promise;
+ }
});
/***/ }),
-/* 105 */
+/* 124 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var $export = __w_pdfjs_require__(12);
-
-var newPromiseCapability = __w_pdfjs_require__(98);
-
-var perform = __w_pdfjs_require__(99);
-
-$export($export.S, 'Promise', {
- 'try': function _try(callbackfn) {
- var promiseCapability = newPromiseCapability.f(this);
- var result = perform(callbackfn);
- (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
- return promiseCapability.promise;
- }
+var $ = __w_pdfjs_require__(11);
+var IS_PURE = __w_pdfjs_require__(33);
+var NativePromise = __w_pdfjs_require__(110);
+var getBuiltIn = __w_pdfjs_require__(42);
+var speciesConstructor = __w_pdfjs_require__(115);
+var promiseResolve = __w_pdfjs_require__(119);
+var redefine = __w_pdfjs_require__(30);
+$({
+ target: 'Promise',
+ proto: true,
+ real: true
+}, {
+ 'finally': function (onFinally) {
+ var C = speciesConstructor(this, getBuiltIn('Promise'));
+ var isFunction = typeof onFinally == 'function';
+ return this.then(isFunction ? function (x) {
+ return promiseResolve(C, onFinally()).then(function () {
+ return x;
+ });
+ } : onFinally, isFunction ? function (e) {
+ return promiseResolve(C, onFinally()).then(function () {
+ throw e;
+ });
+ } : onFinally);
+ }
});
+if (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {
+ redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);
+}
/***/ }),
-/* 106 */
+/* 125 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(87);
-
-__w_pdfjs_require__(88);
-
-__w_pdfjs_require__(107);
-
-__w_pdfjs_require__(119);
-
-__w_pdfjs_require__(121);
-
-module.exports = __w_pdfjs_require__(14).WeakMap;
+__w_pdfjs_require__(126);
+__w_pdfjs_require__(131);
+__w_pdfjs_require__(129);
+var path = __w_pdfjs_require__(43);
+module.exports = path.URL;
/***/ }),
-/* 107 */
+/* 126 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var each = __w_pdfjs_require__(108)(0);
-
-var redefine = __w_pdfjs_require__(25);
-
-var meta = __w_pdfjs_require__(112);
-
-var assign = __w_pdfjs_require__(76);
-
-var weak = __w_pdfjs_require__(113);
-
-var isObject = __w_pdfjs_require__(18);
-
-var fails = __w_pdfjs_require__(21);
-
-var validate = __w_pdfjs_require__(114);
-
-var WEAK_MAP = 'WeakMap';
-var getWeak = meta.getWeak;
-var isExtensible = Object.isExtensible;
-var uncaughtFrozenStore = weak.ufstore;
-var tmp = {};
-var InternalMap;
-
-var wrapper = function wrapper(get) {
- return function WeakMap() {
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
+__w_pdfjs_require__(73);
+var $ = __w_pdfjs_require__(11);
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var USE_NATIVE_URL = __w_pdfjs_require__(127);
+var global = __w_pdfjs_require__(12);
+var defineProperties = __w_pdfjs_require__(69);
+var redefine = __w_pdfjs_require__(30);
+var anInstance = __w_pdfjs_require__(113);
+var has = __w_pdfjs_require__(24);
+var assign = __w_pdfjs_require__(95);
+var arrayFrom = __w_pdfjs_require__(86);
+var codeAt = __w_pdfjs_require__(74).codeAt;
+var toASCII = __w_pdfjs_require__(128);
+var setToStringTag = __w_pdfjs_require__(81);
+var URLSearchParamsModule = __w_pdfjs_require__(129);
+var InternalStateModule = __w_pdfjs_require__(35);
+var NativeURL = global.URL;
+var URLSearchParams = URLSearchParamsModule.URLSearchParams;
+var getInternalSearchParamsState = URLSearchParamsModule.getState;
+var setInternalState = InternalStateModule.set;
+var getInternalURLState = InternalStateModule.getterFor('URL');
+var floor = Math.floor;
+var pow = Math.pow;
+var INVALID_AUTHORITY = 'Invalid authority';
+var INVALID_SCHEME = 'Invalid scheme';
+var INVALID_HOST = 'Invalid host';
+var INVALID_PORT = 'Invalid port';
+var ALPHA = /[A-Za-z]/;
+var ALPHANUMERIC = /[\d+\-.A-Za-z]/;
+var DIGIT = /\d/;
+var HEX_START = /^(0x|0X)/;
+var OCT = /^[0-7]+$/;
+var DEC = /^\d+$/;
+var HEX = /^[\dA-Fa-f]+$/;
+var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/;
+var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/;
+var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g;
+var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g;
+var EOF;
+var parseHost = function (url, input) {
+ var result, codePoints, index;
+ if (input.charAt(0) == '[') {
+ if (input.charAt(input.length - 1) != ']')
+ return INVALID_HOST;
+ result = parseIPv6(input.slice(1, -1));
+ if (!result)
+ return INVALID_HOST;
+ url.host = result;
+ } else if (!isSpecial(url)) {
+ if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input))
+ return INVALID_HOST;
+ result = '';
+ codePoints = arrayFrom(input);
+ for (index = 0; index < codePoints.length; index++) {
+ result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);
+ }
+ url.host = result;
+ } else {
+ input = toASCII(input);
+ if (FORBIDDEN_HOST_CODE_POINT.test(input))
+ return INVALID_HOST;
+ result = parseIPv4(input);
+ if (result === null)
+ return INVALID_HOST;
+ url.host = result;
+ }
};
-
-var methods = {
- get: function get(key) {
- if (isObject(key)) {
- var data = getWeak(key);
- if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
- return data ? data[this._i] : undefined;
+var parseIPv4 = function (input) {
+ var parts = input.split('.');
+ var partsLength, numbers, index, part, radix, number, ipv4;
+ if (parts.length && parts[parts.length - 1] == '') {
+ parts.pop();
+ }
+ partsLength = parts.length;
+ if (partsLength > 4)
+ return input;
+ numbers = [];
+ for (index = 0; index < partsLength; index++) {
+ part = parts[index];
+ if (part == '')
+ return input;
+ radix = 10;
+ if (part.length > 1 && part.charAt(0) == '0') {
+ radix = HEX_START.test(part) ? 16 : 8;
+ part = part.slice(radix == 8 ? 1 : 2);
+ }
+ if (part === '') {
+ number = 0;
+ } else {
+ if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part))
+ return input;
+ number = parseInt(part, radix);
+ }
+ numbers.push(number);
+ }
+ for (index = 0; index < partsLength; index++) {
+ number = numbers[index];
+ if (index == partsLength - 1) {
+ if (number >= pow(256, 5 - partsLength))
+ return null;
+ } else if (number > 255)
+ return null;
+ }
+ ipv4 = numbers.pop();
+ for (index = 0; index < numbers.length; index++) {
+ ipv4 += numbers[index] * pow(256, 3 - index);
+ }
+ return ipv4;
+};
+var parseIPv6 = function (input) {
+ var address = [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ];
+ var pieceIndex = 0;
+ var compress = null;
+ var pointer = 0;
+ var value, length, numbersSeen, ipv4Piece, number, swaps, swap;
+ var char = function () {
+ return input.charAt(pointer);
+ };
+ if (char() == ':') {
+ if (input.charAt(1) != ':')
+ return;
+ pointer += 2;
+ pieceIndex++;
+ compress = pieceIndex;
+ }
+ while (char()) {
+ if (pieceIndex == 8)
+ return;
+ if (char() == ':') {
+ if (compress !== null)
+ return;
+ pointer++;
+ pieceIndex++;
+ compress = pieceIndex;
+ continue;
+ }
+ value = length = 0;
+ while (length < 4 && HEX.test(char())) {
+ value = value * 16 + parseInt(char(), 16);
+ pointer++;
+ length++;
+ }
+ if (char() == '.') {
+ if (length == 0)
+ return;
+ pointer -= length;
+ if (pieceIndex > 6)
+ return;
+ numbersSeen = 0;
+ while (char()) {
+ ipv4Piece = null;
+ if (numbersSeen > 0) {
+ if (char() == '.' && numbersSeen < 4)
+ pointer++;
+ else
+ return;
}
- },
- set: function set(key, value) {
- return weak.def(validate(this, WEAK_MAP), key, value);
+ if (!DIGIT.test(char()))
+ return;
+ while (DIGIT.test(char())) {
+ number = parseInt(char(), 10);
+ if (ipv4Piece === null)
+ ipv4Piece = number;
+ else if (ipv4Piece == 0)
+ return;
+ else
+ ipv4Piece = ipv4Piece * 10 + number;
+ if (ipv4Piece > 255)
+ return;
+ pointer++;
+ }
+ address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;
+ numbersSeen++;
+ if (numbersSeen == 2 || numbersSeen == 4)
+ pieceIndex++;
+ }
+ if (numbersSeen != 4)
+ return;
+ break;
+ } else if (char() == ':') {
+ pointer++;
+ if (!char())
+ return;
+ } else if (char())
+ return;
+ address[pieceIndex++] = value;
+ }
+ if (compress !== null) {
+ swaps = pieceIndex - compress;
+ pieceIndex = 7;
+ while (pieceIndex != 0 && swaps > 0) {
+ swap = address[pieceIndex];
+ address[pieceIndex--] = address[compress + swaps - 1];
+ address[compress + --swaps] = swap;
+ }
+ } else if (pieceIndex != 8)
+ return;
+ return address;
+};
+var findLongestZeroSequence = function (ipv6) {
+ var maxIndex = null;
+ var maxLength = 1;
+ var currStart = null;
+ var currLength = 0;
+ var index = 0;
+ for (; index < 8; index++) {
+ if (ipv6[index] !== 0) {
+ if (currLength > maxLength) {
+ maxIndex = currStart;
+ maxLength = currLength;
+ }
+ currStart = null;
+ currLength = 0;
+ } else {
+ if (currStart === null)
+ currStart = index;
+ ++currLength;
}
+ }
+ if (currLength > maxLength) {
+ maxIndex = currStart;
+ maxLength = currLength;
+ }
+ return maxIndex;
};
-
-var $WeakMap = module.exports = __w_pdfjs_require__(115)(WEAK_MAP, wrapper, methods, weak, true, true);
-
-if (fails(function () {
- return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7;
-})) {
- InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
- assign(InternalMap.prototype, methods);
- meta.NEED = true;
- each(['delete', 'has', 'get', 'set'], function (key) {
- var proto = $WeakMap.prototype;
- var method = proto[key];
- redefine(proto, key, function (a, b) {
- if (isObject(a) && !isExtensible(a)) {
- if (!this._f) this._f = new InternalMap();
-
- var result = this._f[key](a, b);
-
- return key == 'set' ? this : result;
- }
-
- return method.call(this, a, b);
- });
+var serializeHost = function (host) {
+ var result, index, compress, ignore0;
+ if (typeof host == 'number') {
+ result = [];
+ for (index = 0; index < 4; index++) {
+ result.unshift(host % 256);
+ host = floor(host / 256);
+ }
+ return result.join('.');
+ } else if (typeof host == 'object') {
+ result = '';
+ compress = findLongestZeroSequence(host);
+ for (index = 0; index < 8; index++) {
+ if (ignore0 && host[index] === 0)
+ continue;
+ if (ignore0)
+ ignore0 = false;
+ if (compress === index) {
+ result += index ? ':' : '::';
+ ignore0 = true;
+ } else {
+ result += host[index].toString(16);
+ if (index < 7)
+ result += ':';
+ }
+ }
+ return '[' + result + ']';
+ }
+ return host;
+};
+var C0ControlPercentEncodeSet = {};
+var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {
+ ' ': 1,
+ '"': 1,
+ '<': 1,
+ '>': 1,
+ '`': 1
+});
+var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {
+ '#': 1,
+ '?': 1,
+ '{': 1,
+ '}': 1
+});
+var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {
+ '/': 1,
+ ':': 1,
+ ';': 1,
+ '=': 1,
+ '@': 1,
+ '[': 1,
+ '\\': 1,
+ ']': 1,
+ '^': 1,
+ '|': 1
+});
+var percentEncode = function (char, set) {
+ var code = codeAt(char, 0);
+ return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);
+};
+var specialSchemes = {
+ ftp: 21,
+ file: null,
+ gopher: 70,
+ http: 80,
+ https: 443,
+ ws: 80,
+ wss: 443
+};
+var isSpecial = function (url) {
+ return has(specialSchemes, url.scheme);
+};
+var includesCredentials = function (url) {
+ return url.username != '' || url.password != '';
+};
+var cannotHaveUsernamePasswordPort = function (url) {
+ return !url.host || url.cannotBeABaseURL || url.scheme == 'file';
+};
+var isWindowsDriveLetter = function (string, normalized) {
+ var second;
+ return string.length == 2 && ALPHA.test(string.charAt(0)) && ((second = string.charAt(1)) == ':' || !normalized && second == '|');
+};
+var startsWithWindowsDriveLetter = function (string) {
+ var third;
+ return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (string.length == 2 || ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#'));
+};
+var shortenURLsPath = function (url) {
+ var path = url.path;
+ var pathSize = path.length;
+ if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {
+ path.pop();
+ }
+};
+var isSingleDot = function (segment) {
+ return segment === '.' || segment.toLowerCase() === '%2e';
+};
+var isDoubleDot = function (segment) {
+ segment = segment.toLowerCase();
+ return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';
+};
+var SCHEME_START = {};
+var SCHEME = {};
+var NO_SCHEME = {};
+var SPECIAL_RELATIVE_OR_AUTHORITY = {};
+var PATH_OR_AUTHORITY = {};
+var RELATIVE = {};
+var RELATIVE_SLASH = {};
+var SPECIAL_AUTHORITY_SLASHES = {};
+var SPECIAL_AUTHORITY_IGNORE_SLASHES = {};
+var AUTHORITY = {};
+var HOST = {};
+var HOSTNAME = {};
+var PORT = {};
+var FILE = {};
+var FILE_SLASH = {};
+var FILE_HOST = {};
+var PATH_START = {};
+var PATH = {};
+var CANNOT_BE_A_BASE_URL_PATH = {};
+var QUERY = {};
+var FRAGMENT = {};
+var parseURL = function (url, input, stateOverride, base) {
+ var state = stateOverride || SCHEME_START;
+ var pointer = 0;
+ var buffer = '';
+ var seenAt = false;
+ var seenBracket = false;
+ var seenPasswordToken = false;
+ var codePoints, char, bufferCodePoints, failure;
+ if (!stateOverride) {
+ url.scheme = '';
+ url.username = '';
+ url.password = '';
+ url.host = null;
+ url.port = null;
+ url.path = [];
+ url.query = null;
+ url.fragment = null;
+ url.cannotBeABaseURL = false;
+ input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');
+ }
+ input = input.replace(TAB_AND_NEW_LINE, '');
+ codePoints = arrayFrom(input);
+ while (pointer <= codePoints.length) {
+ char = codePoints[pointer];
+ switch (state) {
+ case SCHEME_START:
+ if (char && ALPHA.test(char)) {
+ buffer += char.toLowerCase();
+ state = SCHEME;
+ } else if (!stateOverride) {
+ state = NO_SCHEME;
+ continue;
+ } else
+ return INVALID_SCHEME;
+ break;
+ case SCHEME:
+ if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {
+ buffer += char.toLowerCase();
+ } else if (char == ':') {
+ if (stateOverride && (isSpecial(url) != has(specialSchemes, buffer) || buffer == 'file' && (includesCredentials(url) || url.port !== null) || url.scheme == 'file' && !url.host))
+ return;
+ url.scheme = buffer;
+ if (stateOverride) {
+ if (isSpecial(url) && specialSchemes[url.scheme] == url.port)
+ url.port = null;
+ return;
+ }
+ buffer = '';
+ if (url.scheme == 'file') {
+ state = FILE;
+ } else if (isSpecial(url) && base && base.scheme == url.scheme) {
+ state = SPECIAL_RELATIVE_OR_AUTHORITY;
+ } else if (isSpecial(url)) {
+ state = SPECIAL_AUTHORITY_SLASHES;
+ } else if (codePoints[pointer + 1] == '/') {
+ state = PATH_OR_AUTHORITY;
+ pointer++;
+ } else {
+ url.cannotBeABaseURL = true;
+ url.path.push('');
+ state = CANNOT_BE_A_BASE_URL_PATH;
+ }
+ } else if (!stateOverride) {
+ buffer = '';
+ state = NO_SCHEME;
+ pointer = 0;
+ continue;
+ } else
+ return INVALID_SCHEME;
+ break;
+ case NO_SCHEME:
+ if (!base || base.cannotBeABaseURL && char != '#')
+ return INVALID_SCHEME;
+ if (base.cannotBeABaseURL && char == '#') {
+ url.scheme = base.scheme;
+ url.path = base.path.slice();
+ url.query = base.query;
+ url.fragment = '';
+ url.cannotBeABaseURL = true;
+ state = FRAGMENT;
+ break;
+ }
+ state = base.scheme == 'file' ? FILE : RELATIVE;
+ continue;
+ case SPECIAL_RELATIVE_OR_AUTHORITY:
+ if (char == '/' && codePoints[pointer + 1] == '/') {
+ state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
+ pointer++;
+ } else {
+ state = RELATIVE;
+ continue;
+ }
+ break;
+ case PATH_OR_AUTHORITY:
+ if (char == '/') {
+ state = AUTHORITY;
+ break;
+ } else {
+ state = PATH;
+ continue;
+ }
+ case RELATIVE:
+ url.scheme = base.scheme;
+ if (char == EOF) {
+ url.username = base.username;
+ url.password = base.password;
+ url.host = base.host;
+ url.port = base.port;
+ url.path = base.path.slice();
+ url.query = base.query;
+ } else if (char == '/' || char == '\\' && isSpecial(url)) {
+ state = RELATIVE_SLASH;
+ } else if (char == '?') {
+ url.username = base.username;
+ url.password = base.password;
+ url.host = base.host;
+ url.port = base.port;
+ url.path = base.path.slice();
+ url.query = '';
+ state = QUERY;
+ } else if (char == '#') {
+ url.username = base.username;
+ url.password = base.password;
+ url.host = base.host;
+ url.port = base.port;
+ url.path = base.path.slice();
+ url.query = base.query;
+ url.fragment = '';
+ state = FRAGMENT;
+ } else {
+ url.username = base.username;
+ url.password = base.password;
+ url.host = base.host;
+ url.port = base.port;
+ url.path = base.path.slice();
+ url.path.pop();
+ state = PATH;
+ continue;
+ }
+ break;
+ case RELATIVE_SLASH:
+ if (isSpecial(url) && (char == '/' || char == '\\')) {
+ state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
+ } else if (char == '/') {
+ state = AUTHORITY;
+ } else {
+ url.username = base.username;
+ url.password = base.password;
+ url.host = base.host;
+ url.port = base.port;
+ state = PATH;
+ continue;
+ }
+ break;
+ case SPECIAL_AUTHORITY_SLASHES:
+ state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
+ if (char != '/' || buffer.charAt(pointer + 1) != '/')
+ continue;
+ pointer++;
+ break;
+ case SPECIAL_AUTHORITY_IGNORE_SLASHES:
+ if (char != '/' && char != '\\') {
+ state = AUTHORITY;
+ continue;
+ }
+ break;
+ case AUTHORITY:
+ if (char == '@') {
+ if (seenAt)
+ buffer = '%40' + buffer;
+ seenAt = true;
+ bufferCodePoints = arrayFrom(buffer);
+ for (var i = 0; i < bufferCodePoints.length; i++) {
+ var codePoint = bufferCodePoints[i];
+ if (codePoint == ':' && !seenPasswordToken) {
+ seenPasswordToken = true;
+ continue;
+ }
+ var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);
+ if (seenPasswordToken)
+ url.password += encodedCodePoints;
+ else
+ url.username += encodedCodePoints;
+ }
+ buffer = '';
+ } else if (char == EOF || char == '/' || char == '?' || char == '#' || char == '\\' && isSpecial(url)) {
+ if (seenAt && buffer == '')
+ return INVALID_AUTHORITY;
+ pointer -= arrayFrom(buffer).length + 1;
+ buffer = '';
+ state = HOST;
+ } else
+ buffer += char;
+ break;
+ case HOST:
+ case HOSTNAME:
+ if (stateOverride && url.scheme == 'file') {
+ state = FILE_HOST;
+ continue;
+ } else if (char == ':' && !seenBracket) {
+ if (buffer == '')
+ return INVALID_HOST;
+ failure = parseHost(url, buffer);
+ if (failure)
+ return failure;
+ buffer = '';
+ state = PORT;
+ if (stateOverride == HOSTNAME)
+ return;
+ } else if (char == EOF || char == '/' || char == '?' || char == '#' || char == '\\' && isSpecial(url)) {
+ if (isSpecial(url) && buffer == '')
+ return INVALID_HOST;
+ if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null))
+ return;
+ failure = parseHost(url, buffer);
+ if (failure)
+ return failure;
+ buffer = '';
+ state = PATH_START;
+ if (stateOverride)
+ return;
+ continue;
+ } else {
+ if (char == '[')
+ seenBracket = true;
+ else if (char == ']')
+ seenBracket = false;
+ buffer += char;
+ }
+ break;
+ case PORT:
+ if (DIGIT.test(char)) {
+ buffer += char;
+ } else if (char == EOF || char == '/' || char == '?' || char == '#' || char == '\\' && isSpecial(url) || stateOverride) {
+ if (buffer != '') {
+ var port = parseInt(buffer, 10);
+ if (port > 0xFFFF)
+ return INVALID_PORT;
+ url.port = isSpecial(url) && port === specialSchemes[url.scheme] ? null : port;
+ buffer = '';
+ }
+ if (stateOverride)
+ return;
+ state = PATH_START;
+ continue;
+ } else
+ return INVALID_PORT;
+ break;
+ case FILE:
+ url.scheme = 'file';
+ if (char == '/' || char == '\\')
+ state = FILE_SLASH;
+ else if (base && base.scheme == 'file') {
+ if (char == EOF) {
+ url.host = base.host;
+ url.path = base.path.slice();
+ url.query = base.query;
+ } else if (char == '?') {
+ url.host = base.host;
+ url.path = base.path.slice();
+ url.query = '';
+ state = QUERY;
+ } else if (char == '#') {
+ url.host = base.host;
+ url.path = base.path.slice();
+ url.query = base.query;
+ url.fragment = '';
+ state = FRAGMENT;
+ } else {
+ if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
+ url.host = base.host;
+ url.path = base.path.slice();
+ shortenURLsPath(url);
+ }
+ state = PATH;
+ continue;
+ }
+ } else {
+ state = PATH;
+ continue;
+ }
+ break;
+ case FILE_SLASH:
+ if (char == '/' || char == '\\') {
+ state = FILE_HOST;
+ break;
+ }
+ if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
+ if (isWindowsDriveLetter(base.path[0], true))
+ url.path.push(base.path[0]);
+ else
+ url.host = base.host;
+ }
+ state = PATH;
+ continue;
+ case FILE_HOST:
+ if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') {
+ if (!stateOverride && isWindowsDriveLetter(buffer)) {
+ state = PATH;
+ } else if (buffer == '') {
+ url.host = '';
+ if (stateOverride)
+ return;
+ state = PATH_START;
+ } else {
+ failure = parseHost(url, buffer);
+ if (failure)
+ return failure;
+ if (url.host == 'localhost')
+ url.host = '';
+ if (stateOverride)
+ return;
+ buffer = '';
+ state = PATH_START;
+ }
+ continue;
+ } else
+ buffer += char;
+ break;
+ case PATH_START:
+ if (isSpecial(url)) {
+ state = PATH;
+ if (char != '/' && char != '\\')
+ continue;
+ } else if (!stateOverride && char == '?') {
+ url.query = '';
+ state = QUERY;
+ } else if (!stateOverride && char == '#') {
+ url.fragment = '';
+ state = FRAGMENT;
+ } else if (char != EOF) {
+ state = PATH;
+ if (char != '/')
+ continue;
+ }
+ break;
+ case PATH:
+ if (char == EOF || char == '/' || char == '\\' && isSpecial(url) || !stateOverride && (char == '?' || char == '#')) {
+ if (isDoubleDot(buffer)) {
+ shortenURLsPath(url);
+ if (char != '/' && !(char == '\\' && isSpecial(url))) {
+ url.path.push('');
+ }
+ } else if (isSingleDot(buffer)) {
+ if (char != '/' && !(char == '\\' && isSpecial(url))) {
+ url.path.push('');
+ }
+ } else {
+ if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {
+ if (url.host)
+ url.host = '';
+ buffer = buffer.charAt(0) + ':';
+ }
+ url.path.push(buffer);
+ }
+ buffer = '';
+ if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {
+ while (url.path.length > 1 && url.path[0] === '') {
+ url.path.shift();
+ }
+ }
+ if (char == '?') {
+ url.query = '';
+ state = QUERY;
+ } else if (char == '#') {
+ url.fragment = '';
+ state = FRAGMENT;
+ }
+ } else {
+ buffer += percentEncode(char, pathPercentEncodeSet);
+ }
+ break;
+ case CANNOT_BE_A_BASE_URL_PATH:
+ if (char == '?') {
+ url.query = '';
+ state = QUERY;
+ } else if (char == '#') {
+ url.fragment = '';
+ state = FRAGMENT;
+ } else if (char != EOF) {
+ url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);
+ }
+ break;
+ case QUERY:
+ if (!stateOverride && char == '#') {
+ url.fragment = '';
+ state = FRAGMENT;
+ } else if (char != EOF) {
+ if (char == "'" && isSpecial(url))
+ url.query += '%27';
+ else if (char == '#')
+ url.query += '%23';
+ else
+ url.query += percentEncode(char, C0ControlPercentEncodeSet);
+ }
+ break;
+ case FRAGMENT:
+ if (char != EOF)
+ url.fragment += percentEncode(char, fragmentPercentEncodeSet);
+ break;
+ }
+ pointer++;
+ }
+};
+var URLConstructor = function URL(url) {
+ var that = anInstance(this, URLConstructor, 'URL');
+ var base = arguments.length > 1 ? arguments[1] : undefined;
+ var urlString = String(url);
+ var state = setInternalState(that, { type: 'URL' });
+ var baseState, failure;
+ if (base !== undefined) {
+ if (base instanceof URLConstructor)
+ baseState = getInternalURLState(base);
+ else {
+ failure = parseURL(baseState = {}, String(base));
+ if (failure)
+ throw TypeError(failure);
+ }
+ }
+ failure = parseURL(state, urlString, null, baseState);
+ if (failure)
+ throw TypeError(failure);
+ var searchParams = state.searchParams = new URLSearchParams();
+ var searchParamsState = getInternalSearchParamsState(searchParams);
+ searchParamsState.updateSearchParams(state.query);
+ searchParamsState.updateURL = function () {
+ state.query = String(searchParams) || null;
+ };
+ if (!DESCRIPTORS) {
+ that.href = serializeURL.call(that);
+ that.origin = getOrigin.call(that);
+ that.protocol = getProtocol.call(that);
+ that.username = getUsername.call(that);
+ that.password = getPassword.call(that);
+ that.host = getHost.call(that);
+ that.hostname = getHostname.call(that);
+ that.port = getPort.call(that);
+ that.pathname = getPathname.call(that);
+ that.search = getSearch.call(that);
+ that.searchParams = getSearchParams.call(that);
+ that.hash = getHash.call(that);
+ }
+};
+var URLPrototype = URLConstructor.prototype;
+var serializeURL = function () {
+ var url = getInternalURLState(this);
+ var scheme = url.scheme;
+ var username = url.username;
+ var password = url.password;
+ var host = url.host;
+ var port = url.port;
+ var path = url.path;
+ var query = url.query;
+ var fragment = url.fragment;
+ var output = scheme + ':';
+ if (host !== null) {
+ output += '//';
+ if (includesCredentials(url)) {
+ output += username + (password ? ':' + password : '') + '@';
+ }
+ output += serializeHost(host);
+ if (port !== null)
+ output += ':' + port;
+ } else if (scheme == 'file')
+ output += '//';
+ output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
+ if (query !== null)
+ output += '?' + query;
+ if (fragment !== null)
+ output += '#' + fragment;
+ return output;
+};
+var getOrigin = function () {
+ var url = getInternalURLState(this);
+ var scheme = url.scheme;
+ var port = url.port;
+ if (scheme == 'blob')
+ try {
+ return new URL(scheme.path[0]).origin;
+ } catch (error) {
+ return 'null';
+ }
+ if (scheme == 'file' || !isSpecial(url))
+ return 'null';
+ return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');
+};
+var getProtocol = function () {
+ return getInternalURLState(this).scheme + ':';
+};
+var getUsername = function () {
+ return getInternalURLState(this).username;
+};
+var getPassword = function () {
+ return getInternalURLState(this).password;
+};
+var getHost = function () {
+ var url = getInternalURLState(this);
+ var host = url.host;
+ var port = url.port;
+ return host === null ? '' : port === null ? serializeHost(host) : serializeHost(host) + ':' + port;
+};
+var getHostname = function () {
+ var host = getInternalURLState(this).host;
+ return host === null ? '' : serializeHost(host);
+};
+var getPort = function () {
+ var port = getInternalURLState(this).port;
+ return port === null ? '' : String(port);
+};
+var getPathname = function () {
+ var url = getInternalURLState(this);
+ var path = url.path;
+ return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
+};
+var getSearch = function () {
+ var query = getInternalURLState(this).query;
+ return query ? '?' + query : '';
+};
+var getSearchParams = function () {
+ return getInternalURLState(this).searchParams;
+};
+var getHash = function () {
+ var fragment = getInternalURLState(this).fragment;
+ return fragment ? '#' + fragment : '';
+};
+var accessorDescriptor = function (getter, setter) {
+ return {
+ get: getter,
+ set: setter,
+ configurable: true,
+ enumerable: true
+ };
+};
+if (DESCRIPTORS) {
+ defineProperties(URLPrototype, {
+ href: accessorDescriptor(serializeURL, function (href) {
+ var url = getInternalURLState(this);
+ var urlString = String(href);
+ var failure = parseURL(url, urlString);
+ if (failure)
+ throw TypeError(failure);
+ getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
+ }),
+ origin: accessorDescriptor(getOrigin),
+ protocol: accessorDescriptor(getProtocol, function (protocol) {
+ var url = getInternalURLState(this);
+ parseURL(url, String(protocol) + ':', SCHEME_START);
+ }),
+ username: accessorDescriptor(getUsername, function (username) {
+ var url = getInternalURLState(this);
+ var codePoints = arrayFrom(String(username));
+ if (cannotHaveUsernamePasswordPort(url))
+ return;
+ url.username = '';
+ for (var i = 0; i < codePoints.length; i++) {
+ url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);
+ }
+ }),
+ password: accessorDescriptor(getPassword, function (password) {
+ var url = getInternalURLState(this);
+ var codePoints = arrayFrom(String(password));
+ if (cannotHaveUsernamePasswordPort(url))
+ return;
+ url.password = '';
+ for (var i = 0; i < codePoints.length; i++) {
+ url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);
+ }
+ }),
+ host: accessorDescriptor(getHost, function (host) {
+ var url = getInternalURLState(this);
+ if (url.cannotBeABaseURL)
+ return;
+ parseURL(url, String(host), HOST);
+ }),
+ hostname: accessorDescriptor(getHostname, function (hostname) {
+ var url = getInternalURLState(this);
+ if (url.cannotBeABaseURL)
+ return;
+ parseURL(url, String(hostname), HOSTNAME);
+ }),
+ port: accessorDescriptor(getPort, function (port) {
+ var url = getInternalURLState(this);
+ if (cannotHaveUsernamePasswordPort(url))
+ return;
+ port = String(port);
+ if (port == '')
+ url.port = null;
+ else
+ parseURL(url, port, PORT);
+ }),
+ pathname: accessorDescriptor(getPathname, function (pathname) {
+ var url = getInternalURLState(this);
+ if (url.cannotBeABaseURL)
+ return;
+ url.path = [];
+ parseURL(url, pathname + '', PATH_START);
+ }),
+ search: accessorDescriptor(getSearch, function (search) {
+ var url = getInternalURLState(this);
+ search = String(search);
+ if (search == '') {
+ url.query = null;
+ } else {
+ if ('?' == search.charAt(0))
+ search = search.slice(1);
+ url.query = '';
+ parseURL(url, search, QUERY);
+ }
+ getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
+ }),
+ searchParams: accessorDescriptor(getSearchParams),
+ hash: accessorDescriptor(getHash, function (hash) {
+ var url = getInternalURLState(this);
+ hash = String(hash);
+ if (hash == '') {
+ url.fragment = null;
+ return;
+ }
+ if ('#' == hash.charAt(0))
+ hash = hash.slice(1);
+ url.fragment = '';
+ parseURL(url, hash, FRAGMENT);
+ })
+ });
+}
+redefine(URLPrototype, 'toJSON', function toJSON() {
+ return serializeURL.call(this);
+}, { enumerable: true });
+redefine(URLPrototype, 'toString', function toString() {
+ return serializeURL.call(this);
+}, { enumerable: true });
+if (NativeURL) {
+ var nativeCreateObjectURL = NativeURL.createObjectURL;
+ var nativeRevokeObjectURL = NativeURL.revokeObjectURL;
+ if (nativeCreateObjectURL)
+ redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {
+ return nativeCreateObjectURL.apply(NativeURL, arguments);
+ });
+ if (nativeRevokeObjectURL)
+ redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {
+ return nativeRevokeObjectURL.apply(NativeURL, arguments);
});
}
+setToStringTag(URLConstructor, 'URL');
+$({
+ global: true,
+ forced: !USE_NATIVE_URL,
+ sham: !DESCRIPTORS
+}, { URL: URLConstructor });
/***/ }),
-/* 108 */
+/* 127 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var ctx = __w_pdfjs_require__(28);
-
-var IObject = __w_pdfjs_require__(48);
-
-var toObject = __w_pdfjs_require__(66);
-
-var toLength = __w_pdfjs_require__(30);
-
-var asc = __w_pdfjs_require__(109);
-
-module.exports = function (TYPE, $create) {
- var IS_MAP = TYPE == 1;
- var IS_FILTER = TYPE == 2;
- var IS_SOME = TYPE == 3;
- var IS_EVERY = TYPE == 4;
- var IS_FIND_INDEX = TYPE == 6;
- var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- var create = $create || asc;
- return function ($this, callbackfn, that) {
- var O = toObject($this);
- var self = IObject(O);
- var f = ctx(callbackfn, that, 3);
- var length = toLength(self.length);
- var index = 0;
- var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
- var val, res;
-
- for (; length > index; index++) {
- if (NO_HOLES || index in self) {
- val = self[index];
- res = f(val, index, O);
-
- if (TYPE) {
- if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {
- case 3:
- return true;
-
- case 5:
- return val;
-
- case 6:
- return index;
-
- case 2:
- result.push(val);
- } else if (IS_EVERY) return false;
- }
- }
- }
-
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
-};
+var fails = __w_pdfjs_require__(15);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var IS_PURE = __w_pdfjs_require__(33);
+var ITERATOR = wellKnownSymbol('iterator');
+module.exports = !fails(function () {
+ var url = new URL('b?e=1', 'http://a');
+ var searchParams = url.searchParams;
+ url.pathname = 'c%20d';
+ return IS_PURE && !url.toJSON || !searchParams.sort || url.href !== 'http://a/c%20d?e=1' || searchParams.get('e') !== '1' || String(new URLSearchParams('?a=1')) !== 'a=1' || !searchParams[ITERATOR] || new URL('https://a@b').username !== 'a' || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' || new URL('http://тест').host !== 'xn--e1aybc' || new URL('http://a#б').hash !== '#%D0%B1';
+});
/***/ }),
-/* 109 */
+/* 128 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var speciesConstructor = __w_pdfjs_require__(110);
-
-module.exports = function (original, length) {
- return new (speciesConstructor(original))(length);
+var maxInt = 2147483647;
+var base = 36;
+var tMin = 1;
+var tMax = 26;
+var skew = 38;
+var damp = 700;
+var initialBias = 72;
+var initialN = 128;
+var delimiter = '-';
+var regexNonASCII = /[^\0-\u007E]/;
+var regexSeparators = /[.\u3002\uFF0E\uFF61]/g;
+var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';
+var baseMinusTMin = base - tMin;
+var floor = Math.floor;
+var stringFromCharCode = String.fromCharCode;
+var ucs2decode = function (string) {
+ var output = [];
+ var counter = 0;
+ var length = string.length;
+ while (counter < length) {
+ var value = string.charCodeAt(counter++);
+ if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
+ var extra = string.charCodeAt(counter++);
+ if ((extra & 0xFC00) == 0xDC00) {
+ output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
+ } else {
+ output.push(value);
+ counter--;
+ }
+ } else {
+ output.push(value);
+ }
+ }
+ return output;
};
-
-/***/ }),
-/* 110 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-var isObject = __w_pdfjs_require__(18);
-
-var isArray = __w_pdfjs_require__(111);
-
-var SPECIES = __w_pdfjs_require__(35)('species');
-
-module.exports = function (original) {
- var C;
-
- if (isArray(original)) {
- C = original.constructor;
- if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
-
- if (isObject(C)) {
- C = C[SPECIES];
- if (C === null) C = undefined;
- }
+var digitToBasic = function (digit) {
+ return digit + 22 + 75 * (digit < 26);
+};
+var adapt = function (delta, numPoints, firstTime) {
+ var k = 0;
+ delta = firstTime ? floor(delta / damp) : delta >> 1;
+ delta += floor(delta / numPoints);
+ for (; delta > baseMinusTMin * tMax >> 1; k += base) {
+ delta = floor(delta / baseMinusTMin);
+ }
+ return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
+};
+var encode = function (input) {
+ var output = [];
+ input = ucs2decode(input);
+ var inputLength = input.length;
+ var n = initialN;
+ var delta = 0;
+ var bias = initialBias;
+ var i, currentValue;
+ for (i = 0; i < input.length; i++) {
+ currentValue = input[i];
+ if (currentValue < 0x80) {
+ output.push(stringFromCharCode(currentValue));
}
-
- return C === undefined ? Array : C;
+ }
+ var basicLength = output.length;
+ var handledCPCount = basicLength;
+ if (basicLength) {
+ output.push(delimiter);
+ }
+ while (handledCPCount < inputLength) {
+ var m = maxInt;
+ for (i = 0; i < input.length; i++) {
+ currentValue = input[i];
+ if (currentValue >= n && currentValue < m) {
+ m = currentValue;
+ }
+ }
+ var handledCPCountPlusOne = handledCPCount + 1;
+ if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
+ throw RangeError(OVERFLOW_ERROR);
+ }
+ delta += (m - n) * handledCPCountPlusOne;
+ n = m;
+ for (i = 0; i < input.length; i++) {
+ currentValue = input[i];
+ if (currentValue < n && ++delta > maxInt) {
+ throw RangeError(OVERFLOW_ERROR);
+ }
+ if (currentValue == n) {
+ var q = delta;
+ for (var k = base;; k += base) {
+ var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
+ if (q < t)
+ break;
+ var qMinusT = q - t;
+ var baseMinusT = base - t;
+ output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));
+ q = floor(qMinusT / baseMinusT);
+ }
+ output.push(stringFromCharCode(digitToBasic(q)));
+ bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
+ delta = 0;
+ ++handledCPCount;
+ }
+ }
+ ++delta;
+ ++n;
+ }
+ return output.join('');
};
-
-/***/ }),
-/* 111 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-var cof = __w_pdfjs_require__(34);
-
-module.exports = Array.isArray || function isArray(arg) {
- return cof(arg) == 'Array';
+module.exports = function (input) {
+ var encoded = [];
+ var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.');
+ var i, label;
+ for (i = 0; i < labels.length; i++) {
+ label = labels[i];
+ encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);
+ }
+ return encoded.join('.');
};
/***/ }),
-/* 112 */
+/* 129 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-var META = __w_pdfjs_require__(27)('meta');
-
-var isObject = __w_pdfjs_require__(18);
-
-var has = __w_pdfjs_require__(26);
-
-var setDesc = __w_pdfjs_require__(16).f;
-
-var id = 0;
-
-var isExtensible = Object.isExtensible || function () {
- return true;
+__w_pdfjs_require__(108);
+var $ = __w_pdfjs_require__(11);
+var USE_NATIVE_URL = __w_pdfjs_require__(127);
+var redefine = __w_pdfjs_require__(30);
+var redefineAll = __w_pdfjs_require__(111);
+var setToStringTag = __w_pdfjs_require__(81);
+var createIteratorConstructor = __w_pdfjs_require__(76);
+var InternalStateModule = __w_pdfjs_require__(35);
+var anInstance = __w_pdfjs_require__(113);
+var hasOwn = __w_pdfjs_require__(24);
+var bind = __w_pdfjs_require__(59);
+var anObject = __w_pdfjs_require__(29);
+var isObject = __w_pdfjs_require__(23);
+var getIterator = __w_pdfjs_require__(130);
+var getIteratorMethod = __w_pdfjs_require__(90);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var ITERATOR = wellKnownSymbol('iterator');
+var URL_SEARCH_PARAMS = 'URLSearchParams';
+var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
+var setInternalState = InternalStateModule.set;
+var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
+var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);
+var plus = /\+/g;
+var sequences = Array(4);
+var percentSequence = function (bytes) {
+ return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi'));
};
-
-var FREEZE = !__w_pdfjs_require__(21)(function () {
- return isExtensible(Object.preventExtensions({}));
-});
-
-var setMeta = function setMeta(it) {
- setDesc(it, META, {
- value: {
- i: 'O' + ++id,
- w: {}
- }
- });
+var percentDecode = function (sequence) {
+ try {
+ return decodeURIComponent(sequence);
+ } catch (error) {
+ return sequence;
+ }
};
-
-var fastKey = function fastKey(it, create) {
- if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
-
- if (!has(it, META)) {
- if (!isExtensible(it)) return 'F';
- if (!create) return 'E';
- setMeta(it);
+var deserialize = function (it) {
+ var result = it.replace(plus, ' ');
+ var bytes = 4;
+ try {
+ return decodeURIComponent(result);
+ } catch (error) {
+ while (bytes) {
+ result = result.replace(percentSequence(bytes--), percentDecode);
}
-
- return it[META].i;
+ return result;
+ }
};
-
-var getWeak = function getWeak(it, create) {
- if (!has(it, META)) {
- if (!isExtensible(it)) return true;
- if (!create) return false;
- setMeta(it);
- }
-
- return it[META].w;
+var find = /[!'()~]|%20/g;
+var replace = {
+ '!': '%21',
+ "'": '%27',
+ '(': '%28',
+ ')': '%29',
+ '~': '%7E',
+ '%20': '+'
};
-
-var onFreeze = function onFreeze(it) {
- if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
- return it;
+var replacer = function (match) {
+ return replace[match];
};
-
-var meta = module.exports = {
- KEY: META,
- NEED: false,
- fastKey: fastKey,
- getWeak: getWeak,
- onFreeze: onFreeze
+var serialize = function (it) {
+ return encodeURIComponent(it).replace(find, replacer);
};
-
-/***/ }),
-/* 113 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-var redefineAll = __w_pdfjs_require__(102);
-
-var getWeak = __w_pdfjs_require__(112).getWeak;
-
-var anObject = __w_pdfjs_require__(17);
-
-var isObject = __w_pdfjs_require__(18);
-
-var anInstance = __w_pdfjs_require__(92);
-
-var forOf = __w_pdfjs_require__(93);
-
-var createArrayMethod = __w_pdfjs_require__(108);
-
-var $has = __w_pdfjs_require__(26);
-
-var validate = __w_pdfjs_require__(114);
-
-var arrayFind = createArrayMethod(5);
-var arrayFindIndex = createArrayMethod(6);
-var id = 0;
-
-var uncaughtFrozenStore = function uncaughtFrozenStore(that) {
- return that._l || (that._l = new UncaughtFrozenStore());
+var parseSearchParams = function (result, query) {
+ if (query) {
+ var attributes = query.split('&');
+ var index = 0;
+ var attribute, entry;
+ while (index < attributes.length) {
+ attribute = attributes[index++];
+ if (attribute.length) {
+ entry = attribute.split('=');
+ result.push({
+ key: deserialize(entry.shift()),
+ value: deserialize(entry.join('='))
+ });
+ }
+ }
+ }
};
-
-var UncaughtFrozenStore = function UncaughtFrozenStore() {
- this.a = [];
+var updateSearchParams = function (query) {
+ this.entries.length = 0;
+ parseSearchParams(this.entries, query);
};
-
-var findUncaughtFrozen = function findUncaughtFrozen(store, key) {
- return arrayFind(store.a, function (it) {
- return it[0] === key;
- });
+var validateArgumentsLength = function (passed, required) {
+ if (passed < required)
+ throw TypeError('Not enough arguments');
};
-
-UncaughtFrozenStore.prototype = {
- get: function get(key) {
- var entry = findUncaughtFrozen(this, key);
- if (entry) return entry[1];
- },
- has: function has(key) {
- return !!findUncaughtFrozen(this, key);
- },
- set: function set(key, value) {
- var entry = findUncaughtFrozen(this, key);
- if (entry) entry[1] = value;else this.a.push([key, value]);
+var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
+ setInternalState(this, {
+ type: URL_SEARCH_PARAMS_ITERATOR,
+ iterator: getIterator(getInternalParamsState(params).entries),
+ kind: kind
+ });
+}, 'Iterator', function next() {
+ var state = getInternalIteratorState(this);
+ var kind = state.kind;
+ var step = state.iterator.next();
+ var entry = step.value;
+ if (!step.done) {
+ step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [
+ entry.key,
+ entry.value
+ ];
+ }
+ return step;
+});
+var URLSearchParamsConstructor = function URLSearchParams() {
+ anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);
+ var init = arguments.length > 0 ? arguments[0] : undefined;
+ var that = this;
+ var entries = [];
+ var iteratorMethod, iterator, step, entryIterator, first, second, key;
+ setInternalState(that, {
+ type: URL_SEARCH_PARAMS,
+ entries: entries,
+ updateURL: function () {
},
- 'delete': function _delete(key) {
- var index = arrayFindIndex(this.a, function (it) {
- return it[0] === key;
- });
- if (~index) this.a.splice(index, 1);
- return !!~index;
+ updateSearchParams: updateSearchParams
+ });
+ if (init !== undefined) {
+ if (isObject(init)) {
+ iteratorMethod = getIteratorMethod(init);
+ if (typeof iteratorMethod === 'function') {
+ iterator = iteratorMethod.call(init);
+ while (!(step = iterator.next()).done) {
+ entryIterator = getIterator(anObject(step.value));
+ if ((first = entryIterator.next()).done || (second = entryIterator.next()).done || !entryIterator.next().done)
+ throw TypeError('Expected sequence with length 2');
+ entries.push({
+ key: first.value + '',
+ value: second.value + ''
+ });
+ }
+ } else
+ for (key in init)
+ if (hasOwn(init, key))
+ entries.push({
+ key: key,
+ value: init[key] + ''
+ });
+ } else {
+ parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');
}
+ }
};
+var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
+redefineAll(URLSearchParamsPrototype, {
+ append: function append(name, value) {
+ validateArgumentsLength(arguments.length, 2);
+ var state = getInternalParamsState(this);
+ state.entries.push({
+ key: name + '',
+ value: value + ''
+ });
+ state.updateURL();
+ },
+ 'delete': function (name) {
+ validateArgumentsLength(arguments.length, 1);
+ var state = getInternalParamsState(this);
+ var entries = state.entries;
+ var key = name + '';
+ var index = 0;
+ while (index < entries.length) {
+ if (entries[index].key === key)
+ entries.splice(index, 1);
+ else
+ index++;
+ }
+ state.updateURL();
+ },
+ get: function get(name) {
+ validateArgumentsLength(arguments.length, 1);
+ var entries = getInternalParamsState(this).entries;
+ var key = name + '';
+ var index = 0;
+ for (; index < entries.length; index++) {
+ if (entries[index].key === key)
+ return entries[index].value;
+ }
+ return null;
+ },
+ getAll: function getAll(name) {
+ validateArgumentsLength(arguments.length, 1);
+ var entries = getInternalParamsState(this).entries;
+ var key = name + '';
+ var result = [];
+ var index = 0;
+ for (; index < entries.length; index++) {
+ if (entries[index].key === key)
+ result.push(entries[index].value);
+ }
+ return result;
+ },
+ has: function has(name) {
+ validateArgumentsLength(arguments.length, 1);
+ var entries = getInternalParamsState(this).entries;
+ var key = name + '';
+ var index = 0;
+ while (index < entries.length) {
+ if (entries[index++].key === key)
+ return true;
+ }
+ return false;
+ },
+ set: function set(name, value) {
+ validateArgumentsLength(arguments.length, 1);
+ var state = getInternalParamsState(this);
+ var entries = state.entries;
+ var found = false;
+ var key = name + '';
+ var val = value + '';
+ var index = 0;
+ var entry;
+ for (; index < entries.length; index++) {
+ entry = entries[index];
+ if (entry.key === key) {
+ if (found)
+ entries.splice(index--, 1);
+ else {
+ found = true;
+ entry.value = val;
+ }
+ }
+ }
+ if (!found)
+ entries.push({
+ key: key,
+ value: val
+ });
+ state.updateURL();
+ },
+ sort: function sort() {
+ var state = getInternalParamsState(this);
+ var entries = state.entries;
+ var slice = entries.slice();
+ var entry, entriesIndex, sliceIndex;
+ entries.length = 0;
+ for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {
+ entry = slice[sliceIndex];
+ for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {
+ if (entries[entriesIndex].key > entry.key) {
+ entries.splice(entriesIndex, 0, entry);
+ break;
+ }
+ }
+ if (entriesIndex === sliceIndex)
+ entries.push(entry);
+ }
+ state.updateURL();
+ },
+ forEach: function forEach(callback) {
+ var entries = getInternalParamsState(this).entries;
+ var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);
+ var index = 0;
+ var entry;
+ while (index < entries.length) {
+ entry = entries[index++];
+ boundFunction(entry.value, entry.key, this);
+ }
+ },
+ keys: function keys() {
+ return new URLSearchParamsIterator(this, 'keys');
+ },
+ values: function values() {
+ return new URLSearchParamsIterator(this, 'values');
+ },
+ entries: function entries() {
+ return new URLSearchParamsIterator(this, 'entries');
+ }
+}, { enumerable: true });
+redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);
+redefine(URLSearchParamsPrototype, 'toString', function toString() {
+ var entries = getInternalParamsState(this).entries;
+ var result = [];
+ var index = 0;
+ var entry;
+ while (index < entries.length) {
+ entry = entries[index++];
+ result.push(serialize(entry.key) + '=' + serialize(entry.value));
+ }
+ return result.join('&');
+}, { enumerable: true });
+setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);
+$({
+ global: true,
+ forced: !USE_NATIVE_URL
+}, { URLSearchParams: URLSearchParamsConstructor });
module.exports = {
- getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {
- var C = wrapper(function (that, iterable) {
- anInstance(that, C, NAME, '_i');
- that._t = NAME;
- that._i = id++;
- that._l = undefined;
- if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
- });
- redefineAll(C.prototype, {
- 'delete': function _delete(key) {
- if (!isObject(key)) return false;
- var data = getWeak(key);
- if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
- return data && $has(data, this._i) && delete data[this._i];
- },
- has: function has(key) {
- if (!isObject(key)) return false;
- var data = getWeak(key);
- if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
- return data && $has(data, this._i);
- }
- });
- return C;
- },
- def: function def(that, key, value) {
- var data = getWeak(anObject(key), true);
- if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;
- return that;
- },
- ufstore: uncaughtFrozenStore
+ URLSearchParams: URLSearchParamsConstructor,
+ getState: getInternalParamsState
};
/***/ }),
-/* 114 */
+/* 130 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var isObject = __w_pdfjs_require__(18);
-
-module.exports = function (it, TYPE) {
- if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
- return it;
+var anObject = __w_pdfjs_require__(29);
+var getIteratorMethod = __w_pdfjs_require__(90);
+module.exports = function (it) {
+ var iteratorMethod = getIteratorMethod(it);
+ if (typeof iteratorMethod != 'function') {
+ throw TypeError(String(it) + ' is not iterable');
+ }
+ return anObject(iteratorMethod.call(it));
};
/***/ }),
-/* 115 */
+/* 131 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var global = __w_pdfjs_require__(13);
-
-var $export = __w_pdfjs_require__(12);
-
-var redefine = __w_pdfjs_require__(25);
-
-var redefineAll = __w_pdfjs_require__(102);
-
-var meta = __w_pdfjs_require__(112);
-
-var forOf = __w_pdfjs_require__(93);
-
-var anInstance = __w_pdfjs_require__(92);
-
-var isObject = __w_pdfjs_require__(18);
-
-var fails = __w_pdfjs_require__(21);
-
-var $iterDetect = __w_pdfjs_require__(73);
-
-var setToStringTag = __w_pdfjs_require__(64);
-
-var inheritIfRequired = __w_pdfjs_require__(116);
-
-module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
- var Base = global[NAME];
- var C = Base;
- var ADDER = IS_MAP ? 'set' : 'add';
- var proto = C && C.prototype;
- var O = {};
-
- var fixMethod = function fixMethod(KEY) {
- var fn = proto[KEY];
- redefine(proto, KEY, KEY == 'delete' ? function (a) {
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'has' ? function has(a) {
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'get' ? function get(a) {
- return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'add' ? function add(a) {
- fn.call(this, a === 0 ? 0 : a);
- return this;
- } : function set(a, b) {
- fn.call(this, a === 0 ? 0 : a, b);
- return this;
- });
- };
-
- if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
- new C().entries().next();
- }))) {
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- redefineAll(C.prototype, methods);
- meta.NEED = true;
- } else {
- var instance = new C();
- var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
- var THROWS_ON_PRIMITIVES = fails(function () {
- instance.has(1);
- });
- var ACCEPT_ITERABLES = $iterDetect(function (iter) {
- new C(iter);
- });
- var BUGGY_ZERO = !IS_WEAK && fails(function () {
- var $instance = new C();
- var index = 5;
-
- while (index--) {
- $instance[ADDER](index, index);
- }
-
- return !$instance.has(-0);
- });
-
- if (!ACCEPT_ITERABLES) {
- C = wrapper(function (target, iterable) {
- anInstance(target, C, NAME);
- var that = inheritIfRequired(new Base(), target, C);
- if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
- return that;
- });
- C.prototype = proto;
- proto.constructor = C;
- }
-
- if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
- fixMethod('delete');
- fixMethod('has');
- IS_MAP && fixMethod('get');
- }
-
- if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
- if (IS_WEAK && proto.clear) delete proto.clear;
- }
-
- setToStringTag(C, NAME);
- O[NAME] = C;
- $export($export.G + $export.W + $export.F * (C != Base), O);
- if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
- return C;
-};
+var $ = __w_pdfjs_require__(11);
+$({
+ target: 'URL',
+ proto: true,
+ enumerable: true
+}, {
+ toJSON: function toJSON() {
+ return URL.prototype.toString.call(this);
+ }
+});
/***/ }),
-/* 116 */
+/* 132 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var isObject = __w_pdfjs_require__(18);
-
-var setPrototypeOf = __w_pdfjs_require__(117).set;
-
-module.exports = function (that, target, C) {
- var S = target.constructor;
- var P;
-
- if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
- setPrototypeOf(that, P);
- }
-
- return that;
-};
+__w_pdfjs_require__(104);
+__w_pdfjs_require__(133);
+__w_pdfjs_require__(106);
+var path = __w_pdfjs_require__(43);
+module.exports = path.WeakMap;
/***/ }),
-/* 117 */
+/* 133 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var isObject = __w_pdfjs_require__(18);
-
-var anObject = __w_pdfjs_require__(17);
-
-var check = function check(O, proto) {
- anObject(O);
- if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
-};
-
-module.exports = {
- set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {
- try {
- set = __w_pdfjs_require__(28)(Function.call, __w_pdfjs_require__(118).f(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch (e) {
- buggy = true;
- }
-
- return function setPrototypeOf(O, proto) {
- check(O, proto);
- if (buggy) O.__proto__ = proto;else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
+var global = __w_pdfjs_require__(12);
+var redefineAll = __w_pdfjs_require__(111);
+var InternalMetadataModule = __w_pdfjs_require__(134);
+var collection = __w_pdfjs_require__(136);
+var collectionWeak = __w_pdfjs_require__(138);
+var isObject = __w_pdfjs_require__(23);
+var enforceIternalState = __w_pdfjs_require__(35).enforce;
+var NATIVE_WEAK_MAP = __w_pdfjs_require__(36);
+var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
+var isExtensible = Object.isExtensible;
+var InternalWeakMap;
+var wrapper = function (get) {
+ return function WeakMap() {
+ return get(this, arguments.length ? arguments[0] : undefined);
+ };
};
+var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak, true, true);
+if (NATIVE_WEAK_MAP && IS_IE11) {
+ InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);
+ InternalMetadataModule.REQUIRED = true;
+ var WeakMapPrototype = $WeakMap.prototype;
+ var nativeDelete = WeakMapPrototype['delete'];
+ var nativeHas = WeakMapPrototype.has;
+ var nativeGet = WeakMapPrototype.get;
+ var nativeSet = WeakMapPrototype.set;
+ redefineAll(WeakMapPrototype, {
+ 'delete': function (key) {
+ if (isObject(key) && !isExtensible(key)) {
+ var state = enforceIternalState(this);
+ if (!state.frozen)
+ state.frozen = new InternalWeakMap();
+ return nativeDelete.call(this, key) || state.frozen['delete'](key);
+ }
+ return nativeDelete.call(this, key);
+ },
+ has: function has(key) {
+ if (isObject(key) && !isExtensible(key)) {
+ var state = enforceIternalState(this);
+ if (!state.frozen)
+ state.frozen = new InternalWeakMap();
+ return nativeHas.call(this, key) || state.frozen.has(key);
+ }
+ return nativeHas.call(this, key);
+ },
+ get: function get(key) {
+ if (isObject(key) && !isExtensible(key)) {
+ var state = enforceIternalState(this);
+ if (!state.frozen)
+ state.frozen = new InternalWeakMap();
+ return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);
+ }
+ return nativeGet.call(this, key);
+ },
+ set: function set(key, value) {
+ if (isObject(key) && !isExtensible(key)) {
+ var state = enforceIternalState(this);
+ if (!state.frozen)
+ state.frozen = new InternalWeakMap();
+ nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);
+ } else
+ nativeSet.call(this, key, value);
+ return this;
+ }
+ });
+}
/***/ }),
-/* 118 */
+/* 134 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var pIE = __w_pdfjs_require__(78);
-
-var createDesc = __w_pdfjs_require__(24);
-
-var toIObject = __w_pdfjs_require__(47);
-
-var toPrimitive = __w_pdfjs_require__(23);
-
-var has = __w_pdfjs_require__(26);
-
-var IE8_DOM_DEFINE = __w_pdfjs_require__(19);
-
-var gOPD = Object.getOwnPropertyDescriptor;
-exports.f = __w_pdfjs_require__(20) ? gOPD : function getOwnPropertyDescriptor(O, P) {
- O = toIObject(O);
- P = toPrimitive(P, true);
- if (IE8_DOM_DEFINE) try {
- return gOPD(O, P);
- } catch (e) {}
- if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
+var hiddenKeys = __w_pdfjs_require__(39);
+var isObject = __w_pdfjs_require__(23);
+var has = __w_pdfjs_require__(24);
+var defineProperty = __w_pdfjs_require__(28).f;
+var uid = __w_pdfjs_require__(38);
+var FREEZING = __w_pdfjs_require__(135);
+var METADATA = uid('meta');
+var id = 0;
+var isExtensible = Object.isExtensible || function () {
+ return true;
+};
+var setMetadata = function (it) {
+ defineProperty(it, METADATA, {
+ value: {
+ objectID: 'O' + ++id,
+ weakData: {}
+ }
+ });
+};
+var fastKey = function (it, create) {
+ if (!isObject(it))
+ return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if (!has(it, METADATA)) {
+ if (!isExtensible(it))
+ return 'F';
+ if (!create)
+ return 'E';
+ setMetadata(it);
+ }
+ return it[METADATA].objectID;
+};
+var getWeakData = function (it, create) {
+ if (!has(it, METADATA)) {
+ if (!isExtensible(it))
+ return true;
+ if (!create)
+ return false;
+ setMetadata(it);
+ }
+ return it[METADATA].weakData;
};
+var onFreeze = function (it) {
+ if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA))
+ setMetadata(it);
+ return it;
+};
+var meta = module.exports = {
+ REQUIRED: false,
+ fastKey: fastKey,
+ getWeakData: getWeakData,
+ onFreeze: onFreeze
+};
+hiddenKeys[METADATA] = true;
/***/ }),
-/* 119 */
+/* 135 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(120)('WeakMap');
+var fails = __w_pdfjs_require__(15);
+module.exports = !fails(function () {
+ return Object.isExtensible(Object.preventExtensions({}));
+});
/***/ }),
-/* 120 */
+/* 136 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var $export = __w_pdfjs_require__(12);
-
-module.exports = function (COLLECTION) {
- $export($export.S, COLLECTION, {
- of: function of() {
- var length = arguments.length;
- var A = new Array(length);
-
- while (length--) {
- A[length] = arguments[length];
- }
-
- return new this(A);
- }
+var $ = __w_pdfjs_require__(11);
+var global = __w_pdfjs_require__(12);
+var isForced = __w_pdfjs_require__(52);
+var redefine = __w_pdfjs_require__(30);
+var InternalMetadataModule = __w_pdfjs_require__(134);
+var iterate = __w_pdfjs_require__(114);
+var anInstance = __w_pdfjs_require__(113);
+var isObject = __w_pdfjs_require__(23);
+var fails = __w_pdfjs_require__(15);
+var checkCorrectnessOfIteration = __w_pdfjs_require__(92);
+var setToStringTag = __w_pdfjs_require__(81);
+var inheritIfRequired = __w_pdfjs_require__(137);
+module.exports = function (CONSTRUCTOR_NAME, wrapper, common, IS_MAP, IS_WEAK) {
+ var NativeConstructor = global[CONSTRUCTOR_NAME];
+ var NativePrototype = NativeConstructor && NativeConstructor.prototype;
+ var Constructor = NativeConstructor;
+ var ADDER = IS_MAP ? 'set' : 'add';
+ var exported = {};
+ var fixMethod = function (KEY) {
+ var nativeMethod = NativePrototype[KEY];
+ redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) {
+ nativeMethod.call(this, value === 0 ? 0 : value);
+ return this;
+ } : KEY == 'delete' ? function (key) {
+ return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);
+ } : KEY == 'get' ? function get(key) {
+ return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);
+ } : KEY == 'has' ? function has(key) {
+ return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);
+ } : function set(key, value) {
+ nativeMethod.call(this, key === 0 ? 0 : key, value);
+ return this;
+ });
+ };
+ if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {
+ new NativeConstructor().entries().next();
+ })))) {
+ Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);
+ InternalMetadataModule.REQUIRED = true;
+ } else if (isForced(CONSTRUCTOR_NAME, true)) {
+ var instance = new Constructor();
+ var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
+ var THROWS_ON_PRIMITIVES = fails(function () {
+ instance.has(1);
});
+ var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) {
+ new NativeConstructor(iterable);
+ });
+ var BUGGY_ZERO = !IS_WEAK && fails(function () {
+ var $instance = new NativeConstructor();
+ var index = 5;
+ while (index--)
+ $instance[ADDER](index, index);
+ return !$instance.has(-0);
+ });
+ if (!ACCEPT_ITERABLES) {
+ Constructor = wrapper(function (dummy, iterable) {
+ anInstance(dummy, Constructor, CONSTRUCTOR_NAME);
+ var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);
+ if (iterable != undefined)
+ iterate(iterable, that[ADDER], that, IS_MAP);
+ return that;
+ });
+ Constructor.prototype = NativePrototype;
+ NativePrototype.constructor = Constructor;
+ }
+ if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
+ fixMethod('delete');
+ fixMethod('has');
+ IS_MAP && fixMethod('get');
+ }
+ if (BUGGY_ZERO || HASNT_CHAINING)
+ fixMethod(ADDER);
+ if (IS_WEAK && NativePrototype.clear)
+ delete NativePrototype.clear;
+ }
+ exported[CONSTRUCTOR_NAME] = Constructor;
+ $({
+ global: true,
+ forced: Constructor != NativeConstructor
+ }, exported);
+ setToStringTag(Constructor, CONSTRUCTOR_NAME);
+ if (!IS_WEAK)
+ common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);
+ return Constructor;
};
/***/ }),
-/* 121 */
+/* 137 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(122)('WeakMap');
+var isObject = __w_pdfjs_require__(23);
+var setPrototypeOf = __w_pdfjs_require__(83);
+module.exports = function ($this, dummy, Wrapper) {
+ var NewTarget, NewTargetPrototype;
+ if (setPrototypeOf && typeof (NewTarget = dummy.constructor) == 'function' && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype)
+ setPrototypeOf($this, NewTargetPrototype);
+ return $this;
+};
/***/ }),
-/* 122 */
+/* 138 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var $export = __w_pdfjs_require__(12);
-
-var aFunction = __w_pdfjs_require__(29);
-
-var ctx = __w_pdfjs_require__(28);
-
-var forOf = __w_pdfjs_require__(93);
-
-module.exports = function (COLLECTION) {
- $export($export.S, COLLECTION, {
- from: function from(source) {
- var mapFn = arguments[1];
- var mapping, A, n, cb;
- aFunction(this);
- mapping = mapFn !== undefined;
- if (mapping) aFunction(mapFn);
- if (source == undefined) return new this();
- A = [];
-
- if (mapping) {
- n = 0;
- cb = ctx(mapFn, arguments[2], 2);
- forOf(source, false, function (nextItem) {
- A.push(cb(nextItem, n++));
- });
- } else {
- forOf(source, false, A.push, A);
- }
-
- return new this(A);
- }
+var redefineAll = __w_pdfjs_require__(111);
+var getWeakData = __w_pdfjs_require__(134).getWeakData;
+var anObject = __w_pdfjs_require__(29);
+var isObject = __w_pdfjs_require__(23);
+var anInstance = __w_pdfjs_require__(113);
+var iterate = __w_pdfjs_require__(114);
+var ArrayIterationModule = __w_pdfjs_require__(139);
+var $has = __w_pdfjs_require__(24);
+var InternalStateModule = __w_pdfjs_require__(35);
+var setInternalState = InternalStateModule.set;
+var internalStateGetterFor = InternalStateModule.getterFor;
+var find = ArrayIterationModule.find;
+var findIndex = ArrayIterationModule.findIndex;
+var id = 0;
+var uncaughtFrozenStore = function (store) {
+ return store.frozen || (store.frozen = new UncaughtFrozenStore());
+};
+var UncaughtFrozenStore = function () {
+ this.entries = [];
+};
+var findUncaughtFrozen = function (store, key) {
+ return find(store.entries, function (it) {
+ return it[0] === key;
+ });
+};
+UncaughtFrozenStore.prototype = {
+ get: function (key) {
+ var entry = findUncaughtFrozen(this, key);
+ if (entry)
+ return entry[1];
+ },
+ has: function (key) {
+ return !!findUncaughtFrozen(this, key);
+ },
+ set: function (key, value) {
+ var entry = findUncaughtFrozen(this, key);
+ if (entry)
+ entry[1] = value;
+ else
+ this.entries.push([
+ key,
+ value
+ ]);
+ },
+ 'delete': function (key) {
+ var index = findIndex(this.entries, function (it) {
+ return it[0] === key;
});
+ if (~index)
+ this.entries.splice(index, 1);
+ return !!~index;
+ }
+};
+module.exports = {
+ getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
+ var C = wrapper(function (that, iterable) {
+ anInstance(that, C, CONSTRUCTOR_NAME);
+ setInternalState(that, {
+ type: CONSTRUCTOR_NAME,
+ id: id++,
+ frozen: undefined
+ });
+ if (iterable != undefined)
+ iterate(iterable, that[ADDER], that, IS_MAP);
+ });
+ var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
+ var define = function (that, key, value) {
+ var state = getInternalState(that);
+ var data = getWeakData(anObject(key), true);
+ if (data === true)
+ uncaughtFrozenStore(state).set(key, value);
+ else
+ data[state.id] = value;
+ return that;
+ };
+ redefineAll(C.prototype, {
+ 'delete': function (key) {
+ var state = getInternalState(this);
+ if (!isObject(key))
+ return false;
+ var data = getWeakData(key);
+ if (data === true)
+ return uncaughtFrozenStore(state)['delete'](key);
+ return data && $has(data, state.id) && delete data[state.id];
+ },
+ has: function has(key) {
+ var state = getInternalState(this);
+ if (!isObject(key))
+ return false;
+ var data = getWeakData(key);
+ if (data === true)
+ return uncaughtFrozenStore(state).has(key);
+ return data && $has(data, state.id);
+ }
+ });
+ redefineAll(C.prototype, IS_MAP ? {
+ get: function get(key) {
+ var state = getInternalState(this);
+ if (isObject(key)) {
+ var data = getWeakData(key);
+ if (data === true)
+ return uncaughtFrozenStore(state).get(key);
+ return data ? data[state.id] : undefined;
+ }
+ },
+ set: function set(key, value) {
+ return define(this, key, value);
+ }
+ } : {
+ add: function add(value) {
+ return define(this, value, true);
+ }
+ });
+ return C;
+ }
};
/***/ }),
-/* 123 */
+/* 139 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(87);
-
-__w_pdfjs_require__(88);
-
-__w_pdfjs_require__(124);
-
-__w_pdfjs_require__(125);
-
-__w_pdfjs_require__(126);
-
-module.exports = __w_pdfjs_require__(14).WeakSet;
+var bind = __w_pdfjs_require__(59);
+var IndexedObject = __w_pdfjs_require__(19);
+var toObject = __w_pdfjs_require__(79);
+var toLength = __w_pdfjs_require__(47);
+var arraySpeciesCreate = __w_pdfjs_require__(140);
+var push = [].push;
+var createMethod = function (TYPE) {
+ var IS_MAP = TYPE == 1;
+ var IS_FILTER = TYPE == 2;
+ var IS_SOME = TYPE == 3;
+ var IS_EVERY = TYPE == 4;
+ var IS_FIND_INDEX = TYPE == 6;
+ var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
+ return function ($this, callbackfn, that, specificCreate) {
+ var O = toObject($this);
+ var self = IndexedObject(O);
+ var boundFunction = bind(callbackfn, that, 3);
+ var length = toLength(self.length);
+ var index = 0;
+ var create = specificCreate || arraySpeciesCreate;
+ var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
+ var value, result;
+ for (; length > index; index++)
+ if (NO_HOLES || index in self) {
+ value = self[index];
+ result = boundFunction(value, index, O);
+ if (TYPE) {
+ if (IS_MAP)
+ target[index] = result;
+ else if (result)
+ switch (TYPE) {
+ case 3:
+ return true;
+ case 5:
+ return value;
+ case 6:
+ return index;
+ case 2:
+ push.call(target, value);
+ }
+ else if (IS_EVERY)
+ return false;
+ }
+ }
+ return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
+ };
+};
+module.exports = {
+ forEach: createMethod(0),
+ map: createMethod(1),
+ filter: createMethod(2),
+ some: createMethod(3),
+ every: createMethod(4),
+ find: createMethod(5),
+ findIndex: createMethod(6)
+};
/***/ }),
-/* 124 */
+/* 140 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var weak = __w_pdfjs_require__(113);
-
-var validate = __w_pdfjs_require__(114);
-
-var WEAK_SET = 'WeakSet';
-
-__w_pdfjs_require__(115)(WEAK_SET, function (get) {
- return function WeakSet() {
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
-}, {
- add: function add(value) {
- return weak.def(validate(this, WEAK_SET), value, true);
+var isObject = __w_pdfjs_require__(23);
+var isArray = __w_pdfjs_require__(141);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var SPECIES = wellKnownSymbol('species');
+module.exports = function (originalArray, length) {
+ var C;
+ if (isArray(originalArray)) {
+ C = originalArray.constructor;
+ if (typeof C == 'function' && (C === Array || isArray(C.prototype)))
+ C = undefined;
+ else if (isObject(C)) {
+ C = C[SPECIES];
+ if (C === null)
+ C = undefined;
}
-}, weak, false, true);
+ }
+ return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
+};
/***/ }),
-/* 125 */
+/* 141 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(120)('WeakSet');
+var classof = __w_pdfjs_require__(20);
+module.exports = Array.isArray || function isArray(arg) {
+ return classof(arg) == 'Array';
+};
/***/ }),
-/* 126 */
+/* 142 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(122)('WeakSet');
+__w_pdfjs_require__(104);
+__w_pdfjs_require__(143);
+__w_pdfjs_require__(106);
+var path = __w_pdfjs_require__(43);
+module.exports = path.WeakSet;
/***/ }),
-/* 127 */
+/* 143 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
+var collection = __w_pdfjs_require__(136);
+var collectionWeak = __w_pdfjs_require__(138);
+collection('WeakSet', function (get) {
+ return function WeakSet() {
+ return get(this, arguments.length ? arguments[0] : undefined);
+ };
+}, collectionWeak, false, true);
-__w_pdfjs_require__(128);
+/***/ }),
+/* 144 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-module.exports = __w_pdfjs_require__(14).String.codePointAt;
+__w_pdfjs_require__(145);
+var entryUnbind = __w_pdfjs_require__(58);
+module.exports = entryUnbind('String', 'codePointAt');
/***/ }),
-/* 128 */
+/* 145 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var $export = __w_pdfjs_require__(12);
-
-var $at = __w_pdfjs_require__(53)(false);
-
-$export($export.P, 'String', {
- codePointAt: function codePointAt(pos) {
- return $at(this, pos);
- }
+var $ = __w_pdfjs_require__(11);
+var codeAt = __w_pdfjs_require__(74).codeAt;
+$({
+ target: 'String',
+ proto: true
+}, {
+ codePointAt: function codePointAt(pos) {
+ return codeAt(this, pos);
+ }
});
/***/ }),
-/* 129 */
+/* 146 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(130);
-
-module.exports = __w_pdfjs_require__(14).String.fromCodePoint;
+__w_pdfjs_require__(147);
+var path = __w_pdfjs_require__(43);
+module.exports = path.String.fromCodePoint;
/***/ }),
-/* 130 */
+/* 147 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var $export = __w_pdfjs_require__(12);
-
+var $ = __w_pdfjs_require__(11);
var toAbsoluteIndex = __w_pdfjs_require__(49);
-
var fromCharCode = String.fromCharCode;
-var $fromCodePoint = String.fromCodePoint;
-$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
- fromCodePoint: function fromCodePoint(x) {
- var res = [];
- var aLen = arguments.length;
- var i = 0;
- var code;
-
- while (aLen > i) {
- code = +arguments[i++];
- if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
- res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));
- }
-
- return res.join('');
+var nativeFromCodePoint = String.fromCodePoint;
+var INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;
+$({
+ target: 'String',
+ stat: true,
+ forced: INCORRECT_LENGTH
+}, {
+ fromCodePoint: function fromCodePoint(x) {
+ var elements = [];
+ var length = arguments.length;
+ var i = 0;
+ var code;
+ while (length > i) {
+ code = +arguments[i++];
+ if (toAbsoluteIndex(code, 0x10FFFF) !== code)
+ throw RangeError(code + ' is not a valid code point');
+ elements.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00));
}
+ return elements.join('');
+ }
});
/***/ }),
-/* 131 */
+/* 148 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(132);
-
-__w_pdfjs_require__(87);
-
-module.exports = __w_pdfjs_require__(14).Symbol;
+__w_pdfjs_require__(149);
+__w_pdfjs_require__(104);
+__w_pdfjs_require__(151);
+__w_pdfjs_require__(155);
+__w_pdfjs_require__(156);
+__w_pdfjs_require__(157);
+__w_pdfjs_require__(158);
+__w_pdfjs_require__(159);
+__w_pdfjs_require__(160);
+__w_pdfjs_require__(161);
+__w_pdfjs_require__(162);
+__w_pdfjs_require__(163);
+__w_pdfjs_require__(164);
+__w_pdfjs_require__(165);
+__w_pdfjs_require__(166);
+__w_pdfjs_require__(167);
+__w_pdfjs_require__(168);
+__w_pdfjs_require__(169);
+__w_pdfjs_require__(170);
+var path = __w_pdfjs_require__(43);
+module.exports = path.Symbol;
/***/ }),
-/* 132 */
+/* 149 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
+var $ = __w_pdfjs_require__(11);
+var fails = __w_pdfjs_require__(15);
+var isArray = __w_pdfjs_require__(141);
+var isObject = __w_pdfjs_require__(23);
+var toObject = __w_pdfjs_require__(79);
+var toLength = __w_pdfjs_require__(47);
+var createProperty = __w_pdfjs_require__(89);
+var arraySpeciesCreate = __w_pdfjs_require__(140);
+var arrayMethodHasSpeciesSupport = __w_pdfjs_require__(150);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
+var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
+var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
+var IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {
+ var array = [];
+ array[IS_CONCAT_SPREADABLE] = false;
+ return array.concat()[0] !== array;
+});
+var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
+var isConcatSpreadable = function (O) {
+ if (!isObject(O))
+ return false;
+ var spreadable = O[IS_CONCAT_SPREADABLE];
+ return spreadable !== undefined ? !!spreadable : isArray(O);
+};
+var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
+$({
+ target: 'Array',
+ proto: true,
+ forced: FORCED
+}, {
+ concat: function concat(arg) {
+ var O = toObject(this);
+ var A = arraySpeciesCreate(O, 0);
+ var n = 0;
+ var i, k, length, len, E;
+ for (i = -1, length = arguments.length; i < length; i++) {
+ E = i === -1 ? O : arguments[i];
+ if (isConcatSpreadable(E)) {
+ len = toLength(E.length);
+ if (n + len > MAX_SAFE_INTEGER)
+ throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
+ for (k = 0; k < len; k++, n++)
+ if (k in E)
+ createProperty(A, n, E[k]);
+ } else {
+ if (n >= MAX_SAFE_INTEGER)
+ throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
+ createProperty(A, n++, E);
+ }
+ }
+ A.length = n;
+ return A;
+ }
+});
-function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-var global = __w_pdfjs_require__(13);
-
-var has = __w_pdfjs_require__(26);
-
-var DESCRIPTORS = __w_pdfjs_require__(20);
-
-var $export = __w_pdfjs_require__(12);
-
-var redefine = __w_pdfjs_require__(25);
-
-var META = __w_pdfjs_require__(112).KEY;
-
-var $fails = __w_pdfjs_require__(21);
-
-var shared = __w_pdfjs_require__(36);
-
-var setToStringTag = __w_pdfjs_require__(64);
-
-var uid = __w_pdfjs_require__(27);
-
-var wks = __w_pdfjs_require__(35);
-
-var wksExt = __w_pdfjs_require__(133);
-
-var wksDefine = __w_pdfjs_require__(134);
-
-var enumKeys = __w_pdfjs_require__(135);
-
-var isArray = __w_pdfjs_require__(111);
-
-var anObject = __w_pdfjs_require__(17);
-
-var isObject = __w_pdfjs_require__(18);
-
-var toIObject = __w_pdfjs_require__(47);
-
-var toPrimitive = __w_pdfjs_require__(23);
-
-var createDesc = __w_pdfjs_require__(24);
-
-var _create = __w_pdfjs_require__(57);
-
-var gOPNExt = __w_pdfjs_require__(136);
-
-var $GOPD = __w_pdfjs_require__(118);
-
-var $DP = __w_pdfjs_require__(16);
+/***/ }),
+/* 150 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var $keys = __w_pdfjs_require__(59);
+var fails = __w_pdfjs_require__(15);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var SPECIES = wellKnownSymbol('species');
+module.exports = function (METHOD_NAME) {
+ return !fails(function () {
+ var array = [];
+ var constructor = array.constructor = {};
+ constructor[SPECIES] = function () {
+ return { foo: 1 };
+ };
+ return array[METHOD_NAME](Boolean).foo !== 1;
+ });
+};
-var gOPD = $GOPD.f;
-var dP = $DP.f;
-var gOPN = gOPNExt.f;
-var $Symbol = global.Symbol;
-var $JSON = global.JSON;
+/***/ }),
+/* 151 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var _stringify = $JSON && $JSON.stringify;
+"use strict";
+var $ = __w_pdfjs_require__(11);
+var global = __w_pdfjs_require__(12);
+var IS_PURE = __w_pdfjs_require__(33);
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var NATIVE_SYMBOL = __w_pdfjs_require__(56);
+var fails = __w_pdfjs_require__(15);
+var has = __w_pdfjs_require__(24);
+var isArray = __w_pdfjs_require__(141);
+var isObject = __w_pdfjs_require__(23);
+var anObject = __w_pdfjs_require__(29);
+var toObject = __w_pdfjs_require__(79);
+var toIndexedObject = __w_pdfjs_require__(18);
+var toPrimitive = __w_pdfjs_require__(22);
+var createPropertyDescriptor = __w_pdfjs_require__(17);
+var nativeObjectCreate = __w_pdfjs_require__(68);
+var objectKeys = __w_pdfjs_require__(70);
+var getOwnPropertyNamesModule = __w_pdfjs_require__(44);
+var getOwnPropertyNamesExternal = __w_pdfjs_require__(152);
+var getOwnPropertySymbolsModule = __w_pdfjs_require__(51);
+var getOwnPropertyDescriptorModule = __w_pdfjs_require__(13);
+var definePropertyModule = __w_pdfjs_require__(28);
+var propertyIsEnumerableModule = __w_pdfjs_require__(16);
+var hide = __w_pdfjs_require__(27);
+var redefine = __w_pdfjs_require__(30);
+var shared = __w_pdfjs_require__(31);
+var sharedKey = __w_pdfjs_require__(37);
+var hiddenKeys = __w_pdfjs_require__(39);
+var uid = __w_pdfjs_require__(38);
+var wellKnownSymbol = __w_pdfjs_require__(55);
+var wrappedWellKnownSymbolModule = __w_pdfjs_require__(153);
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+var setToStringTag = __w_pdfjs_require__(81);
+var InternalStateModule = __w_pdfjs_require__(35);
+var $forEach = __w_pdfjs_require__(139).forEach;
+var HIDDEN = sharedKey('hidden');
+var SYMBOL = 'Symbol';
var PROTOTYPE = 'prototype';
-var HIDDEN = wks('_hidden');
-var TO_PRIMITIVE = wks('toPrimitive');
-var isEnum = {}.propertyIsEnumerable;
-var SymbolRegistry = shared('symbol-registry');
+var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
+var setInternalState = InternalStateModule.set;
+var getInternalState = InternalStateModule.getterFor(SYMBOL);
+var ObjectPrototype = Object[PROTOTYPE];
+var $Symbol = global.Symbol;
+var JSON = global.JSON;
+var nativeJSONStringify = JSON && JSON.stringify;
+var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
+var nativeDefineProperty = definePropertyModule.f;
+var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
+var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
var AllSymbols = shared('symbols');
-var OPSymbols = shared('op-symbols');
-var ObjectProto = Object[PROTOTYPE];
-var USE_NATIVE = typeof $Symbol == 'function';
+var ObjectPrototypeSymbols = shared('op-symbols');
+var StringToSymbolRegistry = shared('string-to-symbol-registry');
+var SymbolToStringRegistry = shared('symbol-to-string-registry');
+var WellKnownSymbolsStore = shared('wks');
var QObject = global.QObject;
-var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-var setSymbolDesc = DESCRIPTORS && $fails(function () {
- return _create(dP({}, 'a', {
- get: function get() {
- return dP(this, 'a', {
- value: 7
- }).a;
- }
- })).a != 7;
-}) ? function (it, key, D) {
- var protoDesc = gOPD(ObjectProto, key);
- if (protoDesc) delete ObjectProto[key];
- dP(it, key, D);
- if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
-} : dP;
-
-var wrap = function wrap(tag) {
- var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
-
- sym._k = tag;
- return sym;
+var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
+var setSymbolDescriptor = DESCRIPTORS && fails(function () {
+ return nativeObjectCreate(nativeDefineProperty({}, 'a', {
+ get: function () {
+ return nativeDefineProperty(this, 'a', { value: 7 }).a;
+ }
+ })).a != 7;
+}) ? function (O, P, Attributes) {
+ var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
+ if (ObjectPrototypeDescriptor)
+ delete ObjectPrototype[P];
+ nativeDefineProperty(O, P, Attributes);
+ if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
+ nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
+ }
+} : nativeDefineProperty;
+var wrap = function (tag, description) {
+ var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);
+ setInternalState(symbol, {
+ type: SYMBOL,
+ tag: tag,
+ description: description
+ });
+ if (!DESCRIPTORS)
+ symbol.description = description;
+ return symbol;
};
-
-var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {
- return _typeof(it) == 'symbol';
+var isSymbol = NATIVE_SYMBOL && typeof $Symbol.iterator == 'symbol' ? function (it) {
+ return typeof it == 'symbol';
} : function (it) {
- return it instanceof $Symbol;
+ return Object(it) instanceof $Symbol;
};
-
-var $defineProperty = function defineProperty(it, key, D) {
- if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
- anObject(it);
- key = toPrimitive(key, true);
- anObject(D);
-
- if (has(AllSymbols, key)) {
- if (!D.enumerable) {
- if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
- it[HIDDEN][key] = true;
- } else {
- if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
- D = _create(D, {
- enumerable: createDesc(0, false)
- });
- }
-
- return setSymbolDesc(it, key, D);
+var $defineProperty = function defineProperty(O, P, Attributes) {
+ if (O === ObjectPrototype)
+ $defineProperty(ObjectPrototypeSymbols, P, Attributes);
+ anObject(O);
+ var key = toPrimitive(P, true);
+ anObject(Attributes);
+ if (has(AllSymbols, key)) {
+ if (!Attributes.enumerable) {
+ if (!has(O, HIDDEN))
+ nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
+ O[HIDDEN][key] = true;
+ } else {
+ if (has(O, HIDDEN) && O[HIDDEN][key])
+ O[HIDDEN][key] = false;
+ Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
}
-
- return dP(it, key, D);
+ return setSymbolDescriptor(O, key, Attributes);
+ }
+ return nativeDefineProperty(O, key, Attributes);
};
-
-var $defineProperties = function defineProperties(it, P) {
- anObject(it);
- var keys = enumKeys(P = toIObject(P));
- var i = 0;
- var l = keys.length;
- var key;
-
- while (l > i) {
- $defineProperty(it, key = keys[i++], P[key]);
- }
-
- return it;
+var $defineProperties = function defineProperties(O, Properties) {
+ anObject(O);
+ var properties = toIndexedObject(Properties);
+ var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
+ $forEach(keys, function (key) {
+ if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key))
+ $defineProperty(O, key, properties[key]);
+ });
+ return O;
};
-
-var $create = function create(it, P) {
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
+var $create = function create(O, Properties) {
+ return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
};
-
-var $propertyIsEnumerable = function propertyIsEnumerable(key) {
- var E = isEnum.call(this, key = toPrimitive(key, true));
- if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+var $propertyIsEnumerable = function propertyIsEnumerable(V) {
+ var P = toPrimitive(V, true);
+ var enumerable = nativePropertyIsEnumerable.call(this, P);
+ if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P))
+ return false;
+ return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
};
-
-var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
- it = toIObject(it);
- key = toPrimitive(key, true);
- if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
- var D = gOPD(it, key);
- if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
- return D;
+var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
+ var it = toIndexedObject(O);
+ var key = toPrimitive(P, true);
+ if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key))
+ return;
+ var descriptor = nativeGetOwnPropertyDescriptor(it, key);
+ if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {
+ descriptor.enumerable = true;
+ }
+ return descriptor;
};
-
-var $getOwnPropertyNames = function getOwnPropertyNames(it) {
- var names = gOPN(toIObject(it));
- var result = [];
- var i = 0;
- var key;
-
- while (names.length > i) {
- if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
- }
-
- return result;
+var $getOwnPropertyNames = function getOwnPropertyNames(O) {
+ var names = nativeGetOwnPropertyNames(toIndexedObject(O));
+ var result = [];
+ $forEach(names, function (key) {
+ if (!has(AllSymbols, key) && !has(hiddenKeys, key))
+ result.push(key);
+ });
+ return result;
};
-
-var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
- var IS_OP = it === ObjectProto;
- var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
- var result = [];
- var i = 0;
- var key;
-
- while (names.length > i) {
- if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
- }
-
- return result;
+var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
+ var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
+ var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
+ var result = [];
+ $forEach(names, function (key) {
+ if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {
+ result.push(AllSymbols[key]);
+ }
+ });
+ return result;
};
-
-if (!USE_NATIVE) {
- $Symbol = function _Symbol() {
- if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
- var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
-
- var $set = function $set(value) {
- if (this === ObjectProto) $set.call(OPSymbols, value);
- if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
- };
-
- if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {
- configurable: true,
- set: $set
- });
- return wrap(tag);
+if (!NATIVE_SYMBOL) {
+ $Symbol = function Symbol() {
+ if (this instanceof $Symbol)
+ throw TypeError('Symbol is not a constructor');
+ var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
+ var tag = uid(description);
+ var setter = function (value) {
+ if (this === ObjectPrototype)
+ setter.call(ObjectPrototypeSymbols, value);
+ if (has(this, HIDDEN) && has(this[HIDDEN], tag))
+ this[HIDDEN][tag] = false;
+ setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
};
-
- redefine($Symbol[PROTOTYPE], 'toString', function toString() {
- return this._k;
+ if (DESCRIPTORS && USE_SETTER)
+ setSymbolDescriptor(ObjectPrototype, tag, {
+ configurable: true,
+ set: setter
+ });
+ return wrap(tag, description);
+ };
+ redefine($Symbol[PROTOTYPE], 'toString', function toString() {
+ return getInternalState(this).tag;
+ });
+ propertyIsEnumerableModule.f = $propertyIsEnumerable;
+ definePropertyModule.f = $defineProperty;
+ getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
+ getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
+ getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
+ if (DESCRIPTORS) {
+ nativeDefineProperty($Symbol[PROTOTYPE], 'description', {
+ configurable: true,
+ get: function description() {
+ return getInternalState(this).description;
+ }
});
- $GOPD.f = $getOwnPropertyDescriptor;
- $DP.f = $defineProperty;
- __w_pdfjs_require__(137).f = gOPNExt.f = $getOwnPropertyNames;
- __w_pdfjs_require__(78).f = $propertyIsEnumerable;
- __w_pdfjs_require__(77).f = $getOwnPropertySymbols;
-
- if (DESCRIPTORS && !__w_pdfjs_require__(37)) {
- redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
+ if (!IS_PURE) {
+ redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
}
-
- wksExt.f = function (name) {
- return wrap(wks(name));
- };
+ }
+ wrappedWellKnownSymbolModule.f = function (name) {
+ return wrap(wellKnownSymbol(name), name);
+ };
}
-
-$export($export.G + $export.W + $export.F * !USE_NATIVE, {
- Symbol: $Symbol
+$({
+ global: true,
+ wrap: true,
+ forced: !NATIVE_SYMBOL,
+ sham: !NATIVE_SYMBOL
+}, { Symbol: $Symbol });
+$forEach(objectKeys(WellKnownSymbolsStore), function (name) {
+ defineWellKnownSymbol(name);
});
-
-for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) {
- wks(es6Symbols[j++]);
-}
-
-for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {
- wksDefine(wellKnownSymbols[k++]);
-}
-
-$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
- 'for': function _for(key) {
- return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);
- },
- keyFor: function keyFor(sym) {
- if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
-
- for (var key in SymbolRegistry) {
- if (SymbolRegistry[key] === sym) return key;
- }
- },
- useSetter: function useSetter() {
- setter = true;
- },
- useSimple: function useSimple() {
- setter = false;
- }
+$({
+ target: SYMBOL,
+ stat: true,
+ forced: !NATIVE_SYMBOL
+}, {
+ 'for': function (key) {
+ var string = String(key);
+ if (has(StringToSymbolRegistry, string))
+ return StringToSymbolRegistry[string];
+ var symbol = $Symbol(string);
+ StringToSymbolRegistry[string] = symbol;
+ SymbolToStringRegistry[symbol] = string;
+ return symbol;
+ },
+ keyFor: function keyFor(sym) {
+ if (!isSymbol(sym))
+ throw TypeError(sym + ' is not a symbol');
+ if (has(SymbolToStringRegistry, sym))
+ return SymbolToStringRegistry[sym];
+ },
+ useSetter: function () {
+ USE_SETTER = true;
+ },
+ useSimple: function () {
+ USE_SETTER = false;
+ }
});
-$export($export.S + $export.F * !USE_NATIVE, 'Object', {
- create: $create,
- defineProperty: $defineProperty,
- defineProperties: $defineProperties,
- getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
- getOwnPropertyNames: $getOwnPropertyNames,
- getOwnPropertySymbols: $getOwnPropertySymbols
+$({
+ target: 'Object',
+ stat: true,
+ forced: !NATIVE_SYMBOL,
+ sham: !DESCRIPTORS
+}, {
+ create: $create,
+ defineProperty: $defineProperty,
+ defineProperties: $defineProperties,
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor
});
-$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
- var S = $Symbol();
- return _stringify([S]) != '[null]' || _stringify({
- a: S
- }) != '{}' || _stringify(Object(S)) != '{}';
-})), 'JSON', {
- stringify: function stringify(it) {
- var args = [it];
- var i = 1;
- var replacer, $replacer;
-
- while (arguments.length > i) {
- args.push(arguments[i++]);
- }
-
- $replacer = replacer = args[1];
- if (!isObject(replacer) && it === undefined || isSymbol(it)) return;
- if (!isArray(replacer)) replacer = function replacer(key, value) {
- if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
- if (!isSymbol(value)) return value;
- };
- args[1] = replacer;
- return _stringify.apply($JSON, args);
- }
+$({
+ target: 'Object',
+ stat: true,
+ forced: !NATIVE_SYMBOL
+}, {
+ getOwnPropertyNames: $getOwnPropertyNames,
+ getOwnPropertySymbols: $getOwnPropertySymbols
});
-$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(15)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
-setToStringTag($Symbol, 'Symbol');
-setToStringTag(Math, 'Math', true);
-setToStringTag(global.JSON, 'JSON', true);
+$({
+ target: 'Object',
+ stat: true,
+ forced: fails(function () {
+ getOwnPropertySymbolsModule.f(1);
+ })
+}, {
+ getOwnPropertySymbols: function getOwnPropertySymbols(it) {
+ return getOwnPropertySymbolsModule.f(toObject(it));
+ }
+});
+JSON && $({
+ target: 'JSON',
+ stat: true,
+ forced: !NATIVE_SYMBOL || fails(function () {
+ var symbol = $Symbol();
+ return nativeJSONStringify([symbol]) != '[null]' || nativeJSONStringify({ a: symbol }) != '{}' || nativeJSONStringify(Object(symbol)) != '{}';
+ })
+}, {
+ stringify: function stringify(it) {
+ var args = [it];
+ var index = 1;
+ var replacer, $replacer;
+ while (arguments.length > index)
+ args.push(arguments[index++]);
+ $replacer = replacer = args[1];
+ if (!isObject(replacer) && it === undefined || isSymbol(it))
+ return;
+ if (!isArray(replacer))
+ replacer = function (key, value) {
+ if (typeof $replacer == 'function')
+ value = $replacer.call(this, key, value);
+ if (!isSymbol(value))
+ return value;
+ };
+ args[1] = replacer;
+ return nativeJSONStringify.apply(JSON, args);
+ }
+});
+if (!$Symbol[PROTOTYPE][TO_PRIMITIVE])
+ hide($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
+setToStringTag($Symbol, SYMBOL);
+hiddenKeys[HIDDEN] = true;
/***/ }),
-/* 133 */
+/* 152 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-exports.f = __w_pdfjs_require__(35);
+var toIndexedObject = __w_pdfjs_require__(18);
+var nativeGetOwnPropertyNames = __w_pdfjs_require__(44).f;
+var toString = {}.toString;
+var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
+var getWindowNames = function (it) {
+ try {
+ return nativeGetOwnPropertyNames(it);
+ } catch (error) {
+ return windowNames.slice();
+ }
+};
+module.exports.f = function getOwnPropertyNames(it) {
+ return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : nativeGetOwnPropertyNames(toIndexedObject(it));
+};
/***/ }),
-/* 134 */
+/* 153 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
+exports.f = __w_pdfjs_require__(55);
+/***/ }),
+/* 154 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var global = __w_pdfjs_require__(13);
-
-var core = __w_pdfjs_require__(14);
-
-var LIBRARY = __w_pdfjs_require__(37);
-
-var wksExt = __w_pdfjs_require__(133);
+var path = __w_pdfjs_require__(43);
+var has = __w_pdfjs_require__(24);
+var wrappedWellKnownSymbolModule = __w_pdfjs_require__(153);
+var defineProperty = __w_pdfjs_require__(28).f;
+module.exports = function (NAME) {
+ var Symbol = path.Symbol || (path.Symbol = {});
+ if (!has(Symbol, NAME))
+ defineProperty(Symbol, NAME, { value: wrappedWellKnownSymbolModule.f(NAME) });
+};
-var defineProperty = __w_pdfjs_require__(16).f;
+/***/ }),
+/* 155 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-module.exports = function (name) {
- var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
- if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {
- value: wksExt.f(name)
- });
-};
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('asyncIterator');
/***/ }),
-/* 135 */
+/* 156 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
+var $ = __w_pdfjs_require__(11);
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var global = __w_pdfjs_require__(12);
+var has = __w_pdfjs_require__(24);
+var isObject = __w_pdfjs_require__(23);
+var defineProperty = __w_pdfjs_require__(28).f;
+var copyConstructorProperties = __w_pdfjs_require__(40);
+var NativeSymbol = global.Symbol;
+if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) || NativeSymbol().description !== undefined)) {
+ var EmptyStringDescriptionStore = {};
+ var SymbolWrapper = function Symbol() {
+ var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);
+ var result = this instanceof SymbolWrapper ? new NativeSymbol(description) : description === undefined ? NativeSymbol() : NativeSymbol(description);
+ if (description === '')
+ EmptyStringDescriptionStore[result] = true;
+ return result;
+ };
+ copyConstructorProperties(SymbolWrapper, NativeSymbol);
+ var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;
+ symbolPrototype.constructor = SymbolWrapper;
+ var symbolToString = symbolPrototype.toString;
+ var native = String(NativeSymbol('test')) == 'Symbol(test)';
+ var regexp = /^Symbol\((.*)\)[^)]+$/;
+ defineProperty(symbolPrototype, 'description', {
+ configurable: true,
+ get: function description() {
+ var symbol = isObject(this) ? this.valueOf() : this;
+ var string = symbolToString.call(symbol);
+ if (has(EmptyStringDescriptionStore, symbol))
+ return '';
+ var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');
+ return desc === '' ? undefined : desc;
+ }
+ });
+ $({
+ global: true,
+ forced: true
+ }, { Symbol: SymbolWrapper });
+}
-var getKeys = __w_pdfjs_require__(59);
-
-var gOPS = __w_pdfjs_require__(77);
+/***/ }),
+/* 157 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var pIE = __w_pdfjs_require__(78);
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('hasInstance');
-module.exports = function (it) {
- var result = getKeys(it);
- var getSymbols = gOPS.f;
+/***/ }),
+/* 158 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
- if (getSymbols) {
- var symbols = getSymbols(it);
- var isEnum = pIE.f;
- var i = 0;
- var key;
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('isConcatSpreadable');
- while (symbols.length > i) {
- if (isEnum.call(it, key = symbols[i++])) result.push(key);
- }
- }
+/***/ }),
+/* 159 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
- return result;
-};
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('iterator');
/***/ }),
-/* 136 */
+/* 160 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('match');
+/***/ }),
+/* 161 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('matchAll');
-var toIObject = __w_pdfjs_require__(47);
+/***/ }),
+/* 162 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var gOPN = __w_pdfjs_require__(137).f;
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('replace');
-var toString = {}.toString;
-var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
+/***/ }),
+/* 163 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var getWindowNames = function getWindowNames(it) {
- try {
- return gOPN(it);
- } catch (e) {
- return windowNames.slice();
- }
-};
-
-module.exports.f = function getOwnPropertyNames(it) {
- return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
-};
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('search');
/***/ }),
-/* 137 */
+/* 164 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('species');
+/***/ }),
+/* 165 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var $keys = __w_pdfjs_require__(60);
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('split');
-var hiddenKeys = __w_pdfjs_require__(62).concat('length', 'prototype');
+/***/ }),
+/* 166 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
- return $keys(O, hiddenKeys);
-};
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('toPrimitive');
/***/ }),
-/* 138 */
+/* 167 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('toStringTag');
-__w_pdfjs_require__(139);
+/***/ }),
+/* 168 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-module.exports = __w_pdfjs_require__(14).String.padStart;
+var defineWellKnownSymbol = __w_pdfjs_require__(154);
+defineWellKnownSymbol('unscopables');
/***/ }),
-/* 139 */
+/* 169 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
+var setToStringTag = __w_pdfjs_require__(81);
+setToStringTag(Math, 'Math', true);
-var $export = __w_pdfjs_require__(12);
+/***/ }),
+/* 170 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-var $pad = __w_pdfjs_require__(140);
+var global = __w_pdfjs_require__(12);
+var setToStringTag = __w_pdfjs_require__(81);
+setToStringTag(global.JSON, 'JSON', true);
-var userAgent = __w_pdfjs_require__(100);
+/***/ }),
+/* 171 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
- padStart: function padStart(maxLength) {
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
- }
-});
+__w_pdfjs_require__(172);
+var entryUnbind = __w_pdfjs_require__(58);
+module.exports = entryUnbind('String', 'padStart');
/***/ }),
-/* 140 */
+/* 172 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
+var $ = __w_pdfjs_require__(11);
+var $padStart = __w_pdfjs_require__(173).start;
+var WEBKIT_BUG = __w_pdfjs_require__(175);
+$({
+ target: 'String',
+ proto: true,
+ forced: WEBKIT_BUG
+}, {
+ padStart: function padStart(maxLength) {
+ return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
+ }
+});
-var toLength = __w_pdfjs_require__(30);
-
-var repeat = __w_pdfjs_require__(141);
-
-var defined = __w_pdfjs_require__(38);
+/***/ }),
+/* 173 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-module.exports = function (that, maxLength, fillString, left) {
- var S = String(defined(that));
+var toLength = __w_pdfjs_require__(47);
+var repeat = __w_pdfjs_require__(174);
+var requireObjectCoercible = __w_pdfjs_require__(21);
+var ceil = Math.ceil;
+var createMethod = function (IS_END) {
+ return function ($this, maxLength, fillString) {
+ var S = String(requireObjectCoercible($this));
var stringLength = S.length;
var fillStr = fillString === undefined ? ' ' : String(fillString);
var intMaxLength = toLength(maxLength);
- if (intMaxLength <= stringLength || fillStr == '') return S;
- var fillLen = intMaxLength - stringLength;
- var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
- if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
- return left ? stringFiller + S : S + stringFiller;
+ var fillLen, stringFiller;
+ if (intMaxLength <= stringLength || fillStr == '')
+ return S;
+ fillLen = intMaxLength - stringLength;
+ stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));
+ if (stringFiller.length > fillLen)
+ stringFiller = stringFiller.slice(0, fillLen);
+ return IS_END ? S + stringFiller : stringFiller + S;
+ };
+};
+module.exports = {
+ start: createMethod(false),
+ end: createMethod(true)
};
/***/ }),
-/* 141 */
+/* 174 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var toInteger = __w_pdfjs_require__(31);
-
-var defined = __w_pdfjs_require__(38);
-
-module.exports = function repeat(count) {
- var str = String(defined(this));
- var res = '';
- var n = toInteger(count);
- if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
-
- for (; n > 0; (n >>>= 1) && (str += str)) {
- if (n & 1) res += str;
- }
-
- return res;
+var toInteger = __w_pdfjs_require__(48);
+var requireObjectCoercible = __w_pdfjs_require__(21);
+module.exports = ''.repeat || function repeat(count) {
+ var str = String(requireObjectCoercible(this));
+ var result = '';
+ var n = toInteger(count);
+ if (n < 0 || n == Infinity)
+ throw RangeError('Wrong number of repetitions');
+ for (; n > 0; (n >>>= 1) && (str += str))
+ if (n & 1)
+ result += str;
+ return result;
};
/***/ }),
-/* 142 */
+/* 175 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
+var userAgent = __w_pdfjs_require__(118);
+module.exports = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
+/***/ }),
+/* 176 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
-__w_pdfjs_require__(143);
-
-module.exports = __w_pdfjs_require__(14).String.padEnd;
+__w_pdfjs_require__(177);
+var entryUnbind = __w_pdfjs_require__(58);
+module.exports = entryUnbind('String', 'padEnd');
/***/ }),
-/* 143 */
+/* 177 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
-
-var $export = __w_pdfjs_require__(12);
-
-var $pad = __w_pdfjs_require__(140);
-
-var userAgent = __w_pdfjs_require__(100);
-
-$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
- padEnd: function padEnd(maxLength) {
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
- }
+var $ = __w_pdfjs_require__(11);
+var $padEnd = __w_pdfjs_require__(173).end;
+var WEBKIT_BUG = __w_pdfjs_require__(175);
+$({
+ target: 'String',
+ proto: true,
+ forced: WEBKIT_BUG
+}, {
+ padEnd: function padEnd(maxLength) {
+ return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
+ }
});
/***/ }),
-/* 144 */
+/* 178 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-__w_pdfjs_require__(145);
-
-module.exports = __w_pdfjs_require__(14).Object.values;
+__w_pdfjs_require__(179);
+var path = __w_pdfjs_require__(43);
+module.exports = path.Object.values;
/***/ }),
-/* 145 */
+/* 179 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var $export = __w_pdfjs_require__(12);
-
-var $values = __w_pdfjs_require__(146)(false);
-
-$export($export.S, 'Object', {
- values: function values(it) {
- return $values(it);
- }
+var $ = __w_pdfjs_require__(11);
+var $values = __w_pdfjs_require__(180).values;
+$({
+ target: 'Object',
+ stat: true
+}, {
+ values: function values(O) {
+ return $values(O);
+ }
});
/***/ }),
-/* 146 */
+/* 180 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-"use strict";
-
-
-var getKeys = __w_pdfjs_require__(59);
-
-var toIObject = __w_pdfjs_require__(47);
-
-var isEnum = __w_pdfjs_require__(78).f;
-
-module.exports = function (isEntries) {
- return function (it) {
- var O = toIObject(it);
- var keys = getKeys(O);
- var length = keys.length;
- var i = 0;
- var result = [];
- var key;
-
- while (length > i) {
- if (isEnum.call(O, key = keys[i++])) {
- result.push(isEntries ? [key, O[key]] : O[key]);
- }
- }
-
- return result;
- };
+var DESCRIPTORS = __w_pdfjs_require__(14);
+var objectKeys = __w_pdfjs_require__(70);
+var toIndexedObject = __w_pdfjs_require__(18);
+var propertyIsEnumerable = __w_pdfjs_require__(16).f;
+var createMethod = function (TO_ENTRIES) {
+ return function (it) {
+ var O = toIndexedObject(it);
+ var keys = objectKeys(O);
+ var length = keys.length;
+ var i = 0;
+ var result = [];
+ var key;
+ while (length > i) {
+ key = keys[i++];
+ if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {
+ result.push(TO_ENTRIES ? [
+ key,
+ O[key]
+ ] : O[key]);
+ }
+ }
+ return result;
+ };
+};
+module.exports = {
+ entries: createMethod(true),
+ values: createMethod(false)
};
/***/ }),
-/* 147 */
+/* 181 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -6699,4472 +8054,3200 @@ module.exports = function (isEntries) {
if (isReadableStreamSupported) {
exports.ReadableStream = ReadableStream;
} else {
- exports.ReadableStream = __w_pdfjs_require__(148).ReadableStream;
+ exports.ReadableStream = __w_pdfjs_require__(182).ReadableStream;
}
}
/***/ }),
-/* 148 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
+/* 182 */
+/***/ (function(__webpack_module__, __webpack_exports__, __w_pdfjs_require__) {
"use strict";
-
-
-function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
-
-(function (e, a) {
- for (var i in a) {
- e[i] = a[i];
- }
-})(exports, function (modules) {
- var installedModules = {};
-
- function __w_pdfjs_require__(moduleId) {
- if (installedModules[moduleId]) return installedModules[moduleId].exports;
- var module = installedModules[moduleId] = {
- i: moduleId,
- l: false,
- exports: {}
+__w_pdfjs_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __w_pdfjs_require__.d(__webpack_exports__, "ByteLengthQueuingStrategy", function() { return ByteLengthQueuingStrategy; });
+/* harmony export (binding) */ __w_pdfjs_require__.d(__webpack_exports__, "CountQueuingStrategy", function() { return CountQueuingStrategy; });
+/* harmony export (binding) */ __w_pdfjs_require__.d(__webpack_exports__, "ReadableStream", function() { return ReadableStream; });
+/* harmony export (binding) */ __w_pdfjs_require__.d(__webpack_exports__, "TransformStream", function() { return TransformStream; });
+/* harmony export (binding) */ __w_pdfjs_require__.d(__webpack_exports__, "WritableStream", function() { return WritableStream; });
+var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol : function (description) {
+ return "Symbol(" + description + ")";
+};
+function noop() {
+}
+var NumberIsNaN = Number.isNaN || function (x) {
+ return x !== x;
+};
+function typeIsObject(x) {
+ return typeof x === 'object' && x !== null || typeof x === 'function';
+}
+function createArrayFromList(elements) {
+ return elements.slice();
+}
+function ArrayBufferCopy(dest, destOffset, src, srcOffset, n) {
+ new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);
+}
+function IsFiniteNonNegativeNumber(v) {
+ if (IsNonNegativeNumber(v) === false) {
+ return false;
+ }
+ if (v === Infinity) {
+ return false;
+ }
+ return true;
+}
+function IsNonNegativeNumber(v) {
+ if (typeof v !== 'number') {
+ return false;
+ }
+ if (NumberIsNaN(v)) {
+ return false;
+ }
+ if (v < 0) {
+ return false;
+ }
+ return true;
+}
+function Call(F, V, args) {
+ if (typeof F !== 'function') {
+ throw new TypeError('Argument is not a function');
+ }
+ return Function.prototype.apply.call(F, V, args);
+}
+function CreateAlgorithmFromUnderlyingMethod(underlyingObject, methodName, algoArgCount, extraArgs) {
+ var method = underlyingObject[methodName];
+ if (method !== undefined) {
+ if (typeof method !== 'function') {
+ throw new TypeError(method + " is not a method");
+ }
+ switch (algoArgCount) {
+ case 0: {
+ return function () {
+ return PromiseCall(method, underlyingObject, extraArgs);
};
- modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);
- module.l = true;
- return module.exports;
- }
-
- __w_pdfjs_require__.m = modules;
- __w_pdfjs_require__.c = installedModules;
-
- __w_pdfjs_require__.i = function (value) {
- return value;
- };
-
- __w_pdfjs_require__.d = function (exports, name, getter) {
- if (!__w_pdfjs_require__.o(exports, name)) {
- Object.defineProperty(exports, name, {
- configurable: false,
- enumerable: true,
- get: getter
- });
- }
- };
-
- __w_pdfjs_require__.n = function (module) {
- var getter = module && module.__esModule ? function getDefault() {
- return module['default'];
- } : function getModuleExports() {
- return module;
+ }
+ case 1: {
+ return function (arg) {
+ var fullArgs = [arg].concat(extraArgs);
+ return PromiseCall(method, underlyingObject, fullArgs);
};
-
- __w_pdfjs_require__.d(getter, 'a', getter);
-
- return getter;
- };
-
- __w_pdfjs_require__.o = function (object, property) {
- return Object.prototype.hasOwnProperty.call(object, property);
- };
-
- __w_pdfjs_require__.p = "";
- return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);
-}([function (module, exports, __w_pdfjs_require__) {
- "use strict";
-
- var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) {
- return _typeof2(obj);
- } : function (obj) {
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
- };
-
- var _require = __w_pdfjs_require__(1),
- assert = _require.assert;
-
- function IsPropertyKey(argument) {
- return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';
+ }
}
-
- exports.typeIsObject = function (x) {
- return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';
- };
-
- exports.createDataProperty = function (o, p, v) {
- assert(exports.typeIsObject(o));
- Object.defineProperty(o, p, {
- value: v,
- writable: true,
- enumerable: true,
- configurable: true
- });
- };
-
- exports.createArrayFromList = function (elements) {
- return elements.slice();
- };
-
- exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {
- new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);
+ }
+ return function () {
+ return Promise.resolve();
+ };
+}
+function InvokeOrNoop(O, P, args) {
+ var method = O[P];
+ if (method === undefined) {
+ return undefined;
+ }
+ return Call(method, O, args);
+}
+function PromiseCall(F, V, args) {
+ try {
+ return Promise.resolve(Call(F, V, args));
+ } catch (value) {
+ return Promise.reject(value);
+ }
+}
+function TransferArrayBuffer(O) {
+ return O;
+}
+function IsDetachedBuffer(O) {
+ return false;
+}
+function ValidateAndNormalizeHighWaterMark(highWaterMark) {
+ highWaterMark = Number(highWaterMark);
+ if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {
+ throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');
+ }
+ return highWaterMark;
+}
+function MakeSizeAlgorithmFromSizeFunction(size) {
+ if (size === undefined) {
+ return function () {
+ return 1;
};
-
- exports.CreateIterResultObject = function (value, done) {
- assert(typeof done === 'boolean');
- var obj = {};
- Object.defineProperty(obj, 'value', {
- value: value,
- enumerable: true,
- writable: true,
- configurable: true
- });
- Object.defineProperty(obj, 'done', {
- value: done,
- enumerable: true,
- writable: true,
- configurable: true
- });
- return obj;
+ }
+ if (typeof size !== 'function') {
+ throw new TypeError('size property of a queuing strategy must be a function');
+ }
+ return function (chunk) {
+ return size(chunk);
+ };
+}
+var QUEUE_MAX_ARRAY_SIZE = 16384;
+var SimpleQueue = function () {
+ function SimpleQueue() {
+ this._cursor = 0;
+ this._size = 0;
+ this._front = {
+ _elements: [],
+ _next: undefined
};
-
- exports.IsFiniteNonNegativeNumber = function (v) {
- if (Number.isNaN(v)) {
- return false;
- }
-
- if (v === Infinity) {
- return false;
- }
-
- if (v < 0) {
- return false;
+ this._back = this._front;
+ this._cursor = 0;
+ this._size = 0;
+ }
+ Object.defineProperty(SimpleQueue.prototype, "length", {
+ get: function () {
+ return this._size;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SimpleQueue.prototype.push = function (element) {
+ var oldBack = this._back;
+ var newBack = oldBack;
+ if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {
+ newBack = {
+ _elements: [],
+ _next: undefined
+ };
+ }
+ oldBack._elements.push(element);
+ if (newBack !== oldBack) {
+ this._back = newBack;
+ oldBack._next = newBack;
+ }
+ ++this._size;
+ };
+ SimpleQueue.prototype.shift = function () {
+ var oldFront = this._front;
+ var newFront = oldFront;
+ var oldCursor = this._cursor;
+ var newCursor = oldCursor + 1;
+ var elements = oldFront._elements;
+ var element = elements[oldCursor];
+ if (newCursor === QUEUE_MAX_ARRAY_SIZE) {
+ newFront = oldFront._next;
+ newCursor = 0;
+ }
+ --this._size;
+ this._cursor = newCursor;
+ if (oldFront !== newFront) {
+ this._front = newFront;
+ }
+ elements[oldCursor] = undefined;
+ return element;
+ };
+ SimpleQueue.prototype.forEach = function (callback) {
+ var i = this._cursor;
+ var node = this._front;
+ var elements = node._elements;
+ while (i !== elements.length || node._next !== undefined) {
+ if (i === elements.length) {
+ node = node._next;
+ elements = node._elements;
+ i = 0;
+ if (elements.length === 0) {
+ break;
}
-
- return true;
+ }
+ callback(elements[i]);
+ ++i;
+ }
+ };
+ SimpleQueue.prototype.peek = function () {
+ var front = this._front;
+ var cursor = this._cursor;
+ return front._elements[cursor];
+ };
+ return SimpleQueue;
+}();
+function ReadableStreamCreateReadResult(value, done, forAuthorCode) {
+ var prototype = null;
+ if (forAuthorCode === true) {
+ prototype = Object.prototype;
+ }
+ var obj = Object.create(prototype);
+ obj.value = value;
+ obj.done = done;
+ return obj;
+}
+function ReadableStreamReaderGenericInitialize(reader, stream) {
+ reader._forAuthorCode = true;
+ reader._ownerReadableStream = stream;
+ stream._reader = reader;
+ if (stream._state === 'readable') {
+ defaultReaderClosedPromiseInitialize(reader);
+ } else if (stream._state === 'closed') {
+ defaultReaderClosedPromiseInitializeAsResolved(reader);
+ } else {
+ defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);
+ }
+}
+function ReadableStreamReaderGenericCancel(reader, reason) {
+ var stream = reader._ownerReadableStream;
+ return ReadableStreamCancel(stream, reason);
+}
+function ReadableStreamReaderGenericRelease(reader) {
+ if (reader._ownerReadableStream._state === 'readable') {
+ defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
+ } else {
+ defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
+ }
+ reader._ownerReadableStream._reader = undefined;
+ reader._ownerReadableStream = undefined;
+}
+function readerLockException(name) {
+ return new TypeError('Cannot ' + name + ' a stream using a released reader');
+}
+function defaultReaderClosedPromiseInitialize(reader) {
+ reader._closedPromise = new Promise(function (resolve, reject) {
+ reader._closedPromise_resolve = resolve;
+ reader._closedPromise_reject = reject;
+ });
+}
+function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {
+ defaultReaderClosedPromiseInitialize(reader);
+ defaultReaderClosedPromiseReject(reader, reason);
+}
+function defaultReaderClosedPromiseInitializeAsResolved(reader) {
+ defaultReaderClosedPromiseInitialize(reader);
+ defaultReaderClosedPromiseResolve(reader);
+}
+function defaultReaderClosedPromiseReject(reader, reason) {
+ reader._closedPromise.catch(noop);
+ reader._closedPromise_reject(reason);
+ reader._closedPromise_resolve = undefined;
+ reader._closedPromise_reject = undefined;
+}
+function defaultReaderClosedPromiseResetToRejected(reader, reason) {
+ defaultReaderClosedPromiseInitializeAsRejected(reader, reason);
+}
+function defaultReaderClosedPromiseResolve(reader) {
+ reader._closedPromise_resolve(undefined);
+ reader._closedPromise_resolve = undefined;
+ reader._closedPromise_reject = undefined;
+}
+var CancelSteps = SymbolPolyfill('[[CancelSteps]]');
+var PullSteps = SymbolPolyfill('[[PullSteps]]');
+function AcquireReadableStreamDefaultReader(stream, forAuthorCode) {
+ if (forAuthorCode === void 0) {
+ forAuthorCode = false;
+ }
+ var reader = new ReadableStreamDefaultReader(stream);
+ reader._forAuthorCode = forAuthorCode;
+ return reader;
+}
+function ReadableStreamAddReadRequest(stream) {
+ var promise = new Promise(function (resolve, reject) {
+ var readRequest = {
+ _resolve: resolve,
+ _reject: reject
};
-
- function Call(F, V, args) {
- if (typeof F !== 'function') {
- throw new TypeError('Argument is not a function');
- }
-
- return Function.prototype.apply.call(F, V, args);
+ stream._reader._readRequests.push(readRequest);
+ });
+ return promise;
+}
+function ReadableStreamFulfillReadRequest(stream, chunk, done) {
+ var reader = stream._reader;
+ var readRequest = reader._readRequests.shift();
+ readRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));
+}
+function ReadableStreamGetNumReadRequests(stream) {
+ return stream._reader._readRequests.length;
+}
+function ReadableStreamHasDefaultReader(stream) {
+ var reader = stream._reader;
+ if (reader === undefined) {
+ return false;
+ }
+ if (!IsReadableStreamDefaultReader(reader)) {
+ return false;
+ }
+ return true;
+}
+var ReadableStreamDefaultReader = function () {
+ function ReadableStreamDefaultReader(stream) {
+ if (IsReadableStream(stream) === false) {
+ throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');
}
-
- exports.InvokeOrNoop = function (O, P, args) {
- assert(O !== undefined);
- assert(IsPropertyKey(P));
- assert(Array.isArray(args));
- var method = O[P];
-
- if (method === undefined) {
- return undefined;
- }
-
- return Call(method, O, args);
- };
-
- exports.PromiseInvokeOrNoop = function (O, P, args) {
- assert(O !== undefined);
- assert(IsPropertyKey(P));
- assert(Array.isArray(args));
-
- try {
- return Promise.resolve(exports.InvokeOrNoop(O, P, args));
- } catch (returnValueE) {
- return Promise.reject(returnValueE);
- }
- };
-
- exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {
- assert(O !== undefined);
- assert(IsPropertyKey(P));
- assert(Array.isArray(args));
- assert(Array.isArray(argsF));
- var method = void 0;
-
- try {
- method = O[P];
- } catch (methodE) {
- return Promise.reject(methodE);
- }
-
- if (method === undefined) {
- return F.apply(null, argsF);
- }
-
- try {
- return Promise.resolve(Call(method, O, args));
- } catch (e) {
- return Promise.reject(e);
- }
- };
-
- exports.TransferArrayBuffer = function (O) {
- return O.slice();
+ if (IsReadableStreamLocked(stream) === true) {
+ throw new TypeError('This stream has already been locked for exclusive reading by another reader');
+ }
+ ReadableStreamReaderGenericInitialize(this, stream);
+ this._readRequests = new SimpleQueue();
+ }
+ Object.defineProperty(ReadableStreamDefaultReader.prototype, "closed", {
+ get: function () {
+ if (!IsReadableStreamDefaultReader(this)) {
+ return Promise.reject(defaultReaderBrandCheckException('closed'));
+ }
+ return this._closedPromise;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ReadableStreamDefaultReader.prototype.cancel = function (reason) {
+ if (!IsReadableStreamDefaultReader(this)) {
+ return Promise.reject(defaultReaderBrandCheckException('cancel'));
+ }
+ if (this._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('cancel'));
+ }
+ return ReadableStreamReaderGenericCancel(this, reason);
+ };
+ ReadableStreamDefaultReader.prototype.read = function () {
+ if (!IsReadableStreamDefaultReader(this)) {
+ return Promise.reject(defaultReaderBrandCheckException('read'));
+ }
+ if (this._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('read from'));
+ }
+ return ReadableStreamDefaultReaderRead(this);
+ };
+ ReadableStreamDefaultReader.prototype.releaseLock = function () {
+ if (!IsReadableStreamDefaultReader(this)) {
+ throw defaultReaderBrandCheckException('releaseLock');
+ }
+ if (this._ownerReadableStream === undefined) {
+ return;
+ }
+ if (this._readRequests.length > 0) {
+ throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
+ }
+ ReadableStreamReaderGenericRelease(this);
+ };
+ return ReadableStreamDefaultReader;
+}();
+function IsReadableStreamDefaultReader(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {
+ return false;
+ }
+ return true;
+}
+function ReadableStreamDefaultReaderRead(reader) {
+ var stream = reader._ownerReadableStream;
+ stream._disturbed = true;
+ if (stream._state === 'closed') {
+ return Promise.resolve(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));
+ }
+ if (stream._state === 'errored') {
+ return Promise.reject(stream._storedError);
+ }
+ return stream._readableStreamController[PullSteps]();
+}
+function defaultReaderBrandCheckException(name) {
+ return new TypeError("ReadableStreamDefaultReader.prototype." + name + " can only be used on a ReadableStreamDefaultReader");
+}
+var _a;
+var AsyncIteratorPrototype;
+if (typeof SymbolPolyfill.asyncIterator === 'symbol') {
+ AsyncIteratorPrototype = (_a = {}, _a[SymbolPolyfill.asyncIterator] = function () {
+ return this;
+ }, _a);
+ Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });
+}
+var ReadableStreamAsyncIteratorPrototype = {
+ next: function () {
+ if (IsReadableStreamAsyncIterator(this) === false) {
+ return Promise.reject(streamAsyncIteratorBrandCheckException('next'));
+ }
+ var reader = this._asyncIteratorReader;
+ if (reader._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('iterate'));
+ }
+ return ReadableStreamDefaultReaderRead(reader).then(function (result) {
+ var done = result.done;
+ if (done) {
+ ReadableStreamReaderGenericRelease(reader);
+ }
+ var value = result.value;
+ return ReadableStreamCreateReadResult(value, done, true);
+ });
+ },
+ return: function (value) {
+ if (IsReadableStreamAsyncIterator(this) === false) {
+ return Promise.reject(streamAsyncIteratorBrandCheckException('next'));
+ }
+ var reader = this._asyncIteratorReader;
+ if (reader._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('finish iterating'));
+ }
+ if (reader._readRequests.length > 0) {
+ return Promise.reject(new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'));
+ }
+ if (this._preventCancel === false) {
+ var result = ReadableStreamReaderGenericCancel(reader, value);
+ ReadableStreamReaderGenericRelease(reader);
+ return result.then(function () {
+ return ReadableStreamCreateReadResult(value, true, true);
+ });
+ }
+ ReadableStreamReaderGenericRelease(reader);
+ return Promise.resolve(ReadableStreamCreateReadResult(value, true, true));
+ }
+};
+if (AsyncIteratorPrototype !== undefined) {
+ Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);
+}
+Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'next', { enumerable: false });
+Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'return', { enumerable: false });
+function AcquireReadableStreamAsyncIterator(stream, preventCancel) {
+ if (preventCancel === void 0) {
+ preventCancel = false;
+ }
+ var reader = AcquireReadableStreamDefaultReader(stream);
+ var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);
+ iterator._asyncIteratorReader = reader;
+ iterator._preventCancel = Boolean(preventCancel);
+ return iterator;
+}
+function IsReadableStreamAsyncIterator(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorReader')) {
+ return false;
+ }
+ return true;
+}
+function streamAsyncIteratorBrandCheckException(name) {
+ return new TypeError("ReadableStreamAsyncIterator." + name + " can only be used on a ReadableSteamAsyncIterator");
+}
+var rethrowAssertionErrorRejection = noop;
+function DequeueValue(container) {
+ var pair = container._queue.shift();
+ container._queueTotalSize -= pair.size;
+ if (container._queueTotalSize < 0) {
+ container._queueTotalSize = 0;
+ }
+ return pair.value;
+}
+function EnqueueValueWithSize(container, value, size) {
+ size = Number(size);
+ if (!IsFiniteNonNegativeNumber(size)) {
+ throw new RangeError('Size must be a finite, non-NaN, non-negative number.');
+ }
+ container._queue.push({
+ value: value,
+ size: size
+ });
+ container._queueTotalSize += size;
+}
+function PeekQueueValue(container) {
+ var pair = container._queue.peek();
+ return pair.value;
+}
+function ResetQueue(container) {
+ container._queue = new SimpleQueue();
+ container._queueTotalSize = 0;
+}
+var AbortSteps = SymbolPolyfill('[[AbortSteps]]');
+var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');
+var WritableStream = function () {
+ function WritableStream(underlyingSink, strategy) {
+ if (underlyingSink === void 0) {
+ underlyingSink = {};
+ }
+ if (strategy === void 0) {
+ strategy = {};
+ }
+ InitializeWritableStream(this);
+ var size = strategy.size;
+ var highWaterMark = strategy.highWaterMark;
+ var type = underlyingSink.type;
+ if (type !== undefined) {
+ throw new RangeError('Invalid type is specified');
+ }
+ var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);
+ if (highWaterMark === undefined) {
+ highWaterMark = 1;
+ }
+ highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);
+ SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);
+ }
+ Object.defineProperty(WritableStream.prototype, "locked", {
+ get: function () {
+ if (IsWritableStream(this) === false) {
+ throw streamBrandCheckException('locked');
+ }
+ return IsWritableStreamLocked(this);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ WritableStream.prototype.abort = function (reason) {
+ if (IsWritableStream(this) === false) {
+ return Promise.reject(streamBrandCheckException('abort'));
+ }
+ if (IsWritableStreamLocked(this) === true) {
+ return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));
+ }
+ return WritableStreamAbort(this, reason);
+ };
+ WritableStream.prototype.getWriter = function () {
+ if (IsWritableStream(this) === false) {
+ throw streamBrandCheckException('getWriter');
+ }
+ return AcquireWritableStreamDefaultWriter(this);
+ };
+ return WritableStream;
+}();
+function AcquireWritableStreamDefaultWriter(stream) {
+ return new WritableStreamDefaultWriter(stream);
+}
+function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {
+ if (highWaterMark === void 0) {
+ highWaterMark = 1;
+ }
+ if (sizeAlgorithm === void 0) {
+ sizeAlgorithm = function () {
+ return 1;
};
-
- exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {
- highWaterMark = Number(highWaterMark);
-
- if (Number.isNaN(highWaterMark) || highWaterMark < 0) {
- throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');
- }
-
- return highWaterMark;
+ }
+ var stream = Object.create(WritableStream.prototype);
+ InitializeWritableStream(stream);
+ var controller = Object.create(WritableStreamDefaultController.prototype);
+ SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);
+ return stream;
+}
+function InitializeWritableStream(stream) {
+ stream._state = 'writable';
+ stream._storedError = undefined;
+ stream._writer = undefined;
+ stream._writableStreamController = undefined;
+ stream._writeRequests = new SimpleQueue();
+ stream._inFlightWriteRequest = undefined;
+ stream._closeRequest = undefined;
+ stream._inFlightCloseRequest = undefined;
+ stream._pendingAbortRequest = undefined;
+ stream._backpressure = false;
+}
+function IsWritableStream(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {
+ return false;
+ }
+ return true;
+}
+function IsWritableStreamLocked(stream) {
+ if (stream._writer === undefined) {
+ return false;
+ }
+ return true;
+}
+function WritableStreamAbort(stream, reason) {
+ var state = stream._state;
+ if (state === 'closed' || state === 'errored') {
+ return Promise.resolve(undefined);
+ }
+ if (stream._pendingAbortRequest !== undefined) {
+ return stream._pendingAbortRequest._promise;
+ }
+ var wasAlreadyErroring = false;
+ if (state === 'erroring') {
+ wasAlreadyErroring = true;
+ reason = undefined;
+ }
+ var promise = new Promise(function (resolve, reject) {
+ stream._pendingAbortRequest = {
+ _promise: undefined,
+ _resolve: resolve,
+ _reject: reject,
+ _reason: reason,
+ _wasAlreadyErroring: wasAlreadyErroring
};
-
- exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {
- if (size !== undefined && typeof size !== 'function') {
- throw new TypeError('size property of a queuing strategy must be a function');
- }
-
- highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);
- return {
- size: size,
- highWaterMark: highWaterMark
- };
+ });
+ stream._pendingAbortRequest._promise = promise;
+ if (wasAlreadyErroring === false) {
+ WritableStreamStartErroring(stream, reason);
+ }
+ return promise;
+}
+function WritableStreamAddWriteRequest(stream) {
+ var promise = new Promise(function (resolve, reject) {
+ var writeRequest = {
+ _resolve: resolve,
+ _reject: reject
};
-}, function (module, exports, __w_pdfjs_require__) {
- "use strict";
-
- function rethrowAssertionErrorRejection(e) {
- if (e && e.constructor === AssertionError) {
- setTimeout(function () {
- throw e;
- }, 0);
- }
+ stream._writeRequests.push(writeRequest);
+ });
+ return promise;
+}
+function WritableStreamDealWithRejection(stream, error) {
+ var state = stream._state;
+ if (state === 'writable') {
+ WritableStreamStartErroring(stream, error);
+ return;
+ }
+ WritableStreamFinishErroring(stream);
+}
+function WritableStreamStartErroring(stream, reason) {
+ var controller = stream._writableStreamController;
+ stream._state = 'erroring';
+ stream._storedError = reason;
+ var writer = stream._writer;
+ if (writer !== undefined) {
+ WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);
+ }
+ if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {
+ WritableStreamFinishErroring(stream);
+ }
+}
+function WritableStreamFinishErroring(stream) {
+ stream._state = 'errored';
+ stream._writableStreamController[ErrorSteps]();
+ var storedError = stream._storedError;
+ stream._writeRequests.forEach(function (writeRequest) {
+ writeRequest._reject(storedError);
+ });
+ stream._writeRequests = new SimpleQueue();
+ if (stream._pendingAbortRequest === undefined) {
+ WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
+ return;
+ }
+ var abortRequest = stream._pendingAbortRequest;
+ stream._pendingAbortRequest = undefined;
+ if (abortRequest._wasAlreadyErroring === true) {
+ abortRequest._reject(storedError);
+ WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
+ return;
+ }
+ var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);
+ promise.then(function () {
+ abortRequest._resolve();
+ WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
+ }, function (reason) {
+ abortRequest._reject(reason);
+ WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
+ });
+}
+function WritableStreamFinishInFlightWrite(stream) {
+ stream._inFlightWriteRequest._resolve(undefined);
+ stream._inFlightWriteRequest = undefined;
+}
+function WritableStreamFinishInFlightWriteWithError(stream, error) {
+ stream._inFlightWriteRequest._reject(error);
+ stream._inFlightWriteRequest = undefined;
+ WritableStreamDealWithRejection(stream, error);
+}
+function WritableStreamFinishInFlightClose(stream) {
+ stream._inFlightCloseRequest._resolve(undefined);
+ stream._inFlightCloseRequest = undefined;
+ var state = stream._state;
+ if (state === 'erroring') {
+ stream._storedError = undefined;
+ if (stream._pendingAbortRequest !== undefined) {
+ stream._pendingAbortRequest._resolve();
+ stream._pendingAbortRequest = undefined;
}
-
- function AssertionError(message) {
- this.name = 'AssertionError';
- this.message = message || '';
- this.stack = new Error().stack;
+ }
+ stream._state = 'closed';
+ var writer = stream._writer;
+ if (writer !== undefined) {
+ defaultWriterClosedPromiseResolve(writer);
+ }
+}
+function WritableStreamFinishInFlightCloseWithError(stream, error) {
+ stream._inFlightCloseRequest._reject(error);
+ stream._inFlightCloseRequest = undefined;
+ if (stream._pendingAbortRequest !== undefined) {
+ stream._pendingAbortRequest._reject(error);
+ stream._pendingAbortRequest = undefined;
+ }
+ WritableStreamDealWithRejection(stream, error);
+}
+function WritableStreamCloseQueuedOrInFlight(stream) {
+ if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {
+ return false;
+ }
+ return true;
+}
+function WritableStreamHasOperationMarkedInFlight(stream) {
+ if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {
+ return false;
+ }
+ return true;
+}
+function WritableStreamMarkCloseRequestInFlight(stream) {
+ stream._inFlightCloseRequest = stream._closeRequest;
+ stream._closeRequest = undefined;
+}
+function WritableStreamMarkFirstWriteRequestInFlight(stream) {
+ stream._inFlightWriteRequest = stream._writeRequests.shift();
+}
+function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {
+ if (stream._closeRequest !== undefined) {
+ stream._closeRequest._reject(stream._storedError);
+ stream._closeRequest = undefined;
+ }
+ var writer = stream._writer;
+ if (writer !== undefined) {
+ defaultWriterClosedPromiseReject(writer, stream._storedError);
+ }
+}
+function WritableStreamUpdateBackpressure(stream, backpressure) {
+ var writer = stream._writer;
+ if (writer !== undefined && backpressure !== stream._backpressure) {
+ if (backpressure === true) {
+ defaultWriterReadyPromiseReset(writer);
+ } else {
+ defaultWriterReadyPromiseResolve(writer);
}
-
- AssertionError.prototype = Object.create(Error.prototype);
- AssertionError.prototype.constructor = AssertionError;
-
- function assert(value, message) {
- if (!value) {
- throw new AssertionError(message);
- }
+ }
+ stream._backpressure = backpressure;
+}
+var WritableStreamDefaultWriter = function () {
+ function WritableStreamDefaultWriter(stream) {
+ if (IsWritableStream(stream) === false) {
+ throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');
+ }
+ if (IsWritableStreamLocked(stream) === true) {
+ throw new TypeError('This stream has already been locked for exclusive writing by another writer');
+ }
+ this._ownerWritableStream = stream;
+ stream._writer = this;
+ var state = stream._state;
+ if (state === 'writable') {
+ if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {
+ defaultWriterReadyPromiseInitialize(this);
+ } else {
+ defaultWriterReadyPromiseInitializeAsResolved(this);
+ }
+ defaultWriterClosedPromiseInitialize(this);
+ } else if (state === 'erroring') {
+ defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);
+ defaultWriterClosedPromiseInitialize(this);
+ } else if (state === 'closed') {
+ defaultWriterReadyPromiseInitializeAsResolved(this);
+ defaultWriterClosedPromiseInitializeAsResolved(this);
+ } else {
+ var storedError = stream._storedError;
+ defaultWriterReadyPromiseInitializeAsRejected(this, storedError);
+ defaultWriterClosedPromiseInitializeAsRejected(this, storedError);
}
-
- module.exports = {
- rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,
- AssertionError: AssertionError,
- assert: assert
+ }
+ Object.defineProperty(WritableStreamDefaultWriter.prototype, "closed", {
+ get: function () {
+ if (IsWritableStreamDefaultWriter(this) === false) {
+ return Promise.reject(defaultWriterBrandCheckException('closed'));
+ }
+ return this._closedPromise;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(WritableStreamDefaultWriter.prototype, "desiredSize", {
+ get: function () {
+ if (IsWritableStreamDefaultWriter(this) === false) {
+ throw defaultWriterBrandCheckException('desiredSize');
+ }
+ if (this._ownerWritableStream === undefined) {
+ throw defaultWriterLockException('desiredSize');
+ }
+ return WritableStreamDefaultWriterGetDesiredSize(this);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(WritableStreamDefaultWriter.prototype, "ready", {
+ get: function () {
+ if (IsWritableStreamDefaultWriter(this) === false) {
+ return Promise.reject(defaultWriterBrandCheckException('ready'));
+ }
+ return this._readyPromise;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ WritableStreamDefaultWriter.prototype.abort = function (reason) {
+ if (IsWritableStreamDefaultWriter(this) === false) {
+ return Promise.reject(defaultWriterBrandCheckException('abort'));
+ }
+ if (this._ownerWritableStream === undefined) {
+ return Promise.reject(defaultWriterLockException('abort'));
+ }
+ return WritableStreamDefaultWriterAbort(this, reason);
+ };
+ WritableStreamDefaultWriter.prototype.close = function () {
+ if (IsWritableStreamDefaultWriter(this) === false) {
+ return Promise.reject(defaultWriterBrandCheckException('close'));
+ }
+ var stream = this._ownerWritableStream;
+ if (stream === undefined) {
+ return Promise.reject(defaultWriterLockException('close'));
+ }
+ if (WritableStreamCloseQueuedOrInFlight(stream) === true) {
+ return Promise.reject(new TypeError('cannot close an already-closing stream'));
+ }
+ return WritableStreamDefaultWriterClose(this);
+ };
+ WritableStreamDefaultWriter.prototype.releaseLock = function () {
+ if (IsWritableStreamDefaultWriter(this) === false) {
+ throw defaultWriterBrandCheckException('releaseLock');
+ }
+ var stream = this._ownerWritableStream;
+ if (stream === undefined) {
+ return;
+ }
+ WritableStreamDefaultWriterRelease(this);
+ };
+ WritableStreamDefaultWriter.prototype.write = function (chunk) {
+ if (IsWritableStreamDefaultWriter(this) === false) {
+ return Promise.reject(defaultWriterBrandCheckException('write'));
+ }
+ if (this._ownerWritableStream === undefined) {
+ return Promise.reject(defaultWriterLockException('write to'));
+ }
+ return WritableStreamDefaultWriterWrite(this, chunk);
+ };
+ return WritableStreamDefaultWriter;
+}();
+function IsWritableStreamDefaultWriter(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {
+ return false;
+ }
+ return true;
+}
+function WritableStreamDefaultWriterAbort(writer, reason) {
+ var stream = writer._ownerWritableStream;
+ return WritableStreamAbort(stream, reason);
+}
+function WritableStreamDefaultWriterClose(writer) {
+ var stream = writer._ownerWritableStream;
+ var state = stream._state;
+ if (state === 'closed' || state === 'errored') {
+ return Promise.reject(new TypeError("The stream (in " + state + " state) is not in the writable state and cannot be closed"));
+ }
+ var promise = new Promise(function (resolve, reject) {
+ var closeRequest = {
+ _resolve: resolve,
+ _reject: reject
};
-}, function (module, exports, __w_pdfjs_require__) {
- "use strict";
-
- var _createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
-
- return function (Constructor, protoProps, staticProps) {
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
- if (staticProps) defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
-
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
-
- var _require = __w_pdfjs_require__(0),
- InvokeOrNoop = _require.InvokeOrNoop,
- PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,
- ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,
- typeIsObject = _require.typeIsObject;
-
- var _require2 = __w_pdfjs_require__(1),
- assert = _require2.assert,
- rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;
-
- var _require3 = __w_pdfjs_require__(3),
- DequeueValue = _require3.DequeueValue,
- EnqueueValueWithSize = _require3.EnqueueValueWithSize,
- PeekQueueValue = _require3.PeekQueueValue,
- ResetQueue = _require3.ResetQueue;
-
- var WritableStream = function () {
- function WritableStream() {
- var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
- size = _ref.size,
- _ref$highWaterMark = _ref.highWaterMark,
- highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;
-
- _classCallCheck(this, WritableStream);
-
- this._state = 'writable';
- this._storedError = undefined;
- this._writer = undefined;
- this._writableStreamController = undefined;
- this._writeRequests = [];
- this._inFlightWriteRequest = undefined;
- this._closeRequest = undefined;
- this._inFlightCloseRequest = undefined;
- this._pendingAbortRequest = undefined;
- this._backpressure = false;
- var type = underlyingSink.type;
-
- if (type !== undefined) {
- throw new RangeError('Invalid type is specified');
+ stream._closeRequest = closeRequest;
+ });
+ if (stream._backpressure === true && state === 'writable') {
+ defaultWriterReadyPromiseResolve(writer);
+ }
+ WritableStreamDefaultControllerClose(stream._writableStreamController);
+ return promise;
+}
+function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {
+ var stream = writer._ownerWritableStream;
+ var state = stream._state;
+ if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
+ return Promise.resolve();
+ }
+ if (state === 'errored') {
+ return Promise.reject(stream._storedError);
+ }
+ return WritableStreamDefaultWriterClose(writer);
+}
+function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {
+ if (writer._closedPromiseState === 'pending') {
+ defaultWriterClosedPromiseReject(writer, error);
+ } else {
+ defaultWriterClosedPromiseResetToRejected(writer, error);
+ }
+}
+function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {
+ if (writer._readyPromiseState === 'pending') {
+ defaultWriterReadyPromiseReject(writer, error);
+ } else {
+ defaultWriterReadyPromiseResetToRejected(writer, error);
+ }
+}
+function WritableStreamDefaultWriterGetDesiredSize(writer) {
+ var stream = writer._ownerWritableStream;
+ var state = stream._state;
+ if (state === 'errored' || state === 'erroring') {
+ return null;
+ }
+ if (state === 'closed') {
+ return 0;
+ }
+ return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);
+}
+function WritableStreamDefaultWriterRelease(writer) {
+ var stream = writer._ownerWritableStream;
+ var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness');
+ WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);
+ WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);
+ stream._writer = undefined;
+ writer._ownerWritableStream = undefined;
+}
+function WritableStreamDefaultWriterWrite(writer, chunk) {
+ var stream = writer._ownerWritableStream;
+ var controller = stream._writableStreamController;
+ var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);
+ if (stream !== writer._ownerWritableStream) {
+ return Promise.reject(defaultWriterLockException('write to'));
+ }
+ var state = stream._state;
+ if (state === 'errored') {
+ return Promise.reject(stream._storedError);
+ }
+ if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
+ return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));
+ }
+ if (state === 'erroring') {
+ return Promise.reject(stream._storedError);
+ }
+ var promise = WritableStreamAddWriteRequest(stream);
+ WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);
+ return promise;
+}
+var WritableStreamDefaultController = function () {
+ function WritableStreamDefaultController() {
+ throw new TypeError('WritableStreamDefaultController cannot be constructed explicitly');
+ }
+ WritableStreamDefaultController.prototype.error = function (e) {
+ if (IsWritableStreamDefaultController(this) === false) {
+ throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');
+ }
+ var state = this._controlledWritableStream._state;
+ if (state !== 'writable') {
+ return;
+ }
+ WritableStreamDefaultControllerError(this, e);
+ };
+ WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {
+ var result = this._abortAlgorithm(reason);
+ WritableStreamDefaultControllerClearAlgorithms(this);
+ return result;
+ };
+ WritableStreamDefaultController.prototype[ErrorSteps] = function () {
+ ResetQueue(this);
+ };
+ return WritableStreamDefaultController;
+}();
+function IsWritableStreamDefaultController(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {
+ return false;
+ }
+ return true;
+}
+function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {
+ controller._controlledWritableStream = stream;
+ stream._writableStreamController = controller;
+ controller._queue = undefined;
+ controller._queueTotalSize = undefined;
+ ResetQueue(controller);
+ controller._started = false;
+ controller._strategySizeAlgorithm = sizeAlgorithm;
+ controller._strategyHWM = highWaterMark;
+ controller._writeAlgorithm = writeAlgorithm;
+ controller._closeAlgorithm = closeAlgorithm;
+ controller._abortAlgorithm = abortAlgorithm;
+ var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
+ WritableStreamUpdateBackpressure(stream, backpressure);
+ var startResult = startAlgorithm();
+ var startPromise = Promise.resolve(startResult);
+ startPromise.then(function () {
+ controller._started = true;
+ WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
+ }, function (r) {
+ controller._started = true;
+ WritableStreamDealWithRejection(stream, r);
+ }).catch(rethrowAssertionErrorRejection);
+}
+function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {
+ var controller = Object.create(WritableStreamDefaultController.prototype);
+ function startAlgorithm() {
+ return InvokeOrNoop(underlyingSink, 'start', [controller]);
+ }
+ var writeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'write', 1, [controller]);
+ var closeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'close', 0, []);
+ var abortAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'abort', 1, []);
+ SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);
+}
+function WritableStreamDefaultControllerClearAlgorithms(controller) {
+ controller._writeAlgorithm = undefined;
+ controller._closeAlgorithm = undefined;
+ controller._abortAlgorithm = undefined;
+ controller._strategySizeAlgorithm = undefined;
+}
+function WritableStreamDefaultControllerClose(controller) {
+ EnqueueValueWithSize(controller, 'close', 0);
+ WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
+}
+function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {
+ try {
+ return controller._strategySizeAlgorithm(chunk);
+ } catch (chunkSizeE) {
+ WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
+ return 1;
+ }
+}
+function WritableStreamDefaultControllerGetDesiredSize(controller) {
+ return controller._strategyHWM - controller._queueTotalSize;
+}
+function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {
+ var writeRecord = { chunk: chunk };
+ try {
+ EnqueueValueWithSize(controller, writeRecord, chunkSize);
+ } catch (enqueueE) {
+ WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
+ return;
+ }
+ var stream = controller._controlledWritableStream;
+ if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {
+ var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
+ WritableStreamUpdateBackpressure(stream, backpressure);
+ }
+ WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
+}
+function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {
+ var stream = controller._controlledWritableStream;
+ if (controller._started === false) {
+ return;
+ }
+ if (stream._inFlightWriteRequest !== undefined) {
+ return;
+ }
+ var state = stream._state;
+ if (state === 'erroring') {
+ WritableStreamFinishErroring(stream);
+ return;
+ }
+ if (controller._queue.length === 0) {
+ return;
+ }
+ var writeRecord = PeekQueueValue(controller);
+ if (writeRecord === 'close') {
+ WritableStreamDefaultControllerProcessClose(controller);
+ } else {
+ WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);
+ }
+}
+function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {
+ if (controller._controlledWritableStream._state === 'writable') {
+ WritableStreamDefaultControllerError(controller, error);
+ }
+}
+function WritableStreamDefaultControllerProcessClose(controller) {
+ var stream = controller._controlledWritableStream;
+ WritableStreamMarkCloseRequestInFlight(stream);
+ DequeueValue(controller);
+ var sinkClosePromise = controller._closeAlgorithm();
+ WritableStreamDefaultControllerClearAlgorithms(controller);
+ sinkClosePromise.then(function () {
+ WritableStreamFinishInFlightClose(stream);
+ }, function (reason) {
+ WritableStreamFinishInFlightCloseWithError(stream, reason);
+ }).catch(rethrowAssertionErrorRejection);
+}
+function WritableStreamDefaultControllerProcessWrite(controller, chunk) {
+ var stream = controller._controlledWritableStream;
+ WritableStreamMarkFirstWriteRequestInFlight(stream);
+ var sinkWritePromise = controller._writeAlgorithm(chunk);
+ sinkWritePromise.then(function () {
+ WritableStreamFinishInFlightWrite(stream);
+ var state = stream._state;
+ DequeueValue(controller);
+ if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {
+ var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
+ WritableStreamUpdateBackpressure(stream, backpressure);
+ }
+ WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
+ }, function (reason) {
+ if (stream._state === 'writable') {
+ WritableStreamDefaultControllerClearAlgorithms(controller);
+ }
+ WritableStreamFinishInFlightWriteWithError(stream, reason);
+ }).catch(rethrowAssertionErrorRejection);
+}
+function WritableStreamDefaultControllerGetBackpressure(controller) {
+ var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);
+ return desiredSize <= 0;
+}
+function WritableStreamDefaultControllerError(controller, error) {
+ var stream = controller._controlledWritableStream;
+ WritableStreamDefaultControllerClearAlgorithms(controller);
+ WritableStreamStartErroring(stream, error);
+}
+function streamBrandCheckException(name) {
+ return new TypeError("WritableStream.prototype." + name + " can only be used on a WritableStream");
+}
+function defaultWriterBrandCheckException(name) {
+ return new TypeError("WritableStreamDefaultWriter.prototype." + name + " can only be used on a WritableStreamDefaultWriter");
+}
+function defaultWriterLockException(name) {
+ return new TypeError('Cannot ' + name + ' a stream using a released writer');
+}
+function defaultWriterClosedPromiseInitialize(writer) {
+ writer._closedPromise = new Promise(function (resolve, reject) {
+ writer._closedPromise_resolve = resolve;
+ writer._closedPromise_reject = reject;
+ writer._closedPromiseState = 'pending';
+ });
+}
+function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {
+ defaultWriterClosedPromiseInitialize(writer);
+ defaultWriterClosedPromiseReject(writer, reason);
+}
+function defaultWriterClosedPromiseInitializeAsResolved(writer) {
+ defaultWriterClosedPromiseInitialize(writer);
+ defaultWriterClosedPromiseResolve(writer);
+}
+function defaultWriterClosedPromiseReject(writer, reason) {
+ writer._closedPromise.catch(noop);
+ writer._closedPromise_reject(reason);
+ writer._closedPromise_resolve = undefined;
+ writer._closedPromise_reject = undefined;
+ writer._closedPromiseState = 'rejected';
+}
+function defaultWriterClosedPromiseResetToRejected(writer, reason) {
+ defaultWriterClosedPromiseInitializeAsRejected(writer, reason);
+}
+function defaultWriterClosedPromiseResolve(writer) {
+ writer._closedPromise_resolve(undefined);
+ writer._closedPromise_resolve = undefined;
+ writer._closedPromise_reject = undefined;
+ writer._closedPromiseState = 'resolved';
+}
+function defaultWriterReadyPromiseInitialize(writer) {
+ writer._readyPromise = new Promise(function (resolve, reject) {
+ writer._readyPromise_resolve = resolve;
+ writer._readyPromise_reject = reject;
+ });
+ writer._readyPromiseState = 'pending';
+}
+function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {
+ defaultWriterReadyPromiseInitialize(writer);
+ defaultWriterReadyPromiseReject(writer, reason);
+}
+function defaultWriterReadyPromiseInitializeAsResolved(writer) {
+ defaultWriterReadyPromiseInitialize(writer);
+ defaultWriterReadyPromiseResolve(writer);
+}
+function defaultWriterReadyPromiseReject(writer, reason) {
+ writer._readyPromise.catch(noop);
+ writer._readyPromise_reject(reason);
+ writer._readyPromise_resolve = undefined;
+ writer._readyPromise_reject = undefined;
+ writer._readyPromiseState = 'rejected';
+}
+function defaultWriterReadyPromiseReset(writer) {
+ defaultWriterReadyPromiseInitialize(writer);
+}
+function defaultWriterReadyPromiseResetToRejected(writer, reason) {
+ defaultWriterReadyPromiseInitializeAsRejected(writer, reason);
+}
+function defaultWriterReadyPromiseResolve(writer) {
+ writer._readyPromise_resolve(undefined);
+ writer._readyPromise_resolve = undefined;
+ writer._readyPromise_reject = undefined;
+ writer._readyPromiseState = 'fulfilled';
+}
+function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {
+ var reader = AcquireReadableStreamDefaultReader(source);
+ var writer = AcquireWritableStreamDefaultWriter(dest);
+ var shuttingDown = false;
+ var currentWrite = Promise.resolve();
+ return new Promise(function (resolve, reject) {
+ var abortAlgorithm;
+ if (signal !== undefined) {
+ abortAlgorithm = function () {
+ var error = new DOMException('Aborted', 'AbortError');
+ var actions = [];
+ if (preventAbort === false) {
+ actions.push(function () {
+ if (dest._state === 'writable') {
+ return WritableStreamAbort(dest, error);
}
-
- this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);
-
- this._writableStreamController.__startSteps();
+ return Promise.resolve();
+ });
}
-
- _createClass(WritableStream, [{
- key: 'abort',
- value: function abort(reason) {
- if (IsWritableStream(this) === false) {
- return Promise.reject(streamBrandCheckException('abort'));
- }
-
- if (IsWritableStreamLocked(this) === true) {
- return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));
- }
-
- return WritableStreamAbort(this, reason);
+ if (preventCancel === false) {
+ actions.push(function () {
+ if (source._state === 'readable') {
+ return ReadableStreamCancel(source, error);
}
- }, {
- key: 'getWriter',
- value: function getWriter() {
- if (IsWritableStream(this) === false) {
- throw streamBrandCheckException('getWriter');
- }
-
- return AcquireWritableStreamDefaultWriter(this);
- }
- }, {
- key: 'locked',
- get: function get() {
- if (IsWritableStream(this) === false) {
- throw streamBrandCheckException('locked');
- }
-
- return IsWritableStreamLocked(this);
- }
- }]);
-
- return WritableStream;
- }();
-
- module.exports = {
- AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,
- IsWritableStream: IsWritableStream,
- IsWritableStreamLocked: IsWritableStreamLocked,
- WritableStream: WritableStream,
- WritableStreamAbort: WritableStreamAbort,
- WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,
- WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,
- WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,
- WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,
- WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight
- };
-
- function AcquireWritableStreamDefaultWriter(stream) {
- return new WritableStreamDefaultWriter(stream);
- }
-
- function IsWritableStream(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {
- return false;
- }
-
- return true;
- }
-
- function IsWritableStreamLocked(stream) {
- assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');
-
- if (stream._writer === undefined) {
- return false;
- }
-
- return true;
- }
-
- function WritableStreamAbort(stream, reason) {
- var state = stream._state;
-
- if (state === 'closed') {
- return Promise.resolve(undefined);
- }
-
- if (state === 'errored') {
- return Promise.reject(stream._storedError);
- }
-
- var error = new TypeError('Requested to abort');
-
- if (stream._pendingAbortRequest !== undefined) {
- return Promise.reject(error);
- }
-
- assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');
- var wasAlreadyErroring = false;
-
- if (state === 'erroring') {
- wasAlreadyErroring = true;
- reason = undefined;
- }
-
- var promise = new Promise(function (resolve, reject) {
- stream._pendingAbortRequest = {
- _resolve: resolve,
- _reject: reject,
- _reason: reason,
- _wasAlreadyErroring: wasAlreadyErroring
- };
- });
-
- if (wasAlreadyErroring === false) {
- WritableStreamStartErroring(stream, error);
- }
-
- return promise;
- }
-
- function WritableStreamAddWriteRequest(stream) {
- assert(IsWritableStreamLocked(stream) === true);
- assert(stream._state === 'writable');
- var promise = new Promise(function (resolve, reject) {
- var writeRequest = {
- _resolve: resolve,
- _reject: reject
- };
-
- stream._writeRequests.push(writeRequest);
+ return Promise.resolve();
+ });
+ }
+ shutdownWithAction(function () {
+ return Promise.all(actions.map(function (action) {
+ return action();
+ }));
+ }, true, error);
+ };
+ if (signal.aborted === true) {
+ abortAlgorithm();
+ return;
+ }
+ signal.addEventListener('abort', abortAlgorithm);
+ }
+ function pipeLoop() {
+ return new Promise(function (resolveLoop, rejectLoop) {
+ function next(done) {
+ if (done) {
+ resolveLoop();
+ } else {
+ pipeStep().then(next, rejectLoop);
+ }
+ }
+ next(false);
+ });
+ }
+ function pipeStep() {
+ if (shuttingDown === true) {
+ return Promise.resolve(true);
+ }
+ return writer._readyPromise.then(function () {
+ return ReadableStreamDefaultReaderRead(reader).then(function (_a) {
+ var value = _a.value, done = _a.done;
+ if (done === true) {
+ return true;
+ }
+ currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(noop);
+ return false;
});
- return promise;
- }
-
- function WritableStreamDealWithRejection(stream, error) {
- var state = stream._state;
-
- if (state === 'writable') {
- WritableStreamStartErroring(stream, error);
- return;
- }
-
- assert(state === 'erroring');
- WritableStreamFinishErroring(stream);
- }
-
- function WritableStreamStartErroring(stream, reason) {
- assert(stream._storedError === undefined, 'stream._storedError === undefined');
- assert(stream._state === 'writable', 'state must be writable');
- var controller = stream._writableStreamController;
- assert(controller !== undefined, 'controller must not be undefined');
- stream._state = 'erroring';
- stream._storedError = reason;
- var writer = stream._writer;
-
- if (writer !== undefined) {
- WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);
- }
-
- if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {
- WritableStreamFinishErroring(stream);
- }
- }
-
- function WritableStreamFinishErroring(stream) {
- assert(stream._state === 'erroring', 'stream._state === erroring');
- assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');
- stream._state = 'errored';
-
- stream._writableStreamController.__errorSteps();
-
- var storedError = stream._storedError;
-
- for (var i = 0; i < stream._writeRequests.length; i++) {
- var writeRequest = stream._writeRequests[i];
-
- writeRequest._reject(storedError);
- }
-
- stream._writeRequests = [];
-
- if (stream._pendingAbortRequest === undefined) {
- WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
- return;
- }
-
- var abortRequest = stream._pendingAbortRequest;
- stream._pendingAbortRequest = undefined;
-
- if (abortRequest._wasAlreadyErroring === true) {
- abortRequest._reject(storedError);
-
- WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
- return;
- }
-
- var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);
-
- promise.then(function () {
- abortRequest._resolve();
-
- WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
- }, function (reason) {
- abortRequest._reject(reason);
-
- WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
+ });
+ }
+ isOrBecomesErrored(source, reader._closedPromise, function (storedError) {
+ if (preventAbort === false) {
+ shutdownWithAction(function () {
+ return WritableStreamAbort(dest, storedError);
+ }, true, storedError);
+ } else {
+ shutdown(true, storedError);
+ }
+ });
+ isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {
+ if (preventCancel === false) {
+ shutdownWithAction(function () {
+ return ReadableStreamCancel(source, storedError);
+ }, true, storedError);
+ } else {
+ shutdown(true, storedError);
+ }
+ });
+ isOrBecomesClosed(source, reader._closedPromise, function () {
+ if (preventClose === false) {
+ shutdownWithAction(function () {
+ return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);
});
+ } else {
+ shutdown();
+ }
+ });
+ if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {
+ var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');
+ if (preventCancel === false) {
+ shutdownWithAction(function () {
+ return ReadableStreamCancel(source, destClosed_1);
+ }, true, destClosed_1);
+ } else {
+ shutdown(true, destClosed_1);
+ }
}
-
- function WritableStreamFinishInFlightWrite(stream) {
- assert(stream._inFlightWriteRequest !== undefined);
-
- stream._inFlightWriteRequest._resolve(undefined);
-
- stream._inFlightWriteRequest = undefined;
- }
-
- function WritableStreamFinishInFlightWriteWithError(stream, error) {
- assert(stream._inFlightWriteRequest !== undefined);
-
- stream._inFlightWriteRequest._reject(error);
-
- stream._inFlightWriteRequest = undefined;
- assert(stream._state === 'writable' || stream._state === 'erroring');
- WritableStreamDealWithRejection(stream, error);
- }
-
- function WritableStreamFinishInFlightClose(stream) {
- assert(stream._inFlightCloseRequest !== undefined);
-
- stream._inFlightCloseRequest._resolve(undefined);
-
- stream._inFlightCloseRequest = undefined;
- var state = stream._state;
- assert(state === 'writable' || state === 'erroring');
-
- if (state === 'erroring') {
- stream._storedError = undefined;
-
- if (stream._pendingAbortRequest !== undefined) {
- stream._pendingAbortRequest._resolve();
-
- stream._pendingAbortRequest = undefined;
- }
- }
-
- stream._state = 'closed';
- var writer = stream._writer;
-
- if (writer !== undefined) {
- defaultWriterClosedPromiseResolve(writer);
- }
-
- assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');
- assert(stream._storedError === undefined, 'stream._storedError === undefined');
- }
-
- function WritableStreamFinishInFlightCloseWithError(stream, error) {
- assert(stream._inFlightCloseRequest !== undefined);
-
- stream._inFlightCloseRequest._reject(error);
-
- stream._inFlightCloseRequest = undefined;
- assert(stream._state === 'writable' || stream._state === 'erroring');
-
- if (stream._pendingAbortRequest !== undefined) {
- stream._pendingAbortRequest._reject(error);
-
- stream._pendingAbortRequest = undefined;
- }
-
- WritableStreamDealWithRejection(stream, error);
- }
-
- function WritableStreamCloseQueuedOrInFlight(stream) {
- if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {
- return false;
- }
-
- return true;
- }
-
- function WritableStreamHasOperationMarkedInFlight(stream) {
- if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {
- return false;
- }
-
- return true;
- }
-
- function WritableStreamMarkCloseRequestInFlight(stream) {
- assert(stream._inFlightCloseRequest === undefined);
- assert(stream._closeRequest !== undefined);
- stream._inFlightCloseRequest = stream._closeRequest;
- stream._closeRequest = undefined;
- }
-
- function WritableStreamMarkFirstWriteRequestInFlight(stream) {
- assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');
- assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');
- stream._inFlightWriteRequest = stream._writeRequests.shift();
- }
-
- function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {
- assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`');
-
- if (stream._closeRequest !== undefined) {
- assert(stream._inFlightCloseRequest === undefined);
-
- stream._closeRequest._reject(stream._storedError);
-
- stream._closeRequest = undefined;
- }
-
- var writer = stream._writer;
-
- if (writer !== undefined) {
- defaultWriterClosedPromiseReject(writer, stream._storedError);
-
- writer._closedPromise.catch(function () {});
- }
- }
-
- function WritableStreamUpdateBackpressure(stream, backpressure) {
- assert(stream._state === 'writable');
- assert(WritableStreamCloseQueuedOrInFlight(stream) === false);
- var writer = stream._writer;
-
- if (writer !== undefined && backpressure !== stream._backpressure) {
- if (backpressure === true) {
- defaultWriterReadyPromiseReset(writer);
- } else {
- assert(backpressure === false);
- defaultWriterReadyPromiseResolve(writer);
- }
- }
-
- stream._backpressure = backpressure;
- }
-
- var WritableStreamDefaultWriter = function () {
- function WritableStreamDefaultWriter(stream) {
- _classCallCheck(this, WritableStreamDefaultWriter);
-
- if (IsWritableStream(stream) === false) {
- throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');
- }
-
- if (IsWritableStreamLocked(stream) === true) {
- throw new TypeError('This stream has already been locked for exclusive writing by another writer');
- }
-
- this._ownerWritableStream = stream;
- stream._writer = this;
- var state = stream._state;
-
- if (state === 'writable') {
- if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {
- defaultWriterReadyPromiseInitialize(this);
- } else {
- defaultWriterReadyPromiseInitializeAsResolved(this);
- }
-
- defaultWriterClosedPromiseInitialize(this);
- } else if (state === 'erroring') {
- defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);
-
- this._readyPromise.catch(function () {});
-
- defaultWriterClosedPromiseInitialize(this);
- } else if (state === 'closed') {
- defaultWriterReadyPromiseInitializeAsResolved(this);
- defaultWriterClosedPromiseInitializeAsResolved(this);
- } else {
- assert(state === 'errored', 'state must be errored');
- var storedError = stream._storedError;
- defaultWriterReadyPromiseInitializeAsRejected(this, storedError);
-
- this._readyPromise.catch(function () {});
-
- defaultWriterClosedPromiseInitializeAsRejected(this, storedError);
-
- this._closedPromise.catch(function () {});
- }
- }
-
- _createClass(WritableStreamDefaultWriter, [{
- key: 'abort',
- value: function abort(reason) {
- if (IsWritableStreamDefaultWriter(this) === false) {
- return Promise.reject(defaultWriterBrandCheckException('abort'));
- }
-
- if (this._ownerWritableStream === undefined) {
- return Promise.reject(defaultWriterLockException('abort'));
- }
-
- return WritableStreamDefaultWriterAbort(this, reason);
- }
- }, {
- key: 'close',
- value: function close() {
- if (IsWritableStreamDefaultWriter(this) === false) {
- return Promise.reject(defaultWriterBrandCheckException('close'));
- }
-
- var stream = this._ownerWritableStream;
-
- if (stream === undefined) {
- return Promise.reject(defaultWriterLockException('close'));
- }
-
- if (WritableStreamCloseQueuedOrInFlight(stream) === true) {
- return Promise.reject(new TypeError('cannot close an already-closing stream'));
- }
-
- return WritableStreamDefaultWriterClose(this);
- }
- }, {
- key: 'releaseLock',
- value: function releaseLock() {
- if (IsWritableStreamDefaultWriter(this) === false) {
- throw defaultWriterBrandCheckException('releaseLock');
- }
-
- var stream = this._ownerWritableStream;
-
- if (stream === undefined) {
- return;
- }
-
- assert(stream._writer !== undefined);
- WritableStreamDefaultWriterRelease(this);
- }
- }, {
- key: 'write',
- value: function write(chunk) {
- if (IsWritableStreamDefaultWriter(this) === false) {
- return Promise.reject(defaultWriterBrandCheckException('write'));
- }
-
- if (this._ownerWritableStream === undefined) {
- return Promise.reject(defaultWriterLockException('write to'));
- }
-
- return WritableStreamDefaultWriterWrite(this, chunk);
- }
- }, {
- key: 'closed',
- get: function get() {
- if (IsWritableStreamDefaultWriter(this) === false) {
- return Promise.reject(defaultWriterBrandCheckException('closed'));
- }
-
- return this._closedPromise;
- }
- }, {
- key: 'desiredSize',
- get: function get() {
- if (IsWritableStreamDefaultWriter(this) === false) {
- throw defaultWriterBrandCheckException('desiredSize');
- }
-
- if (this._ownerWritableStream === undefined) {
- throw defaultWriterLockException('desiredSize');
- }
-
- return WritableStreamDefaultWriterGetDesiredSize(this);
- }
- }, {
- key: 'ready',
- get: function get() {
- if (IsWritableStreamDefaultWriter(this) === false) {
- return Promise.reject(defaultWriterBrandCheckException('ready'));
- }
-
- return this._readyPromise;
- }
- }]);
-
- return WritableStreamDefaultWriter;
- }();
-
- function IsWritableStreamDefaultWriter(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {
- return false;
- }
-
- return true;
- }
-
- function WritableStreamDefaultWriterAbort(writer, reason) {
- var stream = writer._ownerWritableStream;
- assert(stream !== undefined);
- return WritableStreamAbort(stream, reason);
- }
-
- function WritableStreamDefaultWriterClose(writer) {
- var stream = writer._ownerWritableStream;
- assert(stream !== undefined);
- var state = stream._state;
-
- if (state === 'closed' || state === 'errored') {
- return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));
- }
-
- assert(state === 'writable' || state === 'erroring');
- assert(WritableStreamCloseQueuedOrInFlight(stream) === false);
- var promise = new Promise(function (resolve, reject) {
- var closeRequest = {
- _resolve: resolve,
- _reject: reject
- };
- stream._closeRequest = closeRequest;
- });
-
- if (stream._backpressure === true && state === 'writable') {
- defaultWriterReadyPromiseResolve(writer);
- }
-
- WritableStreamDefaultControllerClose(stream._writableStreamController);
- return promise;
+ pipeLoop().catch(rethrowAssertionErrorRejection);
+ function waitForWritesToFinish() {
+ var oldCurrentWrite = currentWrite;
+ return currentWrite.then(function () {
+ return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;
+ });
+ }
+ function isOrBecomesErrored(stream, promise, action) {
+ if (stream._state === 'errored') {
+ action(stream._storedError);
+ } else {
+ promise.catch(action).catch(rethrowAssertionErrorRejection);
+ }
}
-
- function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {
- var stream = writer._ownerWritableStream;
- assert(stream !== undefined);
- var state = stream._state;
-
- if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
- return Promise.resolve();
- }
-
- if (state === 'errored') {
- return Promise.reject(stream._storedError);
- }
-
- assert(state === 'writable' || state === 'erroring');
- return WritableStreamDefaultWriterClose(writer);
+ function isOrBecomesClosed(stream, promise, action) {
+ if (stream._state === 'closed') {
+ action();
+ } else {
+ promise.then(action).catch(rethrowAssertionErrorRejection);
+ }
}
-
- function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {
- if (writer._closedPromiseState === 'pending') {
- defaultWriterClosedPromiseReject(writer, error);
- } else {
- defaultWriterClosedPromiseResetToRejected(writer, error);
- }
-
- writer._closedPromise.catch(function () {});
+ function shutdownWithAction(action, originalIsError, originalError) {
+ if (shuttingDown === true) {
+ return;
+ }
+ shuttingDown = true;
+ if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
+ waitForWritesToFinish().then(doTheRest);
+ } else {
+ doTheRest();
+ }
+ function doTheRest() {
+ action().then(function () {
+ return finalize(originalIsError, originalError);
+ }, function (newError) {
+ return finalize(true, newError);
+ }).catch(rethrowAssertionErrorRejection);
+ }
}
-
- function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {
- if (writer._readyPromiseState === 'pending') {
- defaultWriterReadyPromiseReject(writer, error);
- } else {
- defaultWriterReadyPromiseResetToRejected(writer, error);
- }
-
- writer._readyPromise.catch(function () {});
+ function shutdown(isError, error) {
+ if (shuttingDown === true) {
+ return;
+ }
+ shuttingDown = true;
+ if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
+ waitForWritesToFinish().then(function () {
+ return finalize(isError, error);
+ }).catch(rethrowAssertionErrorRejection);
+ } else {
+ finalize(isError, error);
+ }
}
-
- function WritableStreamDefaultWriterGetDesiredSize(writer) {
- var stream = writer._ownerWritableStream;
- var state = stream._state;
-
- if (state === 'errored' || state === 'erroring') {
- return null;
- }
-
- if (state === 'closed') {
- return 0;
- }
-
- return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);
+ function finalize(isError, error) {
+ WritableStreamDefaultWriterRelease(writer);
+ ReadableStreamReaderGenericRelease(reader);
+ if (signal !== undefined) {
+ signal.removeEventListener('abort', abortAlgorithm);
+ }
+ if (isError) {
+ reject(error);
+ } else {
+ resolve(undefined);
+ }
}
-
- function WritableStreamDefaultWriterRelease(writer) {
- var stream = writer._ownerWritableStream;
- assert(stream !== undefined);
- assert(stream._writer === writer);
- var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness');
- WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);
- WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);
- stream._writer = undefined;
- writer._ownerWritableStream = undefined;
+ });
+}
+var ReadableStreamDefaultController = function () {
+ function ReadableStreamDefaultController() {
+ throw new TypeError();
+ }
+ Object.defineProperty(ReadableStreamDefaultController.prototype, "desiredSize", {
+ get: function () {
+ if (IsReadableStreamDefaultController(this) === false) {
+ throw defaultControllerBrandCheckException('desiredSize');
+ }
+ return ReadableStreamDefaultControllerGetDesiredSize(this);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ReadableStreamDefaultController.prototype.close = function () {
+ if (IsReadableStreamDefaultController(this) === false) {
+ throw defaultControllerBrandCheckException('close');
+ }
+ if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {
+ throw new TypeError('The stream is not in a state that permits close');
+ }
+ ReadableStreamDefaultControllerClose(this);
+ };
+ ReadableStreamDefaultController.prototype.enqueue = function (chunk) {
+ if (IsReadableStreamDefaultController(this) === false) {
+ throw defaultControllerBrandCheckException('enqueue');
+ }
+ if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {
+ throw new TypeError('The stream is not in a state that permits enqueue');
+ }
+ return ReadableStreamDefaultControllerEnqueue(this, chunk);
+ };
+ ReadableStreamDefaultController.prototype.error = function (e) {
+ if (IsReadableStreamDefaultController(this) === false) {
+ throw defaultControllerBrandCheckException('error');
+ }
+ ReadableStreamDefaultControllerError(this, e);
+ };
+ ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {
+ ResetQueue(this);
+ var result = this._cancelAlgorithm(reason);
+ ReadableStreamDefaultControllerClearAlgorithms(this);
+ return result;
+ };
+ ReadableStreamDefaultController.prototype[PullSteps] = function () {
+ var stream = this._controlledReadableStream;
+ if (this._queue.length > 0) {
+ var chunk = DequeueValue(this);
+ if (this._closeRequested === true && this._queue.length === 0) {
+ ReadableStreamDefaultControllerClearAlgorithms(this);
+ ReadableStreamClose(stream);
+ } else {
+ ReadableStreamDefaultControllerCallPullIfNeeded(this);
+ }
+ return Promise.resolve(ReadableStreamCreateReadResult(chunk, false, stream._reader._forAuthorCode));
}
-
- function WritableStreamDefaultWriterWrite(writer, chunk) {
- var stream = writer._ownerWritableStream;
- assert(stream !== undefined);
- var controller = stream._writableStreamController;
- var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);
-
- if (stream !== writer._ownerWritableStream) {
- return Promise.reject(defaultWriterLockException('write to'));
- }
-
- var state = stream._state;
-
- if (state === 'errored') {
- return Promise.reject(stream._storedError);
- }
-
- if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
- return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));
- }
-
- if (state === 'erroring') {
- return Promise.reject(stream._storedError);
- }
-
- assert(state === 'writable');
- var promise = WritableStreamAddWriteRequest(stream);
- WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);
- return promise;
+ var pendingPromise = ReadableStreamAddReadRequest(stream);
+ ReadableStreamDefaultControllerCallPullIfNeeded(this);
+ return pendingPromise;
+ };
+ return ReadableStreamDefaultController;
+}();
+function IsReadableStreamDefaultController(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {
+ return false;
+ }
+ return true;
+}
+function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {
+ var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);
+ if (shouldPull === false) {
+ return;
+ }
+ if (controller._pulling === true) {
+ controller._pullAgain = true;
+ return;
+ }
+ controller._pulling = true;
+ var pullPromise = controller._pullAlgorithm();
+ pullPromise.then(function () {
+ controller._pulling = false;
+ if (controller._pullAgain === true) {
+ controller._pullAgain = false;
+ ReadableStreamDefaultControllerCallPullIfNeeded(controller);
+ }
+ }, function (e) {
+ ReadableStreamDefaultControllerError(controller, e);
+ }).catch(rethrowAssertionErrorRejection);
+}
+function ReadableStreamDefaultControllerShouldCallPull(controller) {
+ var stream = controller._controlledReadableStream;
+ if (ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) === false) {
+ return false;
+ }
+ if (controller._started === false) {
+ return false;
+ }
+ if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
+ return true;
+ }
+ var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
+ if (desiredSize > 0) {
+ return true;
+ }
+ return false;
+}
+function ReadableStreamDefaultControllerClearAlgorithms(controller) {
+ controller._pullAlgorithm = undefined;
+ controller._cancelAlgorithm = undefined;
+ controller._strategySizeAlgorithm = undefined;
+}
+function ReadableStreamDefaultControllerClose(controller) {
+ var stream = controller._controlledReadableStream;
+ controller._closeRequested = true;
+ if (controller._queue.length === 0) {
+ ReadableStreamDefaultControllerClearAlgorithms(controller);
+ ReadableStreamClose(stream);
+ }
+}
+function ReadableStreamDefaultControllerEnqueue(controller, chunk) {
+ var stream = controller._controlledReadableStream;
+ if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
+ ReadableStreamFulfillReadRequest(stream, chunk, false);
+ } else {
+ var chunkSize = void 0;
+ try {
+ chunkSize = controller._strategySizeAlgorithm(chunk);
+ } catch (chunkSizeE) {
+ ReadableStreamDefaultControllerError(controller, chunkSizeE);
+ throw chunkSizeE;
}
-
- var WritableStreamDefaultController = function () {
- function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {
- _classCallCheck(this, WritableStreamDefaultController);
-
- if (IsWritableStream(stream) === false) {
- throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');
- }
-
- if (stream._writableStreamController !== undefined) {
- throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');
- }
-
- this._controlledWritableStream = stream;
- this._underlyingSink = underlyingSink;
- this._queue = undefined;
- this._queueTotalSize = undefined;
- ResetQueue(this);
- this._started = false;
- var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
- this._strategySize = normalizedStrategy.size;
- this._strategyHWM = normalizedStrategy.highWaterMark;
- var backpressure = WritableStreamDefaultControllerGetBackpressure(this);
- WritableStreamUpdateBackpressure(stream, backpressure);
- }
-
- _createClass(WritableStreamDefaultController, [{
- key: 'error',
- value: function error(e) {
- if (IsWritableStreamDefaultController(this) === false) {
- throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');
- }
-
- var state = this._controlledWritableStream._state;
-
- if (state !== 'writable') {
- return;
- }
-
- WritableStreamDefaultControllerError(this, e);
- }
- }, {
- key: '__abortSteps',
- value: function __abortSteps(reason) {
- return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);
- }
- }, {
- key: '__errorSteps',
- value: function __errorSteps() {
- ResetQueue(this);
- }
- }, {
- key: '__startSteps',
- value: function __startSteps() {
- var _this = this;
-
- var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);
- var stream = this._controlledWritableStream;
- Promise.resolve(startResult).then(function () {
- assert(stream._state === 'writable' || stream._state === 'erroring');
- _this._started = true;
- WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);
- }, function (r) {
- assert(stream._state === 'writable' || stream._state === 'erroring');
- _this._started = true;
- WritableStreamDealWithRejection(stream, r);
- }).catch(rethrowAssertionErrorRejection);
- }
- }]);
-
- return WritableStreamDefaultController;
- }();
-
- function WritableStreamDefaultControllerClose(controller) {
- EnqueueValueWithSize(controller, 'close', 0);
- WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
+ try {
+ EnqueueValueWithSize(controller, chunk, chunkSize);
+ } catch (enqueueE) {
+ ReadableStreamDefaultControllerError(controller, enqueueE);
+ throw enqueueE;
}
-
- function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {
- var strategySize = controller._strategySize;
-
- if (strategySize === undefined) {
- return 1;
- }
-
- try {
- return strategySize(chunk);
- } catch (chunkSizeE) {
- WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
- return 1;
+ }
+ ReadableStreamDefaultControllerCallPullIfNeeded(controller);
+}
+function ReadableStreamDefaultControllerError(controller, e) {
+ var stream = controller._controlledReadableStream;
+ if (stream._state !== 'readable') {
+ return;
+ }
+ ResetQueue(controller);
+ ReadableStreamDefaultControllerClearAlgorithms(controller);
+ ReadableStreamError(stream, e);
+}
+function ReadableStreamDefaultControllerGetDesiredSize(controller) {
+ var stream = controller._controlledReadableStream;
+ var state = stream._state;
+ if (state === 'errored') {
+ return null;
+ }
+ if (state === 'closed') {
+ return 0;
+ }
+ return controller._strategyHWM - controller._queueTotalSize;
+}
+function ReadableStreamDefaultControllerHasBackpressure(controller) {
+ if (ReadableStreamDefaultControllerShouldCallPull(controller) === true) {
+ return false;
+ }
+ return true;
+}
+function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {
+ var state = controller._controlledReadableStream._state;
+ if (controller._closeRequested === false && state === 'readable') {
+ return true;
+ }
+ return false;
+}
+function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {
+ controller._controlledReadableStream = stream;
+ controller._queue = undefined;
+ controller._queueTotalSize = undefined;
+ ResetQueue(controller);
+ controller._started = false;
+ controller._closeRequested = false;
+ controller._pullAgain = false;
+ controller._pulling = false;
+ controller._strategySizeAlgorithm = sizeAlgorithm;
+ controller._strategyHWM = highWaterMark;
+ controller._pullAlgorithm = pullAlgorithm;
+ controller._cancelAlgorithm = cancelAlgorithm;
+ stream._readableStreamController = controller;
+ var startResult = startAlgorithm();
+ Promise.resolve(startResult).then(function () {
+ controller._started = true;
+ ReadableStreamDefaultControllerCallPullIfNeeded(controller);
+ }, function (r) {
+ ReadableStreamDefaultControllerError(controller, r);
+ }).catch(rethrowAssertionErrorRejection);
+}
+function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {
+ var controller = Object.create(ReadableStreamDefaultController.prototype);
+ function startAlgorithm() {
+ return InvokeOrNoop(underlyingSource, 'start', [controller]);
+ }
+ var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'pull', 0, [controller]);
+ var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'cancel', 1, []);
+ SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);
+}
+function defaultControllerBrandCheckException(name) {
+ return new TypeError("ReadableStreamDefaultController.prototype." + name + " can only be used on a ReadableStreamDefaultController");
+}
+function ReadableStreamTee(stream, cloneForBranch2) {
+ var reader = AcquireReadableStreamDefaultReader(stream);
+ var reading = false;
+ var canceled1 = false;
+ var canceled2 = false;
+ var reason1;
+ var reason2;
+ var branch1;
+ var branch2;
+ var resolveCancelPromise;
+ var cancelPromise = new Promise(function (resolve) {
+ resolveCancelPromise = resolve;
+ });
+ function pullAlgorithm() {
+ if (reading === true) {
+ return Promise.resolve();
+ }
+ reading = true;
+ var readPromise = ReadableStreamDefaultReaderRead(reader).then(function (result) {
+ reading = false;
+ var done = result.done;
+ if (done === true) {
+ if (canceled1 === false) {
+ ReadableStreamDefaultControllerClose(branch1._readableStreamController);
+ }
+ if (canceled2 === false) {
+ ReadableStreamDefaultControllerClose(branch2._readableStreamController);
}
+ return;
+ }
+ var value = result.value;
+ var value1 = value;
+ var value2 = value;
+ if (canceled1 === false) {
+ ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, value1);
+ }
+ if (canceled2 === false) {
+ ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, value2);
+ }
+ });
+ readPromise.catch(rethrowAssertionErrorRejection);
+ return Promise.resolve();
+ }
+ function cancel1Algorithm(reason) {
+ canceled1 = true;
+ reason1 = reason;
+ if (canceled2 === true) {
+ var compositeReason = createArrayFromList([
+ reason1,
+ reason2
+ ]);
+ var cancelResult = ReadableStreamCancel(stream, compositeReason);
+ resolveCancelPromise(cancelResult);
+ }
+ return cancelPromise;
+ }
+ function cancel2Algorithm(reason) {
+ canceled2 = true;
+ reason2 = reason;
+ if (canceled1 === true) {
+ var compositeReason = createArrayFromList([
+ reason1,
+ reason2
+ ]);
+ var cancelResult = ReadableStreamCancel(stream, compositeReason);
+ resolveCancelPromise(cancelResult);
+ }
+ return cancelPromise;
+ }
+ function startAlgorithm() {
+ }
+ branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);
+ branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);
+ reader._closedPromise.catch(function (r) {
+ ReadableStreamDefaultControllerError(branch1._readableStreamController, r);
+ ReadableStreamDefaultControllerError(branch2._readableStreamController, r);
+ });
+ return [
+ branch1,
+ branch2
+ ];
+}
+var NumberIsInteger = Number.isInteger || function (value) {
+ return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
+};
+var ReadableStreamBYOBRequest = function () {
+ function ReadableStreamBYOBRequest() {
+ throw new TypeError('ReadableStreamBYOBRequest cannot be used directly');
+ }
+ Object.defineProperty(ReadableStreamBYOBRequest.prototype, "view", {
+ get: function () {
+ if (IsReadableStreamBYOBRequest(this) === false) {
+ throw byobRequestBrandCheckException('view');
+ }
+ return this._view;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {
+ if (IsReadableStreamBYOBRequest(this) === false) {
+ throw byobRequestBrandCheckException('respond');
+ }
+ if (this._associatedReadableByteStreamController === undefined) {
+ throw new TypeError('This BYOB request has been invalidated');
+ }
+ if (IsDetachedBuffer(this._view.buffer) === true);
+ ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);
+ };
+ ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {
+ if (IsReadableStreamBYOBRequest(this) === false) {
+ throw byobRequestBrandCheckException('respond');
+ }
+ if (this._associatedReadableByteStreamController === undefined) {
+ throw new TypeError('This BYOB request has been invalidated');
+ }
+ if (!ArrayBuffer.isView(view)) {
+ throw new TypeError('You can only respond with array buffer views');
+ }
+ if (IsDetachedBuffer(view.buffer) === true);
+ ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);
+ };
+ return ReadableStreamBYOBRequest;
+}();
+var ReadableByteStreamController = function () {
+ function ReadableByteStreamController() {
+ throw new TypeError('ReadableByteStreamController constructor cannot be used directly');
+ }
+ Object.defineProperty(ReadableByteStreamController.prototype, "byobRequest", {
+ get: function () {
+ if (IsReadableByteStreamController(this) === false) {
+ throw byteStreamControllerBrandCheckException('byobRequest');
+ }
+ if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {
+ var firstDescriptor = this._pendingPullIntos.peek();
+ var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);
+ var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);
+ SetUpReadableStreamBYOBRequest(byobRequest, this, view);
+ this._byobRequest = byobRequest;
+ }
+ return this._byobRequest;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ReadableByteStreamController.prototype, "desiredSize", {
+ get: function () {
+ if (IsReadableByteStreamController(this) === false) {
+ throw byteStreamControllerBrandCheckException('desiredSize');
+ }
+ return ReadableByteStreamControllerGetDesiredSize(this);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ReadableByteStreamController.prototype.close = function () {
+ if (IsReadableByteStreamController(this) === false) {
+ throw byteStreamControllerBrandCheckException('close');
+ }
+ if (this._closeRequested === true) {
+ throw new TypeError('The stream has already been closed; do not close it again!');
+ }
+ var state = this._controlledReadableByteStream._state;
+ if (state !== 'readable') {
+ throw new TypeError("The stream (in " + state + " state) is not in the readable state and cannot be closed");
+ }
+ ReadableByteStreamControllerClose(this);
+ };
+ ReadableByteStreamController.prototype.enqueue = function (chunk) {
+ if (IsReadableByteStreamController(this) === false) {
+ throw byteStreamControllerBrandCheckException('enqueue');
+ }
+ if (this._closeRequested === true) {
+ throw new TypeError('stream is closed or draining');
+ }
+ var state = this._controlledReadableByteStream._state;
+ if (state !== 'readable') {
+ throw new TypeError("The stream (in " + state + " state) is not in the readable state and cannot be enqueued to");
+ }
+ if (!ArrayBuffer.isView(chunk)) {
+ throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');
+ }
+ if (IsDetachedBuffer(chunk.buffer) === true);
+ ReadableByteStreamControllerEnqueue(this, chunk);
+ };
+ ReadableByteStreamController.prototype.error = function (e) {
+ if (IsReadableByteStreamController(this) === false) {
+ throw byteStreamControllerBrandCheckException('error');
+ }
+ ReadableByteStreamControllerError(this, e);
+ };
+ ReadableByteStreamController.prototype[CancelSteps] = function (reason) {
+ if (this._pendingPullIntos.length > 0) {
+ var firstDescriptor = this._pendingPullIntos.peek();
+ firstDescriptor.bytesFilled = 0;
+ }
+ ResetQueue(this);
+ var result = this._cancelAlgorithm(reason);
+ ReadableByteStreamControllerClearAlgorithms(this);
+ return result;
+ };
+ ReadableByteStreamController.prototype[PullSteps] = function () {
+ var stream = this._controlledReadableByteStream;
+ if (this._queueTotalSize > 0) {
+ var entry = this._queue.shift();
+ this._queueTotalSize -= entry.byteLength;
+ ReadableByteStreamControllerHandleQueueDrain(this);
+ var view = void 0;
+ try {
+ view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);
+ } catch (viewE) {
+ return Promise.reject(viewE);
+ }
+ return Promise.resolve(ReadableStreamCreateReadResult(view, false, stream._reader._forAuthorCode));
+ }
+ var autoAllocateChunkSize = this._autoAllocateChunkSize;
+ if (autoAllocateChunkSize !== undefined) {
+ var buffer = void 0;
+ try {
+ buffer = new ArrayBuffer(autoAllocateChunkSize);
+ } catch (bufferE) {
+ return Promise.reject(bufferE);
+ }
+ var pullIntoDescriptor = {
+ buffer: buffer,
+ byteOffset: 0,
+ byteLength: autoAllocateChunkSize,
+ bytesFilled: 0,
+ elementSize: 1,
+ ctor: Uint8Array,
+ readerType: 'default'
+ };
+ this._pendingPullIntos.push(pullIntoDescriptor);
+ }
+ var promise = ReadableStreamAddReadRequest(stream);
+ ReadableByteStreamControllerCallPullIfNeeded(this);
+ return promise;
+ };
+ return ReadableByteStreamController;
+}();
+function IsReadableByteStreamController(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {
+ return false;
+ }
+ return true;
+}
+function IsReadableStreamBYOBRequest(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {
+ return false;
+ }
+ return true;
+}
+function ReadableByteStreamControllerCallPullIfNeeded(controller) {
+ var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);
+ if (shouldPull === false) {
+ return;
+ }
+ if (controller._pulling === true) {
+ controller._pullAgain = true;
+ return;
+ }
+ controller._pulling = true;
+ var pullPromise = controller._pullAlgorithm();
+ pullPromise.then(function () {
+ controller._pulling = false;
+ if (controller._pullAgain === true) {
+ controller._pullAgain = false;
+ ReadableByteStreamControllerCallPullIfNeeded(controller);
+ }
+ }, function (e) {
+ ReadableByteStreamControllerError(controller, e);
+ }).catch(rethrowAssertionErrorRejection);
+}
+function ReadableByteStreamControllerClearPendingPullIntos(controller) {
+ ReadableByteStreamControllerInvalidateBYOBRequest(controller);
+ controller._pendingPullIntos = new SimpleQueue();
+}
+function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {
+ var done = false;
+ if (stream._state === 'closed') {
+ done = true;
+ }
+ var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
+ if (pullIntoDescriptor.readerType === 'default') {
+ ReadableStreamFulfillReadRequest(stream, filledView, done);
+ } else {
+ ReadableStreamFulfillReadIntoRequest(stream, filledView, done);
+ }
+}
+function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {
+ var bytesFilled = pullIntoDescriptor.bytesFilled;
+ var elementSize = pullIntoDescriptor.elementSize;
+ return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);
+}
+function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {
+ controller._queue.push({
+ buffer: buffer,
+ byteOffset: byteOffset,
+ byteLength: byteLength
+ });
+ controller._queueTotalSize += byteLength;
+}
+function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {
+ var elementSize = pullIntoDescriptor.elementSize;
+ var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;
+ var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);
+ var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;
+ var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;
+ var totalBytesToCopyRemaining = maxBytesToCopy;
+ var ready = false;
+ if (maxAlignedBytes > currentAlignedBytes) {
+ totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;
+ ready = true;
+ }
+ var queue = controller._queue;
+ while (totalBytesToCopyRemaining > 0) {
+ var headOfQueue = queue.peek();
+ var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);
+ var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
+ ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);
+ if (headOfQueue.byteLength === bytesToCopy) {
+ queue.shift();
+ } else {
+ headOfQueue.byteOffset += bytesToCopy;
+ headOfQueue.byteLength -= bytesToCopy;
}
-
- function WritableStreamDefaultControllerGetDesiredSize(controller) {
- return controller._strategyHWM - controller._queueTotalSize;
+ controller._queueTotalSize -= bytesToCopy;
+ ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);
+ totalBytesToCopyRemaining -= bytesToCopy;
+ }
+ return ready;
+}
+function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {
+ ReadableByteStreamControllerInvalidateBYOBRequest(controller);
+ pullIntoDescriptor.bytesFilled += size;
+}
+function ReadableByteStreamControllerHandleQueueDrain(controller) {
+ if (controller._queueTotalSize === 0 && controller._closeRequested === true) {
+ ReadableByteStreamControllerClearAlgorithms(controller);
+ ReadableStreamClose(controller._controlledReadableByteStream);
+ } else {
+ ReadableByteStreamControllerCallPullIfNeeded(controller);
+ }
+}
+function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {
+ if (controller._byobRequest === undefined) {
+ return;
+ }
+ controller._byobRequest._associatedReadableByteStreamController = undefined;
+ controller._byobRequest._view = undefined;
+ controller._byobRequest = undefined;
+}
+function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {
+ while (controller._pendingPullIntos.length > 0) {
+ if (controller._queueTotalSize === 0) {
+ return;
}
-
- function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {
- var writeRecord = {
- chunk: chunk
- };
-
- try {
- EnqueueValueWithSize(controller, writeRecord, chunkSize);
- } catch (enqueueE) {
- WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
- return;
- }
-
- var stream = controller._controlledWritableStream;
-
- if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {
- var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
- WritableStreamUpdateBackpressure(stream, backpressure);
- }
-
- WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
+ var pullIntoDescriptor = controller._pendingPullIntos.peek();
+ if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
+ ReadableByteStreamControllerShiftPendingPullInto(controller);
+ ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);
}
-
- function IsWritableStreamDefaultController(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {
- return false;
- }
-
- return true;
+ }
+}
+function ReadableByteStreamControllerPullInto(controller, view) {
+ var stream = controller._controlledReadableByteStream;
+ var elementSize = 1;
+ if (view.constructor !== DataView) {
+ elementSize = view.constructor.BYTES_PER_ELEMENT;
+ }
+ var ctor = view.constructor;
+ var buffer = TransferArrayBuffer(view.buffer);
+ var pullIntoDescriptor = {
+ buffer: buffer,
+ byteOffset: view.byteOffset,
+ byteLength: view.byteLength,
+ bytesFilled: 0,
+ elementSize: elementSize,
+ ctor: ctor,
+ readerType: 'byob'
+ };
+ if (controller._pendingPullIntos.length > 0) {
+ controller._pendingPullIntos.push(pullIntoDescriptor);
+ return ReadableStreamAddReadIntoRequest(stream);
+ }
+ if (stream._state === 'closed') {
+ var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);
+ return Promise.resolve(ReadableStreamCreateReadResult(emptyView, true, stream._reader._forAuthorCode));
+ }
+ if (controller._queueTotalSize > 0) {
+ if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
+ var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
+ ReadableByteStreamControllerHandleQueueDrain(controller);
+ return Promise.resolve(ReadableStreamCreateReadResult(filledView, false, stream._reader._forAuthorCode));
}
-
- function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {
- var stream = controller._controlledWritableStream;
-
- if (controller._started === false) {
- return;
- }
-
- if (stream._inFlightWriteRequest !== undefined) {
- return;
- }
-
- var state = stream._state;
-
- if (state === 'closed' || state === 'errored') {
- return;
- }
-
- if (state === 'erroring') {
- WritableStreamFinishErroring(stream);
- return;
- }
-
- if (controller._queue.length === 0) {
- return;
- }
-
- var writeRecord = PeekQueueValue(controller);
-
- if (writeRecord === 'close') {
- WritableStreamDefaultControllerProcessClose(controller);
- } else {
- WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);
- }
+ if (controller._closeRequested === true) {
+ var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
+ ReadableByteStreamControllerError(controller, e);
+ return Promise.reject(e);
}
-
- function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {
- if (controller._controlledWritableStream._state === 'writable') {
- WritableStreamDefaultControllerError(controller, error);
- }
+ }
+ controller._pendingPullIntos.push(pullIntoDescriptor);
+ var promise = ReadableStreamAddReadIntoRequest(stream);
+ ReadableByteStreamControllerCallPullIfNeeded(controller);
+ return promise;
+}
+function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {
+ firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);
+ var stream = controller._controlledReadableByteStream;
+ if (ReadableStreamHasBYOBReader(stream) === true) {
+ while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {
+ var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);
+ ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);
}
-
- function WritableStreamDefaultControllerProcessClose(controller) {
- var stream = controller._controlledWritableStream;
- WritableStreamMarkCloseRequestInFlight(stream);
- DequeueValue(controller);
- assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');
- var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);
- sinkClosePromise.then(function () {
- WritableStreamFinishInFlightClose(stream);
- }, function (reason) {
- WritableStreamFinishInFlightCloseWithError(stream, reason);
- }).catch(rethrowAssertionErrorRejection);
+ }
+}
+function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {
+ if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {
+ throw new RangeError('bytesWritten out of range');
+ }
+ ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);
+ if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {
+ return;
+ }
+ ReadableByteStreamControllerShiftPendingPullInto(controller);
+ var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;
+ if (remainderSize > 0) {
+ var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
+ var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);
+ ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);
+ }
+ pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
+ pullIntoDescriptor.bytesFilled -= remainderSize;
+ ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);
+ ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
+}
+function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {
+ var firstDescriptor = controller._pendingPullIntos.peek();
+ var stream = controller._controlledReadableByteStream;
+ if (stream._state === 'closed') {
+ if (bytesWritten !== 0) {
+ throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');
+ }
+ ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);
+ } else {
+ ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);
+ }
+ ReadableByteStreamControllerCallPullIfNeeded(controller);
+}
+function ReadableByteStreamControllerShiftPendingPullInto(controller) {
+ var descriptor = controller._pendingPullIntos.shift();
+ ReadableByteStreamControllerInvalidateBYOBRequest(controller);
+ return descriptor;
+}
+function ReadableByteStreamControllerShouldCallPull(controller) {
+ var stream = controller._controlledReadableByteStream;
+ if (stream._state !== 'readable') {
+ return false;
+ }
+ if (controller._closeRequested === true) {
+ return false;
+ }
+ if (controller._started === false) {
+ return false;
+ }
+ if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
+ return true;
+ }
+ if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {
+ return true;
+ }
+ var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);
+ if (desiredSize > 0) {
+ return true;
+ }
+ return false;
+}
+function ReadableByteStreamControllerClearAlgorithms(controller) {
+ controller._pullAlgorithm = undefined;
+ controller._cancelAlgorithm = undefined;
+}
+function ReadableByteStreamControllerClose(controller) {
+ var stream = controller._controlledReadableByteStream;
+ if (controller._queueTotalSize > 0) {
+ controller._closeRequested = true;
+ return;
+ }
+ if (controller._pendingPullIntos.length > 0) {
+ var firstPendingPullInto = controller._pendingPullIntos.peek();
+ if (firstPendingPullInto.bytesFilled > 0) {
+ var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
+ ReadableByteStreamControllerError(controller, e);
+ throw e;
}
-
- function WritableStreamDefaultControllerProcessWrite(controller, chunk) {
- var stream = controller._controlledWritableStream;
- WritableStreamMarkFirstWriteRequestInFlight(stream);
- var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);
- sinkWritePromise.then(function () {
- WritableStreamFinishInFlightWrite(stream);
- var state = stream._state;
- assert(state === 'writable' || state === 'erroring');
- DequeueValue(controller);
-
- if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {
- var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
- WritableStreamUpdateBackpressure(stream, backpressure);
- }
-
- WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
- }, function (reason) {
- WritableStreamFinishInFlightWriteWithError(stream, reason);
- }).catch(rethrowAssertionErrorRejection);
+ }
+ ReadableByteStreamControllerClearAlgorithms(controller);
+ ReadableStreamClose(stream);
+}
+function ReadableByteStreamControllerEnqueue(controller, chunk) {
+ var stream = controller._controlledReadableByteStream;
+ var buffer = chunk.buffer;
+ var byteOffset = chunk.byteOffset;
+ var byteLength = chunk.byteLength;
+ var transferredBuffer = TransferArrayBuffer(buffer);
+ if (ReadableStreamHasDefaultReader(stream) === true) {
+ if (ReadableStreamGetNumReadRequests(stream) === 0) {
+ ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
+ } else {
+ var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);
+ ReadableStreamFulfillReadRequest(stream, transferredView, false);
+ }
+ } else if (ReadableStreamHasBYOBReader(stream) === true) {
+ ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
+ ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
+ } else {
+ ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
+ }
+ ReadableByteStreamControllerCallPullIfNeeded(controller);
+}
+function ReadableByteStreamControllerError(controller, e) {
+ var stream = controller._controlledReadableByteStream;
+ if (stream._state !== 'readable') {
+ return;
+ }
+ ReadableByteStreamControllerClearPendingPullIntos(controller);
+ ResetQueue(controller);
+ ReadableByteStreamControllerClearAlgorithms(controller);
+ ReadableStreamError(stream, e);
+}
+function ReadableByteStreamControllerGetDesiredSize(controller) {
+ var stream = controller._controlledReadableByteStream;
+ var state = stream._state;
+ if (state === 'errored') {
+ return null;
+ }
+ if (state === 'closed') {
+ return 0;
+ }
+ return controller._strategyHWM - controller._queueTotalSize;
+}
+function ReadableByteStreamControllerRespond(controller, bytesWritten) {
+ bytesWritten = Number(bytesWritten);
+ if (IsFiniteNonNegativeNumber(bytesWritten) === false) {
+ throw new RangeError('bytesWritten must be a finite');
+ }
+ ReadableByteStreamControllerRespondInternal(controller, bytesWritten);
+}
+function ReadableByteStreamControllerRespondWithNewView(controller, view) {
+ var firstDescriptor = controller._pendingPullIntos.peek();
+ if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {
+ throw new RangeError('The region specified by view does not match byobRequest');
+ }
+ if (firstDescriptor.byteLength !== view.byteLength) {
+ throw new RangeError('The buffer of view has different capacity than byobRequest');
+ }
+ firstDescriptor.buffer = view.buffer;
+ ReadableByteStreamControllerRespondInternal(controller, view.byteLength);
+}
+function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {
+ controller._controlledReadableByteStream = stream;
+ controller._pullAgain = false;
+ controller._pulling = false;
+ controller._byobRequest = undefined;
+ controller._queue = controller._queueTotalSize = undefined;
+ ResetQueue(controller);
+ controller._closeRequested = false;
+ controller._started = false;
+ controller._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);
+ controller._pullAlgorithm = pullAlgorithm;
+ controller._cancelAlgorithm = cancelAlgorithm;
+ controller._autoAllocateChunkSize = autoAllocateChunkSize;
+ controller._pendingPullIntos = new SimpleQueue();
+ stream._readableStreamController = controller;
+ var startResult = startAlgorithm();
+ Promise.resolve(startResult).then(function () {
+ controller._started = true;
+ ReadableByteStreamControllerCallPullIfNeeded(controller);
+ }, function (r) {
+ ReadableByteStreamControllerError(controller, r);
+ }).catch(rethrowAssertionErrorRejection);
+}
+function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {
+ var controller = Object.create(ReadableByteStreamController.prototype);
+ function startAlgorithm() {
+ return InvokeOrNoop(underlyingByteSource, 'start', [controller]);
+ }
+ var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'pull', 0, [controller]);
+ var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'cancel', 1, []);
+ var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;
+ if (autoAllocateChunkSize !== undefined) {
+ autoAllocateChunkSize = Number(autoAllocateChunkSize);
+ if (NumberIsInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {
+ throw new RangeError('autoAllocateChunkSize must be a positive integer');
}
-
- function WritableStreamDefaultControllerGetBackpressure(controller) {
- var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);
- return desiredSize <= 0;
+ }
+ SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);
+}
+function SetUpReadableStreamBYOBRequest(request, controller, view) {
+ request._associatedReadableByteStreamController = controller;
+ request._view = view;
+}
+function byobRequestBrandCheckException(name) {
+ return new TypeError("ReadableStreamBYOBRequest.prototype." + name + " can only be used on a ReadableStreamBYOBRequest");
+}
+function byteStreamControllerBrandCheckException(name) {
+ return new TypeError("ReadableByteStreamController.prototype." + name + " can only be used on a ReadableByteStreamController");
+}
+function AcquireReadableStreamBYOBReader(stream, forAuthorCode) {
+ if (forAuthorCode === void 0) {
+ forAuthorCode = false;
+ }
+ var reader = new ReadableStreamBYOBReader(stream);
+ reader._forAuthorCode = forAuthorCode;
+ return reader;
+}
+function ReadableStreamAddReadIntoRequest(stream) {
+ var promise = new Promise(function (resolve, reject) {
+ var readIntoRequest = {
+ _resolve: resolve,
+ _reject: reject
+ };
+ stream._reader._readIntoRequests.push(readIntoRequest);
+ });
+ return promise;
+}
+function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {
+ var reader = stream._reader;
+ var readIntoRequest = reader._readIntoRequests.shift();
+ readIntoRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));
+}
+function ReadableStreamGetNumReadIntoRequests(stream) {
+ return stream._reader._readIntoRequests.length;
+}
+function ReadableStreamHasBYOBReader(stream) {
+ var reader = stream._reader;
+ if (reader === undefined) {
+ return false;
+ }
+ if (!IsReadableStreamBYOBReader(reader)) {
+ return false;
+ }
+ return true;
+}
+var ReadableStreamBYOBReader = function () {
+ function ReadableStreamBYOBReader(stream) {
+ if (!IsReadableStream(stream)) {
+ throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');
}
-
- function WritableStreamDefaultControllerError(controller, error) {
- var stream = controller._controlledWritableStream;
- assert(stream._state === 'writable');
- WritableStreamStartErroring(stream, error);
+ if (IsReadableByteStreamController(stream._readableStreamController) === false) {
+ throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');
}
-
- function streamBrandCheckException(name) {
- return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');
+ if (IsReadableStreamLocked(stream)) {
+ throw new TypeError('This stream has already been locked for exclusive reading by another reader');
}
-
- function defaultWriterBrandCheckException(name) {
- return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');
+ ReadableStreamReaderGenericInitialize(this, stream);
+ this._readIntoRequests = new SimpleQueue();
+ }
+ Object.defineProperty(ReadableStreamBYOBReader.prototype, "closed", {
+ get: function () {
+ if (!IsReadableStreamBYOBReader(this)) {
+ return Promise.reject(byobReaderBrandCheckException('closed'));
+ }
+ return this._closedPromise;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ReadableStreamBYOBReader.prototype.cancel = function (reason) {
+ if (!IsReadableStreamBYOBReader(this)) {
+ return Promise.reject(byobReaderBrandCheckException('cancel'));
+ }
+ if (this._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('cancel'));
+ }
+ return ReadableStreamReaderGenericCancel(this, reason);
+ };
+ ReadableStreamBYOBReader.prototype.read = function (view) {
+ if (!IsReadableStreamBYOBReader(this)) {
+ return Promise.reject(byobReaderBrandCheckException('read'));
+ }
+ if (this._ownerReadableStream === undefined) {
+ return Promise.reject(readerLockException('read from'));
+ }
+ if (!ArrayBuffer.isView(view)) {
+ return Promise.reject(new TypeError('view must be an array buffer view'));
+ }
+ if (IsDetachedBuffer(view.buffer) === true);
+ if (view.byteLength === 0) {
+ return Promise.reject(new TypeError('view must have non-zero byteLength'));
+ }
+ return ReadableStreamBYOBReaderRead(this, view);
+ };
+ ReadableStreamBYOBReader.prototype.releaseLock = function () {
+ if (!IsReadableStreamBYOBReader(this)) {
+ throw byobReaderBrandCheckException('releaseLock');
+ }
+ if (this._ownerReadableStream === undefined) {
+ return;
+ }
+ if (this._readIntoRequests.length > 0) {
+ throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
+ }
+ ReadableStreamReaderGenericRelease(this);
+ };
+ return ReadableStreamBYOBReader;
+}();
+function IsReadableStreamBYOBReader(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {
+ return false;
+ }
+ return true;
+}
+function ReadableStreamBYOBReaderRead(reader, view) {
+ var stream = reader._ownerReadableStream;
+ stream._disturbed = true;
+ if (stream._state === 'errored') {
+ return Promise.reject(stream._storedError);
+ }
+ return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);
+}
+function byobReaderBrandCheckException(name) {
+ return new TypeError("ReadableStreamBYOBReader.prototype." + name + " can only be used on a ReadableStreamBYOBReader");
+}
+var ReadableStream = function () {
+ function ReadableStream(underlyingSource, strategy) {
+ if (underlyingSource === void 0) {
+ underlyingSource = {};
+ }
+ if (strategy === void 0) {
+ strategy = {};
+ }
+ InitializeReadableStream(this);
+ var size = strategy.size;
+ var highWaterMark = strategy.highWaterMark;
+ var type = underlyingSource.type;
+ var typeString = String(type);
+ if (typeString === 'bytes') {
+ if (size !== undefined) {
+ throw new RangeError('The strategy for a byte stream cannot have a size function');
+ }
+ if (highWaterMark === undefined) {
+ highWaterMark = 0;
+ }
+ highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);
+ SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);
+ } else if (type === undefined) {
+ var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);
+ if (highWaterMark === undefined) {
+ highWaterMark = 1;
+ }
+ highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);
+ SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);
+ } else {
+ throw new RangeError('Invalid type is specified');
}
+ }
+ Object.defineProperty(ReadableStream.prototype, "locked", {
+ get: function () {
+ if (IsReadableStream(this) === false) {
+ throw streamBrandCheckException$1('locked');
+ }
+ return IsReadableStreamLocked(this);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ReadableStream.prototype.cancel = function (reason) {
+ if (IsReadableStream(this) === false) {
+ return Promise.reject(streamBrandCheckException$1('cancel'));
+ }
+ if (IsReadableStreamLocked(this) === true) {
+ return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));
+ }
+ return ReadableStreamCancel(this, reason);
+ };
+ ReadableStream.prototype.getReader = function (_a) {
+ var mode = (_a === void 0 ? {} : _a).mode;
+ if (IsReadableStream(this) === false) {
+ throw streamBrandCheckException$1('getReader');
+ }
+ if (mode === undefined) {
+ return AcquireReadableStreamDefaultReader(this, true);
+ }
+ mode = String(mode);
+ if (mode === 'byob') {
+ return AcquireReadableStreamBYOBReader(this, true);
+ }
+ throw new RangeError('Invalid mode is specified');
+ };
+ ReadableStream.prototype.pipeThrough = function (_a, _b) {
+ var writable = _a.writable, readable = _a.readable;
+ var _c = _b === void 0 ? {} : _b, preventClose = _c.preventClose, preventAbort = _c.preventAbort, preventCancel = _c.preventCancel, signal = _c.signal;
+ if (IsReadableStream(this) === false) {
+ throw streamBrandCheckException$1('pipeThrough');
+ }
+ if (IsWritableStream(writable) === false) {
+ throw new TypeError('writable argument to pipeThrough must be a WritableStream');
+ }
+ if (IsReadableStream(readable) === false) {
+ throw new TypeError('readable argument to pipeThrough must be a ReadableStream');
+ }
+ preventClose = Boolean(preventClose);
+ preventAbort = Boolean(preventAbort);
+ preventCancel = Boolean(preventCancel);
+ if (signal !== undefined && !isAbortSignal(signal)) {
+ throw new TypeError('ReadableStream.prototype.pipeThrough\'s signal option must be an AbortSignal');
+ }
+ if (IsReadableStreamLocked(this) === true) {
+ throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');
+ }
+ if (IsWritableStreamLocked(writable) === true) {
+ throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');
+ }
+ var promise = ReadableStreamPipeTo(this, writable, preventClose, preventAbort, preventCancel, signal);
+ promise.catch(noop);
+ return readable;
+ };
+ ReadableStream.prototype.pipeTo = function (dest, _a) {
+ var _b = _a === void 0 ? {} : _a, preventClose = _b.preventClose, preventAbort = _b.preventAbort, preventCancel = _b.preventCancel, signal = _b.signal;
+ if (IsReadableStream(this) === false) {
+ return Promise.reject(streamBrandCheckException$1('pipeTo'));
+ }
+ if (IsWritableStream(dest) === false) {
+ return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream'));
+ }
+ preventClose = Boolean(preventClose);
+ preventAbort = Boolean(preventAbort);
+ preventCancel = Boolean(preventCancel);
+ if (signal !== undefined && !isAbortSignal(signal)) {
+ return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s signal option must be an AbortSignal'));
+ }
+ if (IsReadableStreamLocked(this) === true) {
+ return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));
+ }
+ if (IsWritableStreamLocked(dest) === true) {
+ return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));
+ }
+ return ReadableStreamPipeTo(this, dest, preventClose, preventAbort, preventCancel, signal);
+ };
+ ReadableStream.prototype.tee = function () {
+ if (IsReadableStream(this) === false) {
+ throw streamBrandCheckException$1('tee');
+ }
+ var branches = ReadableStreamTee(this);
+ return createArrayFromList(branches);
+ };
+ ReadableStream.prototype.getIterator = function (_a) {
+ var _b = (_a === void 0 ? {} : _a).preventCancel, preventCancel = _b === void 0 ? false : _b;
+ if (IsReadableStream(this) === false) {
+ throw streamBrandCheckException$1('getIterator');
+ }
+ return AcquireReadableStreamAsyncIterator(this, preventCancel);
+ };
+ return ReadableStream;
+}();
+if (typeof SymbolPolyfill.asyncIterator === 'symbol') {
+ Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {
+ value: ReadableStream.prototype.getIterator,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ });
+}
+function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {
+ if (highWaterMark === void 0) {
+ highWaterMark = 1;
+ }
+ if (sizeAlgorithm === void 0) {
+ sizeAlgorithm = function () {
+ return 1;
+ };
+ }
+ var stream = Object.create(ReadableStream.prototype);
+ InitializeReadableStream(stream);
+ var controller = Object.create(ReadableStreamDefaultController.prototype);
+ SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);
+ return stream;
+}
+function InitializeReadableStream(stream) {
+ stream._state = 'readable';
+ stream._reader = undefined;
+ stream._storedError = undefined;
+ stream._disturbed = false;
+}
+function IsReadableStream(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {
+ return false;
+ }
+ return true;
+}
+function IsReadableStreamLocked(stream) {
+ if (stream._reader === undefined) {
+ return false;
+ }
+ return true;
+}
+function ReadableStreamCancel(stream, reason) {
+ stream._disturbed = true;
+ if (stream._state === 'closed') {
+ return Promise.resolve(undefined);
+ }
+ if (stream._state === 'errored') {
+ return Promise.reject(stream._storedError);
+ }
+ ReadableStreamClose(stream);
+ var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);
+ return sourceCancelPromise.then(function () {
+ return undefined;
+ });
+}
+function ReadableStreamClose(stream) {
+ stream._state = 'closed';
+ var reader = stream._reader;
+ if (reader === undefined) {
+ return;
+ }
+ if (IsReadableStreamDefaultReader(reader)) {
+ reader._readRequests.forEach(function (readRequest) {
+ readRequest._resolve(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));
+ });
+ reader._readRequests = new SimpleQueue();
+ }
+ defaultReaderClosedPromiseResolve(reader);
+}
+function ReadableStreamError(stream, e) {
+ stream._state = 'errored';
+ stream._storedError = e;
+ var reader = stream._reader;
+ if (reader === undefined) {
+ return;
+ }
+ if (IsReadableStreamDefaultReader(reader)) {
+ reader._readRequests.forEach(function (readRequest) {
+ readRequest._reject(e);
+ });
+ reader._readRequests = new SimpleQueue();
+ } else {
+ reader._readIntoRequests.forEach(function (readIntoRequest) {
+ readIntoRequest._reject(e);
+ });
+ reader._readIntoRequests = new SimpleQueue();
+ }
+ defaultReaderClosedPromiseReject(reader, e);
+}
+function isAbortSignal(value) {
+ if (typeof value !== 'object' || value === null) {
+ return false;
+ }
+ var aborted = Object.getOwnPropertyDescriptor(AbortSignal.prototype, 'aborted').get;
+ try {
+ aborted.call(value);
+ return true;
+ } catch (e) {
+ return false;
+ }
+}
+function streamBrandCheckException$1(name) {
+ return new TypeError("ReadableStream.prototype." + name + " can only be used on a ReadableStream");
+}
+var ByteLengthQueuingStrategy = function () {
+ function ByteLengthQueuingStrategy(_a) {
+ var highWaterMark = _a.highWaterMark;
+ this.highWaterMark = highWaterMark;
+ }
+ ByteLengthQueuingStrategy.prototype.size = function (chunk) {
+ return chunk.byteLength;
+ };
+ return ByteLengthQueuingStrategy;
+}();
+var CountQueuingStrategy = function () {
+ function CountQueuingStrategy(_a) {
+ var highWaterMark = _a.highWaterMark;
+ this.highWaterMark = highWaterMark;
+ }
+ CountQueuingStrategy.prototype.size = function () {
+ return 1;
+ };
+ return CountQueuingStrategy;
+}();
+var TransformStream = function () {
+ function TransformStream(transformer, writableStrategy, readableStrategy) {
+ if (transformer === void 0) {
+ transformer = {};
+ }
+ if (writableStrategy === void 0) {
+ writableStrategy = {};
+ }
+ if (readableStrategy === void 0) {
+ readableStrategy = {};
+ }
+ var writableSizeFunction = writableStrategy.size;
+ var writableHighWaterMark = writableStrategy.highWaterMark;
+ var readableSizeFunction = readableStrategy.size;
+ var readableHighWaterMark = readableStrategy.highWaterMark;
+ var writableType = transformer.writableType;
+ if (writableType !== undefined) {
+ throw new RangeError('Invalid writable type specified');
+ }
+ var writableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(writableSizeFunction);
+ if (writableHighWaterMark === undefined) {
+ writableHighWaterMark = 1;
+ }
+ writableHighWaterMark = ValidateAndNormalizeHighWaterMark(writableHighWaterMark);
+ var readableType = transformer.readableType;
+ if (readableType !== undefined) {
+ throw new RangeError('Invalid readable type specified');
+ }
+ var readableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(readableSizeFunction);
+ if (readableHighWaterMark === undefined) {
+ readableHighWaterMark = 0;
+ }
+ readableHighWaterMark = ValidateAndNormalizeHighWaterMark(readableHighWaterMark);
+ var startPromise_resolve;
+ var startPromise = new Promise(function (resolve) {
+ startPromise_resolve = resolve;
+ });
+ InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
+ SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);
+ var startResult = InvokeOrNoop(transformer, 'start', [this._transformStreamController]);
+ startPromise_resolve(startResult);
+ }
+ Object.defineProperty(TransformStream.prototype, "readable", {
+ get: function () {
+ if (IsTransformStream(this) === false) {
+ throw streamBrandCheckException$2('readable');
+ }
+ return this._readable;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TransformStream.prototype, "writable", {
+ get: function () {
+ if (IsTransformStream(this) === false) {
+ throw streamBrandCheckException$2('writable');
+ }
+ return this._writable;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TransformStream;
+}();
+function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {
+ function startAlgorithm() {
+ return startPromise;
+ }
+ function writeAlgorithm(chunk) {
+ return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);
+ }
+ function abortAlgorithm(reason) {
+ return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);
+ }
+ function closeAlgorithm() {
+ return TransformStreamDefaultSinkCloseAlgorithm(stream);
+ }
+ stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);
+ function pullAlgorithm() {
+ return TransformStreamDefaultSourcePullAlgorithm(stream);
+ }
+ function cancelAlgorithm(reason) {
+ TransformStreamErrorWritableAndUnblockWrite(stream, reason);
+ return Promise.resolve();
+ }
+ stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
+ stream._backpressure = undefined;
+ stream._backpressureChangePromise = undefined;
+ stream._backpressureChangePromise_resolve = undefined;
+ TransformStreamSetBackpressure(stream, true);
+ stream._transformStreamController = undefined;
+}
+function IsTransformStream(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {
+ return false;
+ }
+ return true;
+}
+function TransformStreamError(stream, e) {
+ ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);
+ TransformStreamErrorWritableAndUnblockWrite(stream, e);
+}
+function TransformStreamErrorWritableAndUnblockWrite(stream, e) {
+ TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);
+ WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);
+ if (stream._backpressure === true) {
+ TransformStreamSetBackpressure(stream, false);
+ }
+}
+function TransformStreamSetBackpressure(stream, backpressure) {
+ if (stream._backpressureChangePromise !== undefined) {
+ stream._backpressureChangePromise_resolve();
+ }
+ stream._backpressureChangePromise = new Promise(function (resolve) {
+ stream._backpressureChangePromise_resolve = resolve;
+ });
+ stream._backpressure = backpressure;
+}
+var TransformStreamDefaultController = function () {
+ function TransformStreamDefaultController() {
+ throw new TypeError('TransformStreamDefaultController instances cannot be created directly');
+ }
+ Object.defineProperty(TransformStreamDefaultController.prototype, "desiredSize", {
+ get: function () {
+ if (IsTransformStreamDefaultController(this) === false) {
+ throw defaultControllerBrandCheckException$1('desiredSize');
+ }
+ var readableController = this._controlledTransformStream._readable._readableStreamController;
+ return ReadableStreamDefaultControllerGetDesiredSize(readableController);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ TransformStreamDefaultController.prototype.enqueue = function (chunk) {
+ if (IsTransformStreamDefaultController(this) === false) {
+ throw defaultControllerBrandCheckException$1('enqueue');
+ }
+ TransformStreamDefaultControllerEnqueue(this, chunk);
+ };
+ TransformStreamDefaultController.prototype.error = function (reason) {
+ if (IsTransformStreamDefaultController(this) === false) {
+ throw defaultControllerBrandCheckException$1('error');
+ }
+ TransformStreamDefaultControllerError(this, reason);
+ };
+ TransformStreamDefaultController.prototype.terminate = function () {
+ if (IsTransformStreamDefaultController(this) === false) {
+ throw defaultControllerBrandCheckException$1('terminate');
+ }
+ TransformStreamDefaultControllerTerminate(this);
+ };
+ return TransformStreamDefaultController;
+}();
+function IsTransformStreamDefaultController(x) {
+ if (!typeIsObject(x)) {
+ return false;
+ }
+ if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {
+ return false;
+ }
+ return true;
+}
+function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {
+ controller._controlledTransformStream = stream;
+ stream._transformStreamController = controller;
+ controller._transformAlgorithm = transformAlgorithm;
+ controller._flushAlgorithm = flushAlgorithm;
+}
+function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {
+ var controller = Object.create(TransformStreamDefaultController.prototype);
+ var transformAlgorithm = function (chunk) {
+ try {
+ TransformStreamDefaultControllerEnqueue(controller, chunk);
+ return Promise.resolve();
+ } catch (transformResultE) {
+ return Promise.reject(transformResultE);
+ }
+ };
+ var transformMethod = transformer.transform;
+ if (transformMethod !== undefined) {
+ if (typeof transformMethod !== 'function') {
+ throw new TypeError('transform is not a method');
+ }
+ transformAlgorithm = function (chunk) {
+ return PromiseCall(transformMethod, transformer, [
+ chunk,
+ controller
+ ]);
+ };
+ }
+ var flushAlgorithm = CreateAlgorithmFromUnderlyingMethod(transformer, 'flush', 0, [controller]);
+ SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);
+}
+function TransformStreamDefaultControllerClearAlgorithms(controller) {
+ controller._transformAlgorithm = undefined;
+ controller._flushAlgorithm = undefined;
+}
+function TransformStreamDefaultControllerEnqueue(controller, chunk) {
+ var stream = controller._controlledTransformStream;
+ var readableController = stream._readable._readableStreamController;
+ if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === false) {
+ throw new TypeError('Readable side is not in a state that permits enqueue');
+ }
+ try {
+ ReadableStreamDefaultControllerEnqueue(readableController, chunk);
+ } catch (e) {
+ TransformStreamErrorWritableAndUnblockWrite(stream, e);
+ throw stream._readable._storedError;
+ }
+ var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);
+ if (backpressure !== stream._backpressure) {
+ TransformStreamSetBackpressure(stream, true);
+ }
+}
+function TransformStreamDefaultControllerError(controller, e) {
+ TransformStreamError(controller._controlledTransformStream, e);
+}
+function TransformStreamDefaultControllerPerformTransform(controller, chunk) {
+ var transformPromise = controller._transformAlgorithm(chunk);
+ return transformPromise.catch(function (r) {
+ TransformStreamError(controller._controlledTransformStream, r);
+ throw r;
+ });
+}
+function TransformStreamDefaultControllerTerminate(controller) {
+ var stream = controller._controlledTransformStream;
+ var readableController = stream._readable._readableStreamController;
+ if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {
+ ReadableStreamDefaultControllerClose(readableController);
+ }
+ var error = new TypeError('TransformStream terminated');
+ TransformStreamErrorWritableAndUnblockWrite(stream, error);
+}
+function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {
+ var controller = stream._transformStreamController;
+ if (stream._backpressure === true) {
+ var backpressureChangePromise = stream._backpressureChangePromise;
+ return backpressureChangePromise.then(function () {
+ var writable = stream._writable;
+ var state = writable._state;
+ if (state === 'erroring') {
+ throw writable._storedError;
+ }
+ return TransformStreamDefaultControllerPerformTransform(controller, chunk);
+ });
+ }
+ return TransformStreamDefaultControllerPerformTransform(controller, chunk);
+}
+function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {
+ TransformStreamError(stream, reason);
+ return Promise.resolve();
+}
+function TransformStreamDefaultSinkCloseAlgorithm(stream) {
+ var readable = stream._readable;
+ var controller = stream._transformStreamController;
+ var flushPromise = controller._flushAlgorithm();
+ TransformStreamDefaultControllerClearAlgorithms(controller);
+ return flushPromise.then(function () {
+ if (readable._state === 'errored') {
+ throw readable._storedError;
+ }
+ var readableController = readable._readableStreamController;
+ if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {
+ ReadableStreamDefaultControllerClose(readableController);
+ }
+ }).catch(function (r) {
+ TransformStreamError(stream, r);
+ throw readable._storedError;
+ });
+}
+function TransformStreamDefaultSourcePullAlgorithm(stream) {
+ TransformStreamSetBackpressure(stream, false);
+ return stream._backpressureChangePromise;
+}
+function defaultControllerBrandCheckException$1(name) {
+ return new TypeError("TransformStreamDefaultController.prototype." + name + " can only be used on a TransformStreamDefaultController");
+}
+function streamBrandCheckException$2(name) {
+ return new TypeError("TransformStream.prototype." + name + " can only be used on a TransformStream");
+}
- function defaultWriterLockException(name) {
- return new TypeError('Cannot ' + name + ' a stream using a released writer');
- }
- function defaultWriterClosedPromiseInitialize(writer) {
- writer._closedPromise = new Promise(function (resolve, reject) {
- writer._closedPromise_resolve = resolve;
- writer._closedPromise_reject = reject;
- writer._closedPromiseState = 'pending';
- });
- }
+/***/ }),
+/* 183 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
- function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {
- writer._closedPromise = Promise.reject(reason);
- writer._closedPromise_resolve = undefined;
- writer._closedPromise_reject = undefined;
- writer._closedPromiseState = 'rejected';
- }
+"use strict";
- function defaultWriterClosedPromiseInitializeAsResolved(writer) {
- writer._closedPromise = Promise.resolve(undefined);
- writer._closedPromise_resolve = undefined;
- writer._closedPromise_reject = undefined;
- writer._closedPromiseState = 'resolved';
- }
- function defaultWriterClosedPromiseReject(writer, reason) {
- assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');
- assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');
- assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.clearPrimitiveCaches = clearPrimitiveCaches;
+exports.isEOF = isEOF;
+exports.isCmd = isCmd;
+exports.isDict = isDict;
+exports.isName = isName;
+exports.isRef = isRef;
+exports.isRefsEqual = isRefsEqual;
+exports.isStream = isStream;
+exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;
- writer._closedPromise_reject(reason);
+var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));
- writer._closedPromise_resolve = undefined;
- writer._closedPromise_reject = undefined;
- writer._closedPromiseState = 'rejected';
- }
+var _util = __w_pdfjs_require__(5);
- function defaultWriterClosedPromiseResetToRejected(writer, reason) {
- assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');
- assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');
- assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');
- writer._closedPromise = Promise.reject(reason);
- writer._closedPromiseState = 'rejected';
- }
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
- function defaultWriterClosedPromiseResolve(writer) {
- assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');
- assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');
- assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
- writer._closedPromise_resolve(undefined);
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
- writer._closedPromise_resolve = undefined;
- writer._closedPromise_reject = undefined;
- writer._closedPromiseState = 'resolved';
- }
+function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
- function defaultWriterReadyPromiseInitialize(writer) {
- writer._readyPromise = new Promise(function (resolve, reject) {
- writer._readyPromise_resolve = resolve;
- writer._readyPromise_reject = reject;
- });
- writer._readyPromiseState = 'pending';
- }
+var EOF = {};
+exports.EOF = EOF;
- function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {
- writer._readyPromise = Promise.reject(reason);
- writer._readyPromise_resolve = undefined;
- writer._readyPromise_reject = undefined;
- writer._readyPromiseState = 'rejected';
- }
+var Name = function NameClosure() {
+ var nameCache = Object.create(null);
- function defaultWriterReadyPromiseInitializeAsResolved(writer) {
- writer._readyPromise = Promise.resolve(undefined);
- writer._readyPromise_resolve = undefined;
- writer._readyPromise_reject = undefined;
- writer._readyPromiseState = 'fulfilled';
+ function Name(name) {
+ this.name = name;
}
- function defaultWriterReadyPromiseReject(writer, reason) {
- assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');
- assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');
-
- writer._readyPromise_reject(reason);
+ Name.prototype = {};
- writer._readyPromise_resolve = undefined;
- writer._readyPromise_reject = undefined;
- writer._readyPromiseState = 'rejected';
- }
+ Name.get = function Name_get(name) {
+ var nameValue = nameCache[name];
+ return nameValue ? nameValue : nameCache[name] = new Name(name);
+ };
- function defaultWriterReadyPromiseReset(writer) {
- assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');
- assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');
- writer._readyPromise = new Promise(function (resolve, reject) {
- writer._readyPromise_resolve = resolve;
- writer._readyPromise_reject = reject;
- });
- writer._readyPromiseState = 'pending';
- }
+ Name._clearCache = function () {
+ nameCache = Object.create(null);
+ };
- function defaultWriterReadyPromiseResetToRejected(writer, reason) {
- assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');
- assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');
- writer._readyPromise = Promise.reject(reason);
- writer._readyPromiseState = 'rejected';
- }
+ return Name;
+}();
- function defaultWriterReadyPromiseResolve(writer) {
- assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');
- assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');
+exports.Name = Name;
- writer._readyPromise_resolve(undefined);
+var Cmd = function CmdClosure() {
+ var cmdCache = Object.create(null);
- writer._readyPromise_resolve = undefined;
- writer._readyPromise_reject = undefined;
- writer._readyPromiseState = 'fulfilled';
+ function Cmd(cmd) {
+ this.cmd = cmd;
}
-}, function (module, exports, __w_pdfjs_require__) {
- "use strict";
-
- var _require = __w_pdfjs_require__(0),
- IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;
-
- var _require2 = __w_pdfjs_require__(1),
- assert = _require2.assert;
- exports.DequeueValue = function (container) {
- assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');
- assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');
-
- var pair = container._queue.shift();
-
- container._queueTotalSize -= pair.size;
-
- if (container._queueTotalSize < 0) {
- container._queueTotalSize = 0;
- }
-
- return pair.value;
- };
-
- exports.EnqueueValueWithSize = function (container, value, size) {
- assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');
- size = Number(size);
-
- if (!IsFiniteNonNegativeNumber(size)) {
- throw new RangeError('Size must be a finite, non-NaN, non-negative number.');
- }
-
- container._queue.push({
- value: value,
- size: size
- });
+ Cmd.prototype = {};
- container._queueTotalSize += size;
+ Cmd.get = function Cmd_get(cmd) {
+ var cmdValue = cmdCache[cmd];
+ return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);
};
- exports.PeekQueueValue = function (container) {
- assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');
- assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');
- var pair = container._queue[0];
- return pair.value;
+ Cmd._clearCache = function () {
+ cmdCache = Object.create(null);
};
- exports.ResetQueue = function (container) {
- assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');
- container._queue = [];
- container._queueTotalSize = 0;
- };
-}, function (module, exports, __w_pdfjs_require__) {
- "use strict";
+ return Cmd;
+}();
- var _createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
- }
+exports.Cmd = Cmd;
- return function (Constructor, protoProps, staticProps) {
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
- if (staticProps) defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
+var Dict = function DictClosure() {
+ var nonSerializable = function nonSerializableClosure() {
+ return nonSerializable;
+ };
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
+ function Dict(xref) {
+ this._map = Object.create(null);
+ this.xref = xref;
+ this.objId = null;
+ this.suppressEncryption = false;
+ this.__nonSerializable__ = nonSerializable;
}
- var _require = __w_pdfjs_require__(0),
- ArrayBufferCopy = _require.ArrayBufferCopy,
- CreateIterResultObject = _require.CreateIterResultObject,
- IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,
- InvokeOrNoop = _require.InvokeOrNoop,
- PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,
- TransferArrayBuffer = _require.TransferArrayBuffer,
- ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,
- ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;
-
- var _require2 = __w_pdfjs_require__(0),
- createArrayFromList = _require2.createArrayFromList,
- createDataProperty = _require2.createDataProperty,
- typeIsObject = _require2.typeIsObject;
-
- var _require3 = __w_pdfjs_require__(1),
- assert = _require3.assert,
- rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;
-
- var _require4 = __w_pdfjs_require__(3),
- DequeueValue = _require4.DequeueValue,
- EnqueueValueWithSize = _require4.EnqueueValueWithSize,
- ResetQueue = _require4.ResetQueue;
-
- var _require5 = __w_pdfjs_require__(2),
- AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,
- IsWritableStream = _require5.IsWritableStream,
- IsWritableStreamLocked = _require5.IsWritableStreamLocked,
- WritableStreamAbort = _require5.WritableStreamAbort,
- WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,
- WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,
- WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,
- WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;
-
- var ReadableStream = function () {
- function ReadableStream() {
- var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
- size = _ref.size,
- highWaterMark = _ref.highWaterMark;
-
- _classCallCheck(this, ReadableStream);
-
- this._state = 'readable';
- this._reader = undefined;
- this._storedError = undefined;
- this._disturbed = false;
- this._readableStreamController = undefined;
- var type = underlyingSource.type;
- var typeString = String(type);
-
- if (typeString === 'bytes') {
- if (highWaterMark === undefined) {
- highWaterMark = 0;
- }
-
- this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);
- } else if (type === undefined) {
- if (highWaterMark === undefined) {
- highWaterMark = 1;
- }
-
- this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);
- } else {
- throw new RangeError('Invalid type is specified');
- }
- }
+ Dict.prototype = {
+ assignXref: function Dict_assignXref(newXref) {
+ this.xref = newXref;
+ },
+ get: function get(key1, key2, key3) {
+ var value = this._map[key1];
- _createClass(ReadableStream, [{
- key: 'cancel',
- value: function cancel(reason) {
- if (IsReadableStream(this) === false) {
- return Promise.reject(streamBrandCheckException('cancel'));
- }
+ if (value === undefined && !(key1 in this._map) && key2 !== undefined) {
+ value = this._map[key2];
- if (IsReadableStreamLocked(this) === true) {
- return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));
+ if (value === undefined && !(key2 in this._map) && key3 !== undefined) {
+ value = this._map[key3];
}
-
- return ReadableStreamCancel(this, reason);
}
- }, {
- key: 'getReader',
- value: function getReader() {
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- mode = _ref2.mode;
-
- if (IsReadableStream(this) === false) {
- throw streamBrandCheckException('getReader');
- }
- if (mode === undefined) {
- return AcquireReadableStreamDefaultReader(this);
- }
-
- mode = String(mode);
-
- if (mode === 'byob') {
- return AcquireReadableStreamBYOBReader(this);
- }
-
- throw new RangeError('Invalid mode is specified');
- }
- }, {
- key: 'pipeThrough',
- value: function pipeThrough(_ref3, options) {
- var writable = _ref3.writable,
- readable = _ref3.readable;
- var promise = this.pipeTo(writable, options);
- ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);
- return readable;
+ if (value instanceof Ref && this.xref) {
+ return this.xref.fetch(value, this.suppressEncryption);
}
- }, {
- key: 'pipeTo',
- value: function pipeTo(dest) {
- var _this = this;
-
- var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
- preventClose = _ref4.preventClose,
- preventAbort = _ref4.preventAbort,
- preventCancel = _ref4.preventCancel;
-
- if (IsReadableStream(this) === false) {
- return Promise.reject(streamBrandCheckException('pipeTo'));
- }
-
- if (IsWritableStream(dest) === false) {
- return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream'));
- }
-
- preventClose = Boolean(preventClose);
- preventAbort = Boolean(preventAbort);
- preventCancel = Boolean(preventCancel);
-
- if (IsReadableStreamLocked(this) === true) {
- return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));
- }
-
- if (IsWritableStreamLocked(dest) === true) {
- return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));
- }
-
- var reader = AcquireReadableStreamDefaultReader(this);
- var writer = AcquireWritableStreamDefaultWriter(dest);
- var shuttingDown = false;
- var currentWrite = Promise.resolve();
- return new Promise(function (resolve, reject) {
- function pipeLoop() {
- currentWrite = Promise.resolve();
- if (shuttingDown === true) {
- return Promise.resolve();
- }
+ return value;
+ },
+ getAsync: function () {
+ var _getAsync = _asyncToGenerator(
+ /*#__PURE__*/
+ _regenerator["default"].mark(function _callee(key1, key2, key3) {
+ var value;
+ return _regenerator["default"].wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ value = this._map[key1];
- return writer._readyPromise.then(function () {
- return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {
- var value = _ref5.value,
- done = _ref5.done;
+ if (value === undefined && !(key1 in this._map) && key2 !== undefined) {
+ value = this._map[key2];
- if (done === true) {
- return;
+ if (value === undefined && !(key2 in this._map) && key3 !== undefined) {
+ value = this._map[key3];
+ }
}
- currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});
- });
- }).then(pipeLoop);
- }
-
- isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {
- if (preventAbort === false) {
- shutdownWithAction(function () {
- return WritableStreamAbort(dest, storedError);
- }, true, storedError);
- } else {
- shutdown(true, storedError);
- }
- });
- isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {
- if (preventCancel === false) {
- shutdownWithAction(function () {
- return ReadableStreamCancel(_this, storedError);
- }, true, storedError);
- } else {
- shutdown(true, storedError);
- }
- });
- isOrBecomesClosed(_this, reader._closedPromise, function () {
- if (preventClose === false) {
- shutdownWithAction(function () {
- return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);
- });
- } else {
- shutdown();
- }
- });
-
- if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {
- var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');
-
- if (preventCancel === false) {
- shutdownWithAction(function () {
- return ReadableStreamCancel(_this, destClosed);
- }, true, destClosed);
- } else {
- shutdown(true, destClosed);
- }
- }
-
- pipeLoop().catch(function (err) {
- currentWrite = Promise.resolve();
- rethrowAssertionErrorRejection(err);
- });
-
- function waitForWritesToFinish() {
- var oldCurrentWrite = currentWrite;
- return currentWrite.then(function () {
- return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;
- });
- }
-
- function isOrBecomesErrored(stream, promise, action) {
- if (stream._state === 'errored') {
- action(stream._storedError);
- } else {
- promise.catch(action).catch(rethrowAssertionErrorRejection);
- }
- }
-
- function isOrBecomesClosed(stream, promise, action) {
- if (stream._state === 'closed') {
- action();
- } else {
- promise.then(action).catch(rethrowAssertionErrorRejection);
- }
- }
-
- function shutdownWithAction(action, originalIsError, originalError) {
- if (shuttingDown === true) {
- return;
- }
-
- shuttingDown = true;
-
- if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
- waitForWritesToFinish().then(doTheRest);
- } else {
- doTheRest();
- }
-
- function doTheRest() {
- action().then(function () {
- return finalize(originalIsError, originalError);
- }, function (newError) {
- return finalize(true, newError);
- }).catch(rethrowAssertionErrorRejection);
- }
- }
-
- function shutdown(isError, error) {
- if (shuttingDown === true) {
- return;
- }
-
- shuttingDown = true;
+ if (!(value instanceof Ref && this.xref)) {
+ _context.next = 4;
+ break;
+ }
- if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
- waitForWritesToFinish().then(function () {
- return finalize(isError, error);
- }).catch(rethrowAssertionErrorRejection);
- } else {
- finalize(isError, error);
- }
- }
+ return _context.abrupt("return", this.xref.fetchAsync(value, this.suppressEncryption));
- function finalize(isError, error) {
- WritableStreamDefaultWriterRelease(writer);
- ReadableStreamReaderGenericRelease(reader);
+ case 4:
+ return _context.abrupt("return", value);
- if (isError) {
- reject(error);
- } else {
- resolve(undefined);
+ case 5:
+ case "end":
+ return _context.stop();
}
}
- });
- }
- }, {
- key: 'tee',
- value: function tee() {
- if (IsReadableStream(this) === false) {
- throw streamBrandCheckException('tee');
- }
-
- var branches = ReadableStreamTee(this, false);
- return createArrayFromList(branches);
- }
- }, {
- key: 'locked',
- get: function get() {
- if (IsReadableStream(this) === false) {
- throw streamBrandCheckException('locked');
- }
-
- return IsReadableStreamLocked(this);
- }
- }]);
-
- return ReadableStream;
- }();
-
- module.exports = {
- ReadableStream: ReadableStream,
- IsReadableStreamDisturbed: IsReadableStreamDisturbed,
- ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,
- ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,
- ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,
- ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize
- };
-
- function AcquireReadableStreamBYOBReader(stream) {
- return new ReadableStreamBYOBReader(stream);
- }
-
- function AcquireReadableStreamDefaultReader(stream) {
- return new ReadableStreamDefaultReader(stream);
- }
-
- function IsReadableStream(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {
- return false;
- }
-
- return true;
- }
-
- function IsReadableStreamDisturbed(stream) {
- assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');
- return stream._disturbed;
- }
-
- function IsReadableStreamLocked(stream) {
- assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');
-
- if (stream._reader === undefined) {
- return false;
- }
-
- return true;
- }
-
- function ReadableStreamTee(stream, cloneForBranch2) {
- assert(IsReadableStream(stream) === true);
- assert(typeof cloneForBranch2 === 'boolean');
- var reader = AcquireReadableStreamDefaultReader(stream);
- var teeState = {
- closedOrErrored: false,
- canceled1: false,
- canceled2: false,
- reason1: undefined,
- reason2: undefined
- };
- teeState.promise = new Promise(function (resolve) {
- teeState._resolve = resolve;
- });
- var pull = create_ReadableStreamTeePullFunction();
- pull._reader = reader;
- pull._teeState = teeState;
- pull._cloneForBranch2 = cloneForBranch2;
- var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();
- cancel1._stream = stream;
- cancel1._teeState = teeState;
- var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();
- cancel2._stream = stream;
- cancel2._teeState = teeState;
- var underlyingSource1 = Object.create(Object.prototype);
- createDataProperty(underlyingSource1, 'pull', pull);
- createDataProperty(underlyingSource1, 'cancel', cancel1);
- var branch1Stream = new ReadableStream(underlyingSource1);
- var underlyingSource2 = Object.create(Object.prototype);
- createDataProperty(underlyingSource2, 'pull', pull);
- createDataProperty(underlyingSource2, 'cancel', cancel2);
- var branch2Stream = new ReadableStream(underlyingSource2);
- pull._branch1 = branch1Stream._readableStreamController;
- pull._branch2 = branch2Stream._readableStreamController;
-
- reader._closedPromise.catch(function (r) {
- if (teeState.closedOrErrored === true) {
- return;
- }
-
- ReadableStreamDefaultControllerError(pull._branch1, r);
- ReadableStreamDefaultControllerError(pull._branch2, r);
- teeState.closedOrErrored = true;
- });
-
- return [branch1Stream, branch2Stream];
- }
-
- function create_ReadableStreamTeePullFunction() {
- function f() {
- var reader = f._reader,
- branch1 = f._branch1,
- branch2 = f._branch2,
- teeState = f._teeState;
- return ReadableStreamDefaultReaderRead(reader).then(function (result) {
- assert(typeIsObject(result));
- var value = result.value;
- var done = result.done;
- assert(typeof done === 'boolean');
-
- if (done === true && teeState.closedOrErrored === false) {
- if (teeState.canceled1 === false) {
- ReadableStreamDefaultControllerClose(branch1);
- }
-
- if (teeState.canceled2 === false) {
- ReadableStreamDefaultControllerClose(branch2);
- }
-
- teeState.closedOrErrored = true;
- }
-
- if (teeState.closedOrErrored === true) {
- return;
- }
-
- var value1 = value;
- var value2 = value;
-
- if (teeState.canceled1 === false) {
- ReadableStreamDefaultControllerEnqueue(branch1, value1);
- }
-
- if (teeState.canceled2 === false) {
- ReadableStreamDefaultControllerEnqueue(branch2, value2);
- }
- });
- }
-
- return f;
- }
-
- function create_ReadableStreamTeeBranch1CancelFunction() {
- function f(reason) {
- var stream = f._stream,
- teeState = f._teeState;
- teeState.canceled1 = true;
- teeState.reason1 = reason;
-
- if (teeState.canceled2 === true) {
- var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);
- var cancelResult = ReadableStreamCancel(stream, compositeReason);
-
- teeState._resolve(cancelResult);
- }
-
- return teeState.promise;
- }
-
- return f;
- }
-
- function create_ReadableStreamTeeBranch2CancelFunction() {
- function f(reason) {
- var stream = f._stream,
- teeState = f._teeState;
- teeState.canceled2 = true;
- teeState.reason2 = reason;
-
- if (teeState.canceled1 === true) {
- var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);
- var cancelResult = ReadableStreamCancel(stream, compositeReason);
-
- teeState._resolve(cancelResult);
- }
-
- return teeState.promise;
- }
-
- return f;
- }
-
- function ReadableStreamAddReadIntoRequest(stream) {
- assert(IsReadableStreamBYOBReader(stream._reader) === true);
- assert(stream._state === 'readable' || stream._state === 'closed');
- var promise = new Promise(function (resolve, reject) {
- var readIntoRequest = {
- _resolve: resolve,
- _reject: reject
- };
-
- stream._reader._readIntoRequests.push(readIntoRequest);
- });
- return promise;
- }
-
- function ReadableStreamAddReadRequest(stream) {
- assert(IsReadableStreamDefaultReader(stream._reader) === true);
- assert(stream._state === 'readable');
- var promise = new Promise(function (resolve, reject) {
- var readRequest = {
- _resolve: resolve,
- _reject: reject
- };
-
- stream._reader._readRequests.push(readRequest);
- });
- return promise;
- }
-
- function ReadableStreamCancel(stream, reason) {
- stream._disturbed = true;
-
- if (stream._state === 'closed') {
- return Promise.resolve(undefined);
- }
-
- if (stream._state === 'errored') {
- return Promise.reject(stream._storedError);
- }
-
- ReadableStreamClose(stream);
-
- var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);
-
- return sourceCancelPromise.then(function () {
- return undefined;
- });
- }
-
- function ReadableStreamClose(stream) {
- assert(stream._state === 'readable');
- stream._state = 'closed';
- var reader = stream._reader;
-
- if (reader === undefined) {
- return undefined;
- }
-
- if (IsReadableStreamDefaultReader(reader) === true) {
- for (var i = 0; i < reader._readRequests.length; i++) {
- var _resolve = reader._readRequests[i]._resolve;
-
- _resolve(CreateIterResultObject(undefined, true));
- }
-
- reader._readRequests = [];
- }
-
- defaultReaderClosedPromiseResolve(reader);
- return undefined;
- }
-
- function ReadableStreamError(stream, e) {
- assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');
- assert(stream._state === 'readable', 'state must be readable');
- stream._state = 'errored';
- stream._storedError = e;
- var reader = stream._reader;
-
- if (reader === undefined) {
- return undefined;
- }
-
- if (IsReadableStreamDefaultReader(reader) === true) {
- for (var i = 0; i < reader._readRequests.length; i++) {
- var readRequest = reader._readRequests[i];
-
- readRequest._reject(e);
- }
-
- reader._readRequests = [];
- } else {
- assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');
-
- for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {
- var readIntoRequest = reader._readIntoRequests[_i];
-
- readIntoRequest._reject(e);
- }
-
- reader._readIntoRequests = [];
- }
-
- defaultReaderClosedPromiseReject(reader, e);
-
- reader._closedPromise.catch(function () {});
- }
-
- function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {
- var reader = stream._reader;
- assert(reader._readIntoRequests.length > 0);
-
- var readIntoRequest = reader._readIntoRequests.shift();
-
- readIntoRequest._resolve(CreateIterResultObject(chunk, done));
- }
-
- function ReadableStreamFulfillReadRequest(stream, chunk, done) {
- var reader = stream._reader;
- assert(reader._readRequests.length > 0);
-
- var readRequest = reader._readRequests.shift();
-
- readRequest._resolve(CreateIterResultObject(chunk, done));
- }
-
- function ReadableStreamGetNumReadIntoRequests(stream) {
- return stream._reader._readIntoRequests.length;
- }
-
- function ReadableStreamGetNumReadRequests(stream) {
- return stream._reader._readRequests.length;
- }
-
- function ReadableStreamHasBYOBReader(stream) {
- var reader = stream._reader;
-
- if (reader === undefined) {
- return false;
- }
-
- if (IsReadableStreamBYOBReader(reader) === false) {
- return false;
- }
-
- return true;
- }
-
- function ReadableStreamHasDefaultReader(stream) {
- var reader = stream._reader;
-
- if (reader === undefined) {
- return false;
- }
-
- if (IsReadableStreamDefaultReader(reader) === false) {
- return false;
- }
-
- return true;
- }
-
- var ReadableStreamDefaultReader = function () {
- function ReadableStreamDefaultReader(stream) {
- _classCallCheck(this, ReadableStreamDefaultReader);
-
- if (IsReadableStream(stream) === false) {
- throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');
- }
-
- if (IsReadableStreamLocked(stream) === true) {
- throw new TypeError('This stream has already been locked for exclusive reading by another reader');
- }
-
- ReadableStreamReaderGenericInitialize(this, stream);
- this._readRequests = [];
- }
-
- _createClass(ReadableStreamDefaultReader, [{
- key: 'cancel',
- value: function cancel(reason) {
- if (IsReadableStreamDefaultReader(this) === false) {
- return Promise.reject(defaultReaderBrandCheckException('cancel'));
- }
-
- if (this._ownerReadableStream === undefined) {
- return Promise.reject(readerLockException('cancel'));
- }
-
- return ReadableStreamReaderGenericCancel(this, reason);
- }
- }, {
- key: 'read',
- value: function read() {
- if (IsReadableStreamDefaultReader(this) === false) {
- return Promise.reject(defaultReaderBrandCheckException('read'));
- }
-
- if (this._ownerReadableStream === undefined) {
- return Promise.reject(readerLockException('read from'));
- }
-
- return ReadableStreamDefaultReaderRead(this);
- }
- }, {
- key: 'releaseLock',
- value: function releaseLock() {
- if (IsReadableStreamDefaultReader(this) === false) {
- throw defaultReaderBrandCheckException('releaseLock');
- }
-
- if (this._ownerReadableStream === undefined) {
- return;
- }
-
- if (this._readRequests.length > 0) {
- throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
- }
-
- ReadableStreamReaderGenericRelease(this);
- }
- }, {
- key: 'closed',
- get: function get() {
- if (IsReadableStreamDefaultReader(this) === false) {
- return Promise.reject(defaultReaderBrandCheckException('closed'));
- }
-
- return this._closedPromise;
- }
- }]);
-
- return ReadableStreamDefaultReader;
- }();
-
- var ReadableStreamBYOBReader = function () {
- function ReadableStreamBYOBReader(stream) {
- _classCallCheck(this, ReadableStreamBYOBReader);
-
- if (!IsReadableStream(stream)) {
- throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');
- }
-
- if (IsReadableByteStreamController(stream._readableStreamController) === false) {
- throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');
- }
-
- if (IsReadableStreamLocked(stream)) {
- throw new TypeError('This stream has already been locked for exclusive reading by another reader');
- }
-
- ReadableStreamReaderGenericInitialize(this, stream);
- this._readIntoRequests = [];
- }
-
- _createClass(ReadableStreamBYOBReader, [{
- key: 'cancel',
- value: function cancel(reason) {
- if (!IsReadableStreamBYOBReader(this)) {
- return Promise.reject(byobReaderBrandCheckException('cancel'));
- }
-
- if (this._ownerReadableStream === undefined) {
- return Promise.reject(readerLockException('cancel'));
- }
-
- return ReadableStreamReaderGenericCancel(this, reason);
- }
- }, {
- key: 'read',
- value: function read(view) {
- if (!IsReadableStreamBYOBReader(this)) {
- return Promise.reject(byobReaderBrandCheckException('read'));
- }
-
- if (this._ownerReadableStream === undefined) {
- return Promise.reject(readerLockException('read from'));
- }
-
- if (!ArrayBuffer.isView(view)) {
- return Promise.reject(new TypeError('view must be an array buffer view'));
- }
-
- if (view.byteLength === 0) {
- return Promise.reject(new TypeError('view must have non-zero byteLength'));
- }
-
- return ReadableStreamBYOBReaderRead(this, view);
- }
- }, {
- key: 'releaseLock',
- value: function releaseLock() {
- if (!IsReadableStreamBYOBReader(this)) {
- throw byobReaderBrandCheckException('releaseLock');
- }
-
- if (this._ownerReadableStream === undefined) {
- return;
- }
-
- if (this._readIntoRequests.length > 0) {
- throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
- }
-
- ReadableStreamReaderGenericRelease(this);
- }
- }, {
- key: 'closed',
- get: function get() {
- if (!IsReadableStreamBYOBReader(this)) {
- return Promise.reject(byobReaderBrandCheckException('closed'));
- }
-
- return this._closedPromise;
- }
- }]);
-
- return ReadableStreamBYOBReader;
- }();
-
- function IsReadableStreamBYOBReader(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {
- return false;
- }
-
- return true;
- }
-
- function IsReadableStreamDefaultReader(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {
- return false;
- }
-
- return true;
- }
-
- function ReadableStreamReaderGenericInitialize(reader, stream) {
- reader._ownerReadableStream = stream;
- stream._reader = reader;
-
- if (stream._state === 'readable') {
- defaultReaderClosedPromiseInitialize(reader);
- } else if (stream._state === 'closed') {
- defaultReaderClosedPromiseInitializeAsResolved(reader);
- } else {
- assert(stream._state === 'errored', 'state must be errored');
- defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);
-
- reader._closedPromise.catch(function () {});
- }
- }
-
- function ReadableStreamReaderGenericCancel(reader, reason) {
- var stream = reader._ownerReadableStream;
- assert(stream !== undefined);
- return ReadableStreamCancel(stream, reason);
- }
-
- function ReadableStreamReaderGenericRelease(reader) {
- assert(reader._ownerReadableStream !== undefined);
- assert(reader._ownerReadableStream._reader === reader);
-
- if (reader._ownerReadableStream._state === 'readable') {
- defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
- } else {
- defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
- }
-
- reader._closedPromise.catch(function () {});
-
- reader._ownerReadableStream._reader = undefined;
- reader._ownerReadableStream = undefined;
- }
-
- function ReadableStreamBYOBReaderRead(reader, view) {
- var stream = reader._ownerReadableStream;
- assert(stream !== undefined);
- stream._disturbed = true;
-
- if (stream._state === 'errored') {
- return Promise.reject(stream._storedError);
- }
-
- return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);
- }
-
- function ReadableStreamDefaultReaderRead(reader) {
- var stream = reader._ownerReadableStream;
- assert(stream !== undefined);
- stream._disturbed = true;
-
- if (stream._state === 'closed') {
- return Promise.resolve(CreateIterResultObject(undefined, true));
- }
-
- if (stream._state === 'errored') {
- return Promise.reject(stream._storedError);
- }
-
- assert(stream._state === 'readable');
- return stream._readableStreamController.__pullSteps();
- }
-
- var ReadableStreamDefaultController = function () {
- function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {
- _classCallCheck(this, ReadableStreamDefaultController);
-
- if (IsReadableStream(stream) === false) {
- throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');
- }
-
- if (stream._readableStreamController !== undefined) {
- throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');
- }
-
- this._controlledReadableStream = stream;
- this._underlyingSource = underlyingSource;
- this._queue = undefined;
- this._queueTotalSize = undefined;
- ResetQueue(this);
- this._started = false;
- this._closeRequested = false;
- this._pullAgain = false;
- this._pulling = false;
- var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
- this._strategySize = normalizedStrategy.size;
- this._strategyHWM = normalizedStrategy.highWaterMark;
- var controller = this;
- var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);
- Promise.resolve(startResult).then(function () {
- controller._started = true;
- assert(controller._pulling === false);
- assert(controller._pullAgain === false);
- ReadableStreamDefaultControllerCallPullIfNeeded(controller);
- }, function (r) {
- ReadableStreamDefaultControllerErrorIfNeeded(controller, r);
- }).catch(rethrowAssertionErrorRejection);
- }
-
- _createClass(ReadableStreamDefaultController, [{
- key: 'close',
- value: function close() {
- if (IsReadableStreamDefaultController(this) === false) {
- throw defaultControllerBrandCheckException('close');
- }
-
- if (this._closeRequested === true) {
- throw new TypeError('The stream has already been closed; do not close it again!');
- }
-
- var state = this._controlledReadableStream._state;
-
- if (state !== 'readable') {
- throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');
- }
-
- ReadableStreamDefaultControllerClose(this);
- }
- }, {
- key: 'enqueue',
- value: function enqueue(chunk) {
- if (IsReadableStreamDefaultController(this) === false) {
- throw defaultControllerBrandCheckException('enqueue');
- }
-
- if (this._closeRequested === true) {
- throw new TypeError('stream is closed or draining');
- }
-
- var state = this._controlledReadableStream._state;
-
- if (state !== 'readable') {
- throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');
- }
-
- return ReadableStreamDefaultControllerEnqueue(this, chunk);
- }
- }, {
- key: 'error',
- value: function error(e) {
- if (IsReadableStreamDefaultController(this) === false) {
- throw defaultControllerBrandCheckException('error');
- }
-
- var stream = this._controlledReadableStream;
-
- if (stream._state !== 'readable') {
- throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');
- }
-
- ReadableStreamDefaultControllerError(this, e);
- }
- }, {
- key: '__cancelSteps',
- value: function __cancelSteps(reason) {
- ResetQueue(this);
- return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);
- }
- }, {
- key: '__pullSteps',
- value: function __pullSteps() {
- var stream = this._controlledReadableStream;
-
- if (this._queue.length > 0) {
- var chunk = DequeueValue(this);
-
- if (this._closeRequested === true && this._queue.length === 0) {
- ReadableStreamClose(stream);
- } else {
- ReadableStreamDefaultControllerCallPullIfNeeded(this);
- }
-
- return Promise.resolve(CreateIterResultObject(chunk, false));
- }
-
- var pendingPromise = ReadableStreamAddReadRequest(stream);
- ReadableStreamDefaultControllerCallPullIfNeeded(this);
- return pendingPromise;
- }
- }, {
- key: 'desiredSize',
- get: function get() {
- if (IsReadableStreamDefaultController(this) === false) {
- throw defaultControllerBrandCheckException('desiredSize');
- }
-
- return ReadableStreamDefaultControllerGetDesiredSize(this);
- }
- }]);
-
- return ReadableStreamDefaultController;
- }();
-
- function IsReadableStreamDefaultController(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {
- return false;
- }
-
- return true;
- }
-
- function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {
- var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);
-
- if (shouldPull === false) {
- return undefined;
- }
-
- if (controller._pulling === true) {
- controller._pullAgain = true;
- return undefined;
- }
-
- assert(controller._pullAgain === false);
- controller._pulling = true;
- var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);
- pullPromise.then(function () {
- controller._pulling = false;
-
- if (controller._pullAgain === true) {
- controller._pullAgain = false;
- return ReadableStreamDefaultControllerCallPullIfNeeded(controller);
- }
-
- return undefined;
- }, function (e) {
- ReadableStreamDefaultControllerErrorIfNeeded(controller, e);
- }).catch(rethrowAssertionErrorRejection);
- return undefined;
- }
-
- function ReadableStreamDefaultControllerShouldCallPull(controller) {
- var stream = controller._controlledReadableStream;
-
- if (stream._state === 'closed' || stream._state === 'errored') {
- return false;
- }
-
- if (controller._closeRequested === true) {
- return false;
- }
-
- if (controller._started === false) {
- return false;
- }
-
- if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
- return true;
- }
-
- var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
-
- if (desiredSize > 0) {
- return true;
- }
-
- return false;
- }
-
- function ReadableStreamDefaultControllerClose(controller) {
- var stream = controller._controlledReadableStream;
- assert(controller._closeRequested === false);
- assert(stream._state === 'readable');
- controller._closeRequested = true;
-
- if (controller._queue.length === 0) {
- ReadableStreamClose(stream);
- }
- }
-
- function ReadableStreamDefaultControllerEnqueue(controller, chunk) {
- var stream = controller._controlledReadableStream;
- assert(controller._closeRequested === false);
- assert(stream._state === 'readable');
-
- if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
- ReadableStreamFulfillReadRequest(stream, chunk, false);
- } else {
- var chunkSize = 1;
-
- if (controller._strategySize !== undefined) {
- var strategySize = controller._strategySize;
-
- try {
- chunkSize = strategySize(chunk);
- } catch (chunkSizeE) {
- ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
- throw chunkSizeE;
- }
- }
+ }, _callee, this);
+ }));
- try {
- EnqueueValueWithSize(controller, chunk, chunkSize);
- } catch (enqueueE) {
- ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
- throw enqueueE;
+ function getAsync(_x, _x2, _x3) {
+ return _getAsync.apply(this, arguments);
}
- }
-
- ReadableStreamDefaultControllerCallPullIfNeeded(controller);
- return undefined;
- }
-
- function ReadableStreamDefaultControllerError(controller, e) {
- var stream = controller._controlledReadableStream;
- assert(stream._state === 'readable');
- ResetQueue(controller);
- ReadableStreamError(stream, e);
- }
-
- function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {
- if (controller._controlledReadableStream._state === 'readable') {
- ReadableStreamDefaultControllerError(controller, e);
- }
- }
-
- function ReadableStreamDefaultControllerGetDesiredSize(controller) {
- var stream = controller._controlledReadableStream;
- var state = stream._state;
-
- if (state === 'errored') {
- return null;
- }
-
- if (state === 'closed') {
- return 0;
- }
-
- return controller._strategyHWM - controller._queueTotalSize;
- }
- var ReadableStreamBYOBRequest = function () {
- function ReadableStreamBYOBRequest(controller, view) {
- _classCallCheck(this, ReadableStreamBYOBRequest);
-
- this._associatedReadableByteStreamController = controller;
- this._view = view;
- }
-
- _createClass(ReadableStreamBYOBRequest, [{
- key: 'respond',
- value: function respond(bytesWritten) {
- if (IsReadableStreamBYOBRequest(this) === false) {
- throw byobRequestBrandCheckException('respond');
- }
-
- if (this._associatedReadableByteStreamController === undefined) {
- throw new TypeError('This BYOB request has been invalidated');
- }
+ return getAsync;
+ }(),
+ getArray: function getArray(key1, key2, key3) {
+ var value = this.get(key1, key2, key3);
- ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);
+ if (!Array.isArray(value) || !this.xref) {
+ return value;
}
- }, {
- key: 'respondWithNewView',
- value: function respondWithNewView(view) {
- if (IsReadableStreamBYOBRequest(this) === false) {
- throw byobRequestBrandCheckException('respond');
- }
- if (this._associatedReadableByteStreamController === undefined) {
- throw new TypeError('This BYOB request has been invalidated');
- }
+ value = value.slice();
- if (!ArrayBuffer.isView(view)) {
- throw new TypeError('You can only respond with array buffer views');
+ for (var i = 0, ii = value.length; i < ii; i++) {
+ if (!(value[i] instanceof Ref)) {
+ continue;
}
- ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);
- }
- }, {
- key: 'view',
- get: function get() {
- return this._view;
+ value[i] = this.xref.fetch(value[i], this.suppressEncryption);
}
- }]);
-
- return ReadableStreamBYOBRequest;
- }();
-
- var ReadableByteStreamController = function () {
- function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {
- _classCallCheck(this, ReadableByteStreamController);
-
- if (IsReadableStream(stream) === false) {
- throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');
- }
-
- if (stream._readableStreamController !== undefined) {
- throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');
- }
-
- this._controlledReadableStream = stream;
- this._underlyingByteSource = underlyingByteSource;
- this._pullAgain = false;
- this._pulling = false;
- ReadableByteStreamControllerClearPendingPullIntos(this);
- this._queue = this._queueTotalSize = undefined;
- ResetQueue(this);
- this._closeRequested = false;
- this._started = false;
- this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);
- var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;
- if (autoAllocateChunkSize !== undefined) {
- if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {
- throw new RangeError('autoAllocateChunkSize must be a positive integer');
- }
+ return value;
+ },
+ getRaw: function Dict_getRaw(key) {
+ return this._map[key];
+ },
+ getKeys: function Dict_getKeys() {
+ return Object.keys(this._map);
+ },
+ set: function Dict_set(key, value) {
+ this._map[key] = value;
+ },
+ has: function Dict_has(key) {
+ return key in this._map;
+ },
+ forEach: function Dict_forEach(callback) {
+ for (var key in this._map) {
+ callback(key, this.get(key));
}
-
- this._autoAllocateChunkSize = autoAllocateChunkSize;
- this._pendingPullIntos = [];
- var controller = this;
- var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);
- Promise.resolve(startResult).then(function () {
- controller._started = true;
- assert(controller._pulling === false);
- assert(controller._pullAgain === false);
- ReadableByteStreamControllerCallPullIfNeeded(controller);
- }, function (r) {
- if (stream._state === 'readable') {
- ReadableByteStreamControllerError(controller, r);
- }
- }).catch(rethrowAssertionErrorRejection);
}
+ };
+ Dict.empty = new Dict(null);
- _createClass(ReadableByteStreamController, [{
- key: 'close',
- value: function close() {
- if (IsReadableByteStreamController(this) === false) {
- throw byteStreamControllerBrandCheckException('close');
- }
-
- if (this._closeRequested === true) {
- throw new TypeError('The stream has already been closed; do not close it again!');
- }
-
- var state = this._controlledReadableStream._state;
-
- if (state !== 'readable') {
- throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');
- }
-
- ReadableByteStreamControllerClose(this);
- }
- }, {
- key: 'enqueue',
- value: function enqueue(chunk) {
- if (IsReadableByteStreamController(this) === false) {
- throw byteStreamControllerBrandCheckException('enqueue');
- }
-
- if (this._closeRequested === true) {
- throw new TypeError('stream is closed or draining');
- }
-
- var state = this._controlledReadableStream._state;
-
- if (state !== 'readable') {
- throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');
- }
-
- if (!ArrayBuffer.isView(chunk)) {
- throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');
- }
-
- ReadableByteStreamControllerEnqueue(this, chunk);
- }
- }, {
- key: 'error',
- value: function error(e) {
- if (IsReadableByteStreamController(this) === false) {
- throw byteStreamControllerBrandCheckException('error');
- }
-
- var stream = this._controlledReadableStream;
-
- if (stream._state !== 'readable') {
- throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');
- }
-
- ReadableByteStreamControllerError(this, e);
- }
- }, {
- key: '__cancelSteps',
- value: function __cancelSteps(reason) {
- if (this._pendingPullIntos.length > 0) {
- var firstDescriptor = this._pendingPullIntos[0];
- firstDescriptor.bytesFilled = 0;
- }
-
- ResetQueue(this);
- return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);
- }
- }, {
- key: '__pullSteps',
- value: function __pullSteps() {
- var stream = this._controlledReadableStream;
- assert(ReadableStreamHasDefaultReader(stream) === true);
-
- if (this._queueTotalSize > 0) {
- assert(ReadableStreamGetNumReadRequests(stream) === 0);
-
- var entry = this._queue.shift();
-
- this._queueTotalSize -= entry.byteLength;
- ReadableByteStreamControllerHandleQueueDrain(this);
- var view = void 0;
-
- try {
- view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);
- } catch (viewE) {
- return Promise.reject(viewE);
- }
-
- return Promise.resolve(CreateIterResultObject(view, false));
- }
-
- var autoAllocateChunkSize = this._autoAllocateChunkSize;
-
- if (autoAllocateChunkSize !== undefined) {
- var buffer = void 0;
-
- try {
- buffer = new ArrayBuffer(autoAllocateChunkSize);
- } catch (bufferE) {
- return Promise.reject(bufferE);
- }
-
- var pullIntoDescriptor = {
- buffer: buffer,
- byteOffset: 0,
- byteLength: autoAllocateChunkSize,
- bytesFilled: 0,
- elementSize: 1,
- ctor: Uint8Array,
- readerType: 'default'
- };
+ Dict.merge = function (xref, dictArray) {
+ var mergedDict = new Dict(xref);
- this._pendingPullIntos.push(pullIntoDescriptor);
- }
+ for (var i = 0, ii = dictArray.length; i < ii; i++) {
+ var dict = dictArray[i];
- var promise = ReadableStreamAddReadRequest(stream);
- ReadableByteStreamControllerCallPullIfNeeded(this);
- return promise;
+ if (!isDict(dict)) {
+ continue;
}
- }, {
- key: 'byobRequest',
- get: function get() {
- if (IsReadableByteStreamController(this) === false) {
- throw byteStreamControllerBrandCheckException('byobRequest');
- }
- if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {
- var firstDescriptor = this._pendingPullIntos[0];
- var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);
- this._byobRequest = new ReadableStreamBYOBRequest(this, view);
- }
-
- return this._byobRequest;
- }
- }, {
- key: 'desiredSize',
- get: function get() {
- if (IsReadableByteStreamController(this) === false) {
- throw byteStreamControllerBrandCheckException('desiredSize');
+ for (var keyName in dict._map) {
+ if (mergedDict._map[keyName] !== undefined) {
+ continue;
}
- return ReadableByteStreamControllerGetDesiredSize(this);
- }
- }]);
-
- return ReadableByteStreamController;
- }();
-
- function IsReadableByteStreamController(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {
- return false;
- }
-
- return true;
- }
-
- function IsReadableStreamBYOBRequest(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {
- return false;
- }
-
- return true;
- }
-
- function ReadableByteStreamControllerCallPullIfNeeded(controller) {
- var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);
-
- if (shouldPull === false) {
- return undefined;
- }
-
- if (controller._pulling === true) {
- controller._pullAgain = true;
- return undefined;
- }
-
- assert(controller._pullAgain === false);
- controller._pulling = true;
- var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);
- pullPromise.then(function () {
- controller._pulling = false;
-
- if (controller._pullAgain === true) {
- controller._pullAgain = false;
- ReadableByteStreamControllerCallPullIfNeeded(controller);
- }
- }, function (e) {
- if (controller._controlledReadableStream._state === 'readable') {
- ReadableByteStreamControllerError(controller, e);
- }
- }).catch(rethrowAssertionErrorRejection);
- return undefined;
- }
-
- function ReadableByteStreamControllerClearPendingPullIntos(controller) {
- ReadableByteStreamControllerInvalidateBYOBRequest(controller);
- controller._pendingPullIntos = [];
- }
-
- function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {
- assert(stream._state !== 'errored', 'state must not be errored');
- var done = false;
-
- if (stream._state === 'closed') {
- assert(pullIntoDescriptor.bytesFilled === 0);
- done = true;
- }
-
- var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
-
- if (pullIntoDescriptor.readerType === 'default') {
- ReadableStreamFulfillReadRequest(stream, filledView, done);
- } else {
- assert(pullIntoDescriptor.readerType === 'byob');
- ReadableStreamFulfillReadIntoRequest(stream, filledView, done);
- }
- }
-
- function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {
- var bytesFilled = pullIntoDescriptor.bytesFilled;
- var elementSize = pullIntoDescriptor.elementSize;
- assert(bytesFilled <= pullIntoDescriptor.byteLength);
- assert(bytesFilled % elementSize === 0);
- return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);
- }
-
- function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {
- controller._queue.push({
- buffer: buffer,
- byteOffset: byteOffset,
- byteLength: byteLength
- });
-
- controller._queueTotalSize += byteLength;
- }
-
- function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {
- var elementSize = pullIntoDescriptor.elementSize;
- var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;
- var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);
- var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;
- var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;
- var totalBytesToCopyRemaining = maxBytesToCopy;
- var ready = false;
-
- if (maxAlignedBytes > currentAlignedBytes) {
- totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;
- ready = true;
- }
-
- var queue = controller._queue;
-
- while (totalBytesToCopyRemaining > 0) {
- var headOfQueue = queue[0];
- var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);
- var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
- ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);
-
- if (headOfQueue.byteLength === bytesToCopy) {
- queue.shift();
- } else {
- headOfQueue.byteOffset += bytesToCopy;
- headOfQueue.byteLength -= bytesToCopy;
- }
-
- controller._queueTotalSize -= bytesToCopy;
- ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);
- totalBytesToCopyRemaining -= bytesToCopy;
- }
-
- if (ready === false) {
- assert(controller._queueTotalSize === 0, 'queue must be empty');
- assert(pullIntoDescriptor.bytesFilled > 0);
- assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);
- }
-
- return ready;
- }
-
- function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {
- assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);
- ReadableByteStreamControllerInvalidateBYOBRequest(controller);
- pullIntoDescriptor.bytesFilled += size;
- }
-
- function ReadableByteStreamControllerHandleQueueDrain(controller) {
- assert(controller._controlledReadableStream._state === 'readable');
-
- if (controller._queueTotalSize === 0 && controller._closeRequested === true) {
- ReadableStreamClose(controller._controlledReadableStream);
- } else {
- ReadableByteStreamControllerCallPullIfNeeded(controller);
- }
- }
-
- function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {
- if (controller._byobRequest === undefined) {
- return;
- }
-
- controller._byobRequest._associatedReadableByteStreamController = undefined;
- controller._byobRequest._view = undefined;
- controller._byobRequest = undefined;
- }
-
- function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {
- assert(controller._closeRequested === false);
-
- while (controller._pendingPullIntos.length > 0) {
- if (controller._queueTotalSize === 0) {
- return;
- }
-
- var pullIntoDescriptor = controller._pendingPullIntos[0];
-
- if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
- ReadableByteStreamControllerShiftPendingPullInto(controller);
- ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);
- }
- }
- }
-
- function ReadableByteStreamControllerPullInto(controller, view) {
- var stream = controller._controlledReadableStream;
- var elementSize = 1;
-
- if (view.constructor !== DataView) {
- elementSize = view.constructor.BYTES_PER_ELEMENT;
- }
-
- var ctor = view.constructor;
- var pullIntoDescriptor = {
- buffer: view.buffer,
- byteOffset: view.byteOffset,
- byteLength: view.byteLength,
- bytesFilled: 0,
- elementSize: elementSize,
- ctor: ctor,
- readerType: 'byob'
- };
-
- if (controller._pendingPullIntos.length > 0) {
- pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
-
- controller._pendingPullIntos.push(pullIntoDescriptor);
-
- return ReadableStreamAddReadIntoRequest(stream);
- }
-
- if (stream._state === 'closed') {
- var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);
- return Promise.resolve(CreateIterResultObject(emptyView, true));
- }
-
- if (controller._queueTotalSize > 0) {
- if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
- var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
- ReadableByteStreamControllerHandleQueueDrain(controller);
- return Promise.resolve(CreateIterResultObject(filledView, false));
- }
-
- if (controller._closeRequested === true) {
- var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
- ReadableByteStreamControllerError(controller, e);
- return Promise.reject(e);
- }
- }
-
- pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
-
- controller._pendingPullIntos.push(pullIntoDescriptor);
-
- var promise = ReadableStreamAddReadIntoRequest(stream);
- ReadableByteStreamControllerCallPullIfNeeded(controller);
- return promise;
- }
-
- function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {
- firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);
- assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');
- var stream = controller._controlledReadableStream;
-
- if (ReadableStreamHasBYOBReader(stream) === true) {
- while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {
- var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);
- ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);
- }
- }
- }
-
- function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {
- if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {
- throw new RangeError('bytesWritten out of range');
- }
-
- ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);
-
- if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {
- return;
- }
-
- ReadableByteStreamControllerShiftPendingPullInto(controller);
- var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;
-
- if (remainderSize > 0) {
- var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
- var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);
- ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);
- }
-
- pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
- pullIntoDescriptor.bytesFilled -= remainderSize;
- ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);
- ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
- }
-
- function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {
- var firstDescriptor = controller._pendingPullIntos[0];
- var stream = controller._controlledReadableStream;
-
- if (stream._state === 'closed') {
- if (bytesWritten !== 0) {
- throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');
- }
-
- ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);
- } else {
- assert(stream._state === 'readable');
- ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);
- }
- }
-
- function ReadableByteStreamControllerShiftPendingPullInto(controller) {
- var descriptor = controller._pendingPullIntos.shift();
-
- ReadableByteStreamControllerInvalidateBYOBRequest(controller);
- return descriptor;
- }
-
- function ReadableByteStreamControllerShouldCallPull(controller) {
- var stream = controller._controlledReadableStream;
-
- if (stream._state !== 'readable') {
- return false;
- }
-
- if (controller._closeRequested === true) {
- return false;
- }
-
- if (controller._started === false) {
- return false;
- }
-
- if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
- return true;
- }
-
- if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {
- return true;
- }
-
- if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {
- return true;
- }
-
- return false;
- }
-
- function ReadableByteStreamControllerClose(controller) {
- var stream = controller._controlledReadableStream;
- assert(controller._closeRequested === false);
- assert(stream._state === 'readable');
-
- if (controller._queueTotalSize > 0) {
- controller._closeRequested = true;
- return;
- }
-
- if (controller._pendingPullIntos.length > 0) {
- var firstPendingPullInto = controller._pendingPullIntos[0];
-
- if (firstPendingPullInto.bytesFilled > 0) {
- var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
- ReadableByteStreamControllerError(controller, e);
- throw e;
- }
- }
-
- ReadableStreamClose(stream);
- }
-
- function ReadableByteStreamControllerEnqueue(controller, chunk) {
- var stream = controller._controlledReadableStream;
- assert(controller._closeRequested === false);
- assert(stream._state === 'readable');
- var buffer = chunk.buffer;
- var byteOffset = chunk.byteOffset;
- var byteLength = chunk.byteLength;
- var transferredBuffer = TransferArrayBuffer(buffer);
-
- if (ReadableStreamHasDefaultReader(stream) === true) {
- if (ReadableStreamGetNumReadRequests(stream) === 0) {
- ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
- } else {
- assert(controller._queue.length === 0);
- var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);
- ReadableStreamFulfillReadRequest(stream, transferredView, false);
- }
- } else if (ReadableStreamHasBYOBReader(stream) === true) {
- ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
- ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
- } else {
- assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');
- ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
- }
- }
-
- function ReadableByteStreamControllerError(controller, e) {
- var stream = controller._controlledReadableStream;
- assert(stream._state === 'readable');
- ReadableByteStreamControllerClearPendingPullIntos(controller);
- ResetQueue(controller);
- ReadableStreamError(stream, e);
- }
-
- function ReadableByteStreamControllerGetDesiredSize(controller) {
- var stream = controller._controlledReadableStream;
- var state = stream._state;
-
- if (state === 'errored') {
- return null;
- }
-
- if (state === 'closed') {
- return 0;
- }
-
- return controller._strategyHWM - controller._queueTotalSize;
- }
-
- function ReadableByteStreamControllerRespond(controller, bytesWritten) {
- bytesWritten = Number(bytesWritten);
-
- if (IsFiniteNonNegativeNumber(bytesWritten) === false) {
- throw new RangeError('bytesWritten must be a finite');
- }
-
- assert(controller._pendingPullIntos.length > 0);
- ReadableByteStreamControllerRespondInternal(controller, bytesWritten);
- }
-
- function ReadableByteStreamControllerRespondWithNewView(controller, view) {
- assert(controller._pendingPullIntos.length > 0);
- var firstDescriptor = controller._pendingPullIntos[0];
-
- if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {
- throw new RangeError('The region specified by view does not match byobRequest');
- }
-
- if (firstDescriptor.byteLength !== view.byteLength) {
- throw new RangeError('The buffer of view has different capacity than byobRequest');
- }
-
- firstDescriptor.buffer = view.buffer;
- ReadableByteStreamControllerRespondInternal(controller, view.byteLength);
- }
-
- function streamBrandCheckException(name) {
- return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');
- }
-
- function readerLockException(name) {
- return new TypeError('Cannot ' + name + ' a stream using a released reader');
- }
-
- function defaultReaderBrandCheckException(name) {
- return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');
- }
-
- function defaultReaderClosedPromiseInitialize(reader) {
- reader._closedPromise = new Promise(function (resolve, reject) {
- reader._closedPromise_resolve = resolve;
- reader._closedPromise_reject = reject;
- });
- }
-
- function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {
- reader._closedPromise = Promise.reject(reason);
- reader._closedPromise_resolve = undefined;
- reader._closedPromise_reject = undefined;
- }
-
- function defaultReaderClosedPromiseInitializeAsResolved(reader) {
- reader._closedPromise = Promise.resolve(undefined);
- reader._closedPromise_resolve = undefined;
- reader._closedPromise_reject = undefined;
- }
-
- function defaultReaderClosedPromiseReject(reader, reason) {
- assert(reader._closedPromise_resolve !== undefined);
- assert(reader._closedPromise_reject !== undefined);
-
- reader._closedPromise_reject(reason);
-
- reader._closedPromise_resolve = undefined;
- reader._closedPromise_reject = undefined;
- }
-
- function defaultReaderClosedPromiseResetToRejected(reader, reason) {
- assert(reader._closedPromise_resolve === undefined);
- assert(reader._closedPromise_reject === undefined);
- reader._closedPromise = Promise.reject(reason);
- }
-
- function defaultReaderClosedPromiseResolve(reader) {
- assert(reader._closedPromise_resolve !== undefined);
- assert(reader._closedPromise_reject !== undefined);
-
- reader._closedPromise_resolve(undefined);
-
- reader._closedPromise_resolve = undefined;
- reader._closedPromise_reject = undefined;
- }
-
- function byobReaderBrandCheckException(name) {
- return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');
- }
-
- function defaultControllerBrandCheckException(name) {
- return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');
- }
-
- function byobRequestBrandCheckException(name) {
- return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');
- }
-
- function byteStreamControllerBrandCheckException(name) {
- return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');
- }
-
- function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {
- try {
- Promise.prototype.then.call(promise, undefined, function () {});
- } catch (e) {}
- }
-}, function (module, exports, __w_pdfjs_require__) {
- "use strict";
-
- var transformStream = __w_pdfjs_require__(6);
-
- var readableStream = __w_pdfjs_require__(4);
-
- var writableStream = __w_pdfjs_require__(2);
-
- exports.TransformStream = transformStream.TransformStream;
- exports.ReadableStream = readableStream.ReadableStream;
- exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;
- exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;
- exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;
- exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;
- exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;
- exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;
- exports.IsWritableStream = writableStream.IsWritableStream;
- exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;
- exports.WritableStream = writableStream.WritableStream;
- exports.WritableStreamAbort = writableStream.WritableStreamAbort;
- exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;
- exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;
- exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;
- exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;
-}, function (module, exports, __w_pdfjs_require__) {
- "use strict";
-
- var _createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
+ mergedDict._map[keyName] = dict._map[keyName];
}
}
- return function (Constructor, protoProps, staticProps) {
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
- if (staticProps) defineProperties(Constructor, staticProps);
- return Constructor;
- };
- }();
-
- function _classCallCheck(instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- }
-
- var _require = __w_pdfjs_require__(1),
- assert = _require.assert;
-
- var _require2 = __w_pdfjs_require__(0),
- InvokeOrNoop = _require2.InvokeOrNoop,
- PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,
- PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,
- typeIsObject = _require2.typeIsObject;
-
- var _require3 = __w_pdfjs_require__(4),
- ReadableStream = _require3.ReadableStream,
- ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,
- ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,
- ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,
- ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;
-
- var _require4 = __w_pdfjs_require__(2),
- WritableStream = _require4.WritableStream,
- WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;
-
- function TransformStreamCloseReadable(transformStream) {
- if (transformStream._errored === true) {
- throw new TypeError('TransformStream is already errored');
- }
-
- if (transformStream._readableClosed === true) {
- throw new TypeError('Readable side is already closed');
- }
-
- TransformStreamCloseReadableInternal(transformStream);
- }
-
- function TransformStreamEnqueueToReadable(transformStream, chunk) {
- if (transformStream._errored === true) {
- throw new TypeError('TransformStream is already errored');
- }
-
- if (transformStream._readableClosed === true) {
- throw new TypeError('Readable side is already closed');
- }
-
- var controller = transformStream._readableController;
-
- try {
- ReadableStreamDefaultControllerEnqueue(controller, chunk);
- } catch (e) {
- transformStream._readableClosed = true;
- TransformStreamErrorIfNeeded(transformStream, e);
- throw transformStream._storedError;
- }
-
- var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
- var maybeBackpressure = desiredSize <= 0;
-
- if (maybeBackpressure === true && transformStream._backpressure === false) {
- TransformStreamSetBackpressure(transformStream, true);
- }
- }
-
- function TransformStreamError(transformStream, e) {
- if (transformStream._errored === true) {
- throw new TypeError('TransformStream is already errored');
- }
-
- TransformStreamErrorInternal(transformStream, e);
- }
-
- function TransformStreamCloseReadableInternal(transformStream) {
- assert(transformStream._errored === false);
- assert(transformStream._readableClosed === false);
-
- try {
- ReadableStreamDefaultControllerClose(transformStream._readableController);
- } catch (e) {
- assert(false);
- }
-
- transformStream._readableClosed = true;
- }
-
- function TransformStreamErrorIfNeeded(transformStream, e) {
- if (transformStream._errored === false) {
- TransformStreamErrorInternal(transformStream, e);
- }
- }
-
- function TransformStreamErrorInternal(transformStream, e) {
- assert(transformStream._errored === false);
- transformStream._errored = true;
- transformStream._storedError = e;
-
- if (transformStream._writableDone === false) {
- WritableStreamDefaultControllerError(transformStream._writableController, e);
- }
-
- if (transformStream._readableClosed === false) {
- ReadableStreamDefaultControllerError(transformStream._readableController, e);
- }
- }
-
- function TransformStreamReadableReadyPromise(transformStream) {
- assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
-
- if (transformStream._backpressure === false) {
- return Promise.resolve();
- }
-
- assert(transformStream._backpressure === true, '_backpressure should have been initialized');
- return transformStream._backpressureChangePromise;
- }
-
- function TransformStreamSetBackpressure(transformStream, backpressure) {
- assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');
-
- if (transformStream._backpressureChangePromise !== undefined) {
- transformStream._backpressureChangePromise_resolve(backpressure);
- }
-
- transformStream._backpressureChangePromise = new Promise(function (resolve) {
- transformStream._backpressureChangePromise_resolve = resolve;
- });
-
- transformStream._backpressureChangePromise.then(function (resolution) {
- assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');
- });
-
- transformStream._backpressure = backpressure;
- }
-
- function TransformStreamDefaultTransform(chunk, transformStreamController) {
- var transformStream = transformStreamController._controlledTransformStream;
- TransformStreamEnqueueToReadable(transformStream, chunk);
- return Promise.resolve();
- }
-
- function TransformStreamTransform(transformStream, chunk) {
- assert(transformStream._errored === false);
- assert(transformStream._transforming === false);
- assert(transformStream._backpressure === false);
- transformStream._transforming = true;
- var transformer = transformStream._transformer;
- var controller = transformStream._transformStreamController;
- var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);
- return transformPromise.then(function () {
- transformStream._transforming = false;
- return TransformStreamReadableReadyPromise(transformStream);
- }, function (e) {
- TransformStreamErrorIfNeeded(transformStream, e);
- return Promise.reject(e);
- });
- }
-
- function IsTransformStreamDefaultController(x) {
- if (!typeIsObject(x)) {
- return false;
- }
-
- if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {
- return false;
- }
+ return mergedDict;
+ };
- return true;
- }
+ return Dict;
+}();
- function IsTransformStream(x) {
- if (!typeIsObject(x)) {
- return false;
- }
+exports.Dict = Dict;
- if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {
- return false;
- }
+var Ref = function RefClosure() {
+ var refCache = Object.create(null);
- return true;
+ function Ref(num, gen) {
+ this.num = num;
+ this.gen = gen;
}
- var TransformStreamSink = function () {
- function TransformStreamSink(transformStream, startPromise) {
- _classCallCheck(this, TransformStreamSink);
-
- this._transformStream = transformStream;
- this._startPromise = startPromise;
- }
-
- _createClass(TransformStreamSink, [{
- key: 'start',
- value: function start(c) {
- var transformStream = this._transformStream;
- transformStream._writableController = c;
- return this._startPromise.then(function () {
- return TransformStreamReadableReadyPromise(transformStream);
- });
- }
- }, {
- key: 'write',
- value: function write(chunk) {
- var transformStream = this._transformStream;
- return TransformStreamTransform(transformStream, chunk);
- }
- }, {
- key: 'abort',
- value: function abort() {
- var transformStream = this._transformStream;
- transformStream._writableDone = true;
- TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));
- }
- }, {
- key: 'close',
- value: function close() {
- var transformStream = this._transformStream;
- assert(transformStream._transforming === false);
- transformStream._writableDone = true;
- var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);
- return flushPromise.then(function () {
- if (transformStream._errored === true) {
- return Promise.reject(transformStream._storedError);
- }
-
- if (transformStream._readableClosed === false) {
- TransformStreamCloseReadableInternal(transformStream);
- }
-
- return Promise.resolve();
- }).catch(function (r) {
- TransformStreamErrorIfNeeded(transformStream, r);
- return Promise.reject(transformStream._storedError);
- });
- }
- }]);
-
- return TransformStreamSink;
- }();
-
- var TransformStreamSource = function () {
- function TransformStreamSource(transformStream, startPromise) {
- _classCallCheck(this, TransformStreamSource);
-
- this._transformStream = transformStream;
- this._startPromise = startPromise;
- }
-
- _createClass(TransformStreamSource, [{
- key: 'start',
- value: function start(c) {
- var transformStream = this._transformStream;
- transformStream._readableController = c;
- return this._startPromise.then(function () {
- assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
-
- if (transformStream._backpressure === true) {
- return Promise.resolve();
- }
-
- assert(transformStream._backpressure === false, '_backpressure should have been initialized');
- return transformStream._backpressureChangePromise;
- });
- }
- }, {
- key: 'pull',
- value: function pull() {
- var transformStream = this._transformStream;
- assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');
- assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
- TransformStreamSetBackpressure(transformStream, false);
- return transformStream._backpressureChangePromise;
- }
- }, {
- key: 'cancel',
- value: function cancel() {
- var transformStream = this._transformStream;
- transformStream._readableClosed = true;
- TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));
- }
- }]);
-
- return TransformStreamSource;
- }();
-
- var TransformStreamDefaultController = function () {
- function TransformStreamDefaultController(transformStream) {
- _classCallCheck(this, TransformStreamDefaultController);
-
- if (IsTransformStream(transformStream) === false) {
- throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');
- }
-
- if (transformStream._transformStreamController !== undefined) {
- throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');
- }
-
- this._controlledTransformStream = transformStream;
- }
-
- _createClass(TransformStreamDefaultController, [{
- key: 'enqueue',
- value: function enqueue(chunk) {
- if (IsTransformStreamDefaultController(this) === false) {
- throw defaultControllerBrandCheckException('enqueue');
- }
-
- TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);
- }
- }, {
- key: 'close',
- value: function close() {
- if (IsTransformStreamDefaultController(this) === false) {
- throw defaultControllerBrandCheckException('close');
- }
-
- TransformStreamCloseReadable(this._controlledTransformStream);
- }
- }, {
- key: 'error',
- value: function error(reason) {
- if (IsTransformStreamDefaultController(this) === false) {
- throw defaultControllerBrandCheckException('error');
- }
-
- TransformStreamError(this._controlledTransformStream, reason);
- }
- }, {
- key: 'desiredSize',
- get: function get() {
- if (IsTransformStreamDefaultController(this) === false) {
- throw defaultControllerBrandCheckException('desiredSize');
- }
-
- var transformStream = this._controlledTransformStream;
- var readableController = transformStream._readableController;
- return ReadableStreamDefaultControllerGetDesiredSize(readableController);
+ Ref.prototype = {
+ toString: function Ref_toString() {
+ if (this.gen === 0) {
+ return "".concat(this.num, "R");
}
- }]);
- return TransformStreamDefaultController;
- }();
-
- var TransformStream = function () {
- function TransformStream() {
- var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- _classCallCheck(this, TransformStream);
-
- this._transformer = transformer;
- var readableStrategy = transformer.readableStrategy,
- writableStrategy = transformer.writableStrategy;
- this._transforming = false;
- this._errored = false;
- this._storedError = undefined;
- this._writableController = undefined;
- this._readableController = undefined;
- this._transformStreamController = undefined;
- this._writableDone = false;
- this._readableClosed = false;
- this._backpressure = undefined;
- this._backpressureChangePromise = undefined;
- this._backpressureChangePromise_resolve = undefined;
- this._transformStreamController = new TransformStreamDefaultController(this);
- var startPromise_resolve = void 0;
- var startPromise = new Promise(function (resolve) {
- startPromise_resolve = resolve;
- });
- var source = new TransformStreamSource(this, startPromise);
- this._readable = new ReadableStream(source, readableStrategy);
- var sink = new TransformStreamSink(this, startPromise);
- this._writable = new WritableStream(sink, writableStrategy);
- assert(this._writableController !== undefined);
- assert(this._readableController !== undefined);
- var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);
- TransformStreamSetBackpressure(this, desiredSize <= 0);
- var transformStream = this;
- var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);
- startPromise_resolve(startResult);
- startPromise.catch(function (e) {
- if (transformStream._errored === false) {
- transformStream._errored = true;
- transformStream._storedError = e;
- }
- });
+ return "".concat(this.num, "R").concat(this.gen);
}
-
- _createClass(TransformStream, [{
- key: 'readable',
- get: function get() {
- if (IsTransformStream(this) === false) {
- throw streamBrandCheckException('readable');
- }
-
- return this._readable;
- }
- }, {
- key: 'writable',
- get: function get() {
- if (IsTransformStream(this) === false) {
- throw streamBrandCheckException('writable');
- }
-
- return this._writable;
- }
- }]);
-
- return TransformStream;
- }();
-
- module.exports = {
- TransformStream: TransformStream
};
- function defaultControllerBrandCheckException(name) {
- return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');
- }
-
- function streamBrandCheckException(name) {
- return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');
- }
-}, function (module, exports, __w_pdfjs_require__) {
- module.exports = __w_pdfjs_require__(5);
-}]));
-
-/***/ }),
-/* 149 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-{
- var isURLSupported = false;
-
- try {
- if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {
- var u = new URL('b', 'http://a');
- u.pathname = 'c%20d';
- isURLSupported = u.href === 'http://a/c%20d';
- }
- } catch (ex) {}
-
- if (isURLSupported) {
- exports.URL = URL;
- } else {
- var PolyfillURL = __w_pdfjs_require__(150).URL;
-
- var OriginalURL = __w_pdfjs_require__(8).URL;
-
- if (OriginalURL) {
- PolyfillURL.createObjectURL = function (blob) {
- return OriginalURL.createObjectURL.apply(OriginalURL, arguments);
- };
-
- PolyfillURL.revokeObjectURL = function (url) {
- OriginalURL.revokeObjectURL(url);
- };
- }
-
- exports.URL = PolyfillURL;
- }
-}
-
-/***/ }),
-/* 150 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
-
-"use strict";
-
-
-(function URLConstructorClosure() {
- 'use strict';
-
- var relative = Object.create(null);
- relative['ftp'] = 21;
- relative['file'] = 0;
- relative['gopher'] = 70;
- relative['http'] = 80;
- relative['https'] = 443;
- relative['ws'] = 80;
- relative['wss'] = 443;
- var relativePathDotMapping = Object.create(null);
- relativePathDotMapping['%2e'] = '.';
- relativePathDotMapping['.%2e'] = '..';
- relativePathDotMapping['%2e.'] = '..';
- relativePathDotMapping['%2e%2e'] = '..';
-
- function isRelativeScheme(scheme) {
- return relative[scheme] !== undefined;
- }
-
- function invalid() {
- clear.call(this);
- this._isInvalid = true;
- }
-
- function IDNAToASCII(h) {
- if (h === '') {
- invalid.call(this);
- }
-
- return h.toLowerCase();
- }
-
- function percentEscape(c) {
- var unicode = c.charCodeAt(0);
-
- if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {
- return c;
- }
-
- return encodeURIComponent(c);
- }
-
- function percentEscapeQuery(c) {
- var unicode = c.charCodeAt(0);
-
- if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {
- return c;
- }
-
- return encodeURIComponent(c);
- }
-
- var EOF,
- ALPHA = /[a-zA-Z]/,
- ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/;
-
- function parse(input, stateOverride, base) {
- function err(message) {
- errors.push(message);
- }
-
- var state = stateOverride || 'scheme start',
- cursor = 0,
- buffer = '',
- seenAt = false,
- seenBracket = false,
- errors = [];
-
- loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {
- var c = input[cursor];
-
- switch (state) {
- case 'scheme start':
- if (c && ALPHA.test(c)) {
- buffer += c.toLowerCase();
- state = 'scheme';
- } else if (!stateOverride) {
- buffer = '';
- state = 'no scheme';
- continue;
- } else {
- err('Invalid scheme.');
- break loop;
- }
-
- break;
-
- case 'scheme':
- if (c && ALPHANUMERIC.test(c)) {
- buffer += c.toLowerCase();
- } else if (c === ':') {
- this._scheme = buffer;
- buffer = '';
-
- if (stateOverride) {
- break loop;
- }
-
- if (isRelativeScheme(this._scheme)) {
- this._isRelative = true;
- }
-
- if (this._scheme === 'file') {
- state = 'relative';
- } else if (this._isRelative && base && base._scheme === this._scheme) {
- state = 'relative or authority';
- } else if (this._isRelative) {
- state = 'authority first slash';
- } else {
- state = 'scheme data';
- }
- } else if (!stateOverride) {
- buffer = '';
- cursor = 0;
- state = 'no scheme';
- continue;
- } else if (c === EOF) {
- break loop;
- } else {
- err('Code point not allowed in scheme: ' + c);
- break loop;
- }
-
- break;
-
- case 'scheme data':
- if (c === '?') {
- this._query = '?';
- state = 'query';
- } else if (c === '#') {
- this._fragment = '#';
- state = 'fragment';
- } else {
- if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
- this._schemeData += percentEscape(c);
- }
- }
-
- break;
-
- case 'no scheme':
- if (!base || !isRelativeScheme(base._scheme)) {
- err('Missing scheme.');
- invalid.call(this);
- } else {
- state = 'relative';
- continue;
- }
-
- break;
-
- case 'relative or authority':
- if (c === '/' && input[cursor + 1] === '/') {
- state = 'authority ignore slashes';
- } else {
- err('Expected /, got: ' + c);
- state = 'relative';
- continue;
- }
-
- break;
-
- case 'relative':
- this._isRelative = true;
-
- if (this._scheme !== 'file') {
- this._scheme = base._scheme;
- }
-
- if (c === EOF) {
- this._host = base._host;
- this._port = base._port;
- this._path = base._path.slice();
- this._query = base._query;
- this._username = base._username;
- this._password = base._password;
- break loop;
- } else if (c === '/' || c === '\\') {
- if (c === '\\') {
- err('\\ is an invalid code point.');
- }
-
- state = 'relative slash';
- } else if (c === '?') {
- this._host = base._host;
- this._port = base._port;
- this._path = base._path.slice();
- this._query = '?';
- this._username = base._username;
- this._password = base._password;
- state = 'query';
- } else if (c === '#') {
- this._host = base._host;
- this._port = base._port;
- this._path = base._path.slice();
- this._query = base._query;
- this._fragment = '#';
- this._username = base._username;
- this._password = base._password;
- state = 'fragment';
- } else {
- var nextC = input[cursor + 1];
- var nextNextC = input[cursor + 2];
-
- if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') {
- this._host = base._host;
- this._port = base._port;
- this._username = base._username;
- this._password = base._password;
- this._path = base._path.slice();
-
- this._path.pop();
- }
-
- state = 'relative path';
- continue;
- }
-
- break;
-
- case 'relative slash':
- if (c === '/' || c === '\\') {
- if (c === '\\') {
- err('\\ is an invalid code point.');
- }
-
- if (this._scheme === 'file') {
- state = 'file host';
- } else {
- state = 'authority ignore slashes';
- }
- } else {
- if (this._scheme !== 'file') {
- this._host = base._host;
- this._port = base._port;
- this._username = base._username;
- this._password = base._password;
- }
-
- state = 'relative path';
- continue;
- }
-
- break;
-
- case 'authority first slash':
- if (c === '/') {
- state = 'authority second slash';
- } else {
- err('Expected \'/\', got: ' + c);
- state = 'authority ignore slashes';
- continue;
- }
-
- break;
-
- case 'authority second slash':
- state = 'authority ignore slashes';
-
- if (c !== '/') {
- err('Expected \'/\', got: ' + c);
- continue;
- }
-
- break;
-
- case 'authority ignore slashes':
- if (c !== '/' && c !== '\\') {
- state = 'authority';
- continue;
- } else {
- err('Expected authority, got: ' + c);
- }
-
- break;
-
- case 'authority':
- if (c === '@') {
- if (seenAt) {
- err('@ already seen.');
- buffer += '%40';
- }
-
- seenAt = true;
-
- for (var i = 0; i < buffer.length; i++) {
- var cp = buffer[i];
-
- if (cp === '\t' || cp === '\n' || cp === '\r') {
- err('Invalid whitespace in authority.');
- continue;
- }
-
- if (cp === ':' && this._password === null) {
- this._password = '';
- continue;
- }
-
- var tempC = percentEscape(cp);
-
- if (this._password !== null) {
- this._password += tempC;
- } else {
- this._username += tempC;
- }
- }
-
- buffer = '';
- } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
- cursor -= buffer.length;
- buffer = '';
- state = 'host';
- continue;
- } else {
- buffer += c;
- }
-
- break;
-
- case 'file host':
- if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
- if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {
- state = 'relative path';
- } else if (buffer.length === 0) {
- state = 'relative path start';
- } else {
- this._host = IDNAToASCII.call(this, buffer);
- buffer = '';
- state = 'relative path start';
- }
-
- continue;
- } else if (c === '\t' || c === '\n' || c === '\r') {
- err('Invalid whitespace in file host.');
- } else {
- buffer += c;
- }
-
- break;
-
- case 'host':
- case 'hostname':
- if (c === ':' && !seenBracket) {
- this._host = IDNAToASCII.call(this, buffer);
- buffer = '';
- state = 'port';
-
- if (stateOverride === 'hostname') {
- break loop;
- }
- } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
- this._host = IDNAToASCII.call(this, buffer);
- buffer = '';
- state = 'relative path start';
-
- if (stateOverride) {
- break loop;
- }
-
- continue;
- } else if (c !== '\t' && c !== '\n' && c !== '\r') {
- if (c === '[') {
- seenBracket = true;
- } else if (c === ']') {
- seenBracket = false;
- }
-
- buffer += c;
- } else {
- err('Invalid code point in host/hostname: ' + c);
- }
-
- break;
-
- case 'port':
- if (/[0-9]/.test(c)) {
- buffer += c;
- } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) {
- if (buffer !== '') {
- var temp = parseInt(buffer, 10);
-
- if (temp !== relative[this._scheme]) {
- this._port = temp + '';
- }
-
- buffer = '';
- }
-
- if (stateOverride) {
- break loop;
- }
-
- state = 'relative path start';
- continue;
- } else if (c === '\t' || c === '\n' || c === '\r') {
- err('Invalid code point in port: ' + c);
- } else {
- invalid.call(this);
- }
-
- break;
-
- case 'relative path start':
- if (c === '\\') {
- err('\'\\\' not allowed in path.');
- }
-
- state = 'relative path';
-
- if (c !== '/' && c !== '\\') {
- continue;
- }
-
- break;
-
- case 'relative path':
- if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) {
- if (c === '\\') {
- err('\\ not allowed in relative path.');
- }
-
- var tmp;
-
- if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {
- buffer = tmp;
- }
-
- if (buffer === '..') {
- this._path.pop();
-
- if (c !== '/' && c !== '\\') {
- this._path.push('');
- }
- } else if (buffer === '.' && c !== '/' && c !== '\\') {
- this._path.push('');
- } else if (buffer !== '.') {
- if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {
- buffer = buffer[0] + ':';
- }
-
- this._path.push(buffer);
- }
-
- buffer = '';
-
- if (c === '?') {
- this._query = '?';
- state = 'query';
- } else if (c === '#') {
- this._fragment = '#';
- state = 'fragment';
- }
- } else if (c !== '\t' && c !== '\n' && c !== '\r') {
- buffer += percentEscape(c);
- }
-
- break;
-
- case 'query':
- if (!stateOverride && c === '#') {
- this._fragment = '#';
- state = 'fragment';
- } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
- this._query += percentEscapeQuery(c);
- }
-
- break;
-
- case 'fragment':
- if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
- this._fragment += c;
- }
-
- break;
- }
+ Ref.get = function (num, gen) {
+ var key = gen === 0 ? "".concat(num, "R") : "".concat(num, "R").concat(gen);
+ var refValue = refCache[key];
+ return refValue ? refValue : refCache[key] = new Ref(num, gen);
+ };
- cursor++;
- }
- }
+ Ref._clearCache = function () {
+ refCache = Object.create(null);
+ };
- function clear() {
- this._scheme = '';
- this._schemeData = '';
- this._username = '';
- this._password = null;
- this._host = '';
- this._port = '';
- this._path = [];
- this._query = '';
- this._fragment = '';
- this._isInvalid = false;
- this._isRelative = false;
- }
+ return Ref;
+}();
- function JURL(url, base) {
- if (base !== undefined && !(base instanceof JURL)) {
- base = new JURL(String(base));
- }
+exports.Ref = Ref;
- this._url = url;
- clear.call(this);
- var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, '');
- parse.call(this, input, null, base);
+var RefSet = function RefSetClosure() {
+ function RefSet() {
+ this.dict = Object.create(null);
}
- JURL.prototype = {
- toString: function toString() {
- return this.href;
- },
-
- get href() {
- if (this._isInvalid) {
- return this._url;
- }
-
- var authority = '';
-
- if (this._username !== '' || this._password !== null) {
- authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';
- }
-
- return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;
- },
-
- set href(value) {
- clear.call(this);
- parse.call(this, value);
- },
-
- get protocol() {
- return this._scheme + ':';
- },
-
- set protocol(value) {
- if (this._isInvalid) {
- return;
- }
-
- parse.call(this, value + ':', 'scheme start');
- },
-
- get host() {
- return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;
- },
-
- set host(value) {
- if (this._isInvalid || !this._isRelative) {
- return;
- }
-
- parse.call(this, value, 'host');
- },
-
- get hostname() {
- return this._host;
+ RefSet.prototype = {
+ has: function RefSet_has(ref) {
+ return ref.toString() in this.dict;
},
-
- set hostname(value) {
- if (this._isInvalid || !this._isRelative) {
- return;
- }
-
- parse.call(this, value, 'hostname');
+ put: function RefSet_put(ref) {
+ this.dict[ref.toString()] = true;
},
+ remove: function RefSet_remove(ref) {
+ delete this.dict[ref.toString()];
+ }
+ };
+ return RefSet;
+}();
- get port() {
- return this._port;
- },
+exports.RefSet = RefSet;
- set port(value) {
- if (this._isInvalid || !this._isRelative) {
- return;
- }
+var RefSetCache = function RefSetCacheClosure() {
+ function RefSetCache() {
+ this.dict = Object.create(null);
+ }
- parse.call(this, value, 'port');
+ RefSetCache.prototype = {
+ get: function RefSetCache_get(ref) {
+ return this.dict[ref.toString()];
},
-
- get pathname() {
- return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;
+ has: function RefSetCache_has(ref) {
+ return ref.toString() in this.dict;
},
-
- set pathname(value) {
- if (this._isInvalid || !this._isRelative) {
- return;
- }
-
- this._path = [];
- parse.call(this, value, 'relative path start');
+ put: function RefSetCache_put(ref, obj) {
+ this.dict[ref.toString()] = obj;
},
-
- get search() {
- return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;
+ putAlias: function RefSetCache_putAlias(ref, aliasRef) {
+ this.dict[ref.toString()] = this.get(aliasRef);
},
-
- set search(value) {
- if (this._isInvalid || !this._isRelative) {
- return;
- }
-
- this._query = '?';
-
- if (value[0] === '?') {
- value = value.slice(1);
+ forEach: function RefSetCache_forEach(fn, thisArg) {
+ for (var i in this.dict) {
+ fn.call(thisArg, this.dict[i]);
}
-
- parse.call(this, value, 'query');
- },
-
- get hash() {
- return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;
},
+ clear: function RefSetCache_clear() {
+ this.dict = Object.create(null);
+ }
+ };
+ return RefSetCache;
+}();
- set hash(value) {
- if (this._isInvalid) {
- return;
- }
-
- this._fragment = '#';
-
- if (value[0] === '#') {
- value = value.slice(1);
- }
+exports.RefSetCache = RefSetCache;
- parse.call(this, value, 'fragment');
- },
+function isEOF(v) {
+ return v === EOF;
+}
- get origin() {
- var host;
+function isName(v, name) {
+ return v instanceof Name && (name === undefined || v.name === name);
+}
- if (this._isInvalid || !this._scheme) {
- return '';
- }
+function isCmd(v, cmd) {
+ return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);
+}
- switch (this._scheme) {
- case 'data':
- case 'file':
- case 'javascript':
- case 'mailto':
- return 'null';
+function isDict(v, type) {
+ return v instanceof Dict && (type === undefined || isName(v.get('Type'), type));
+}
- case 'blob':
- try {
- return new JURL(this._schemeData).origin || 'null';
- } catch (_) {}
+function isRef(v) {
+ return v instanceof Ref;
+}
- return 'null';
- }
+function isRefsEqual(v1, v2) {
+ return v1.num === v2.num && v1.gen === v2.gen;
+}
- host = this.host;
+function isStream(v) {
+ return _typeof(v) === 'object' && v !== null && v.getBytes !== undefined;
+}
- if (!host) {
- return '';
- }
+function clearPrimitiveCaches() {
+ Cmd._clearCache();
- return this._scheme + '://' + host;
- }
+ Name._clearCache();
- };
- exports.URL = JURL;
-})();
+ Ref._clearCache();
+}
/***/ }),
-/* 151 */
+/* 184 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -11177,15 +11260,17 @@ exports.NetworkPdfManager = exports.LocalPdfManager = void 0;
var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _chunked_stream = __w_pdfjs_require__(152);
+var _chunked_stream = __w_pdfjs_require__(185);
-var _document = __w_pdfjs_require__(153);
+var _core_utils = __w_pdfjs_require__(186);
-var _stream = __w_pdfjs_require__(157);
+var _document = __w_pdfjs_require__(187);
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _stream = __w_pdfjs_require__(190);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -11193,12 +11278,12 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
+function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
-function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -11260,8 +11345,8 @@ function () {
value: function () {
var _ensure = _asyncToGenerator(
/*#__PURE__*/
- _regenerator.default.mark(function _callee(obj, prop, args) {
- return _regenerator.default.wrap(function _callee$(_context) {
+ _regenerator["default"].mark(function _callee(obj, prop, args) {
+ return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
@@ -11272,7 +11357,7 @@ function () {
return _context.stop();
}
}
- }, _callee, this);
+ }, _callee);
}));
function ensure(_x, _x2, _x3) {
@@ -11303,7 +11388,7 @@ function () {
}
}, {
key: "terminate",
- value: function terminate() {
+ value: function terminate(reason) {
(0, _util.unreachable)('Abstract method `terminate` called');
}
}, {
@@ -11354,7 +11439,7 @@ function (_BasePdfManager) {
_this._docBaseUrl = docBaseUrl;
_this.evaluatorOptions = evaluatorOptions;
var stream = new _stream.Stream(data);
- _this.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_assertThisInitialized(_this)), stream);
+ _this.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_this), stream);
_this._loadedStreamPromise = Promise.resolve(stream);
return _this;
}
@@ -11364,9 +11449,9 @@ function (_BasePdfManager) {
value: function () {
var _ensure2 = _asyncToGenerator(
/*#__PURE__*/
- _regenerator.default.mark(function _callee2(obj, prop, args) {
+ _regenerator["default"].mark(function _callee2(obj, prop, args) {
var value;
- return _regenerator.default.wrap(function _callee2$(_context2) {
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
@@ -11387,7 +11472,7 @@ function (_BasePdfManager) {
return _context2.stop();
}
}
- }, _callee2, this);
+ }, _callee2);
}));
function ensure(_x4, _x5, _x6) {
@@ -11411,7 +11496,7 @@ function (_BasePdfManager) {
}
}, {
key: "terminate",
- value: function terminate() {}
+ value: function terminate(reason) {}
}]);
return LocalPdfManager;
@@ -11441,7 +11526,7 @@ function (_BasePdfManager2) {
disableAutoFetch: args.disableAutoFetch,
rangeChunkSize: args.rangeChunkSize
});
- _this2.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_assertThisInitialized(_this2)), _this2.streamManager.getStream());
+ _this2.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_this2), _this2.streamManager.getStream());
return _this2;
}
@@ -11450,9 +11535,9 @@ function (_BasePdfManager2) {
value: function () {
var _ensure3 = _asyncToGenerator(
/*#__PURE__*/
- _regenerator.default.mark(function _callee3(obj, prop, args) {
+ _regenerator["default"].mark(function _callee3(obj, prop, args) {
var value;
- return _regenerator.default.wrap(function _callee3$(_context3) {
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
@@ -11473,7 +11558,7 @@ function (_BasePdfManager2) {
_context3.prev = 7;
_context3.t0 = _context3["catch"](0);
- if (_context3.t0 instanceof _util.MissingDataException) {
+ if (_context3.t0 instanceof _core_utils.MissingDataException) {
_context3.next = 11;
break;
}
@@ -11525,8 +11610,8 @@ function (_BasePdfManager2) {
}
}, {
key: "terminate",
- value: function terminate() {
- this.streamManager.abort();
+ value: function terminate(reason) {
+ this.streamManager.abort(reason);
}
}]);
@@ -11536,7 +11621,7 @@ function (_BasePdfManager2) {
exports.NetworkPdfManager = NetworkPdfManager;
/***/ }),
-/* 152 */
+/* 185 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -11547,7 +11632,9 @@ Object.defineProperty(exports, "__esModule", {
});
exports.ChunkedStreamManager = exports.ChunkedStream = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
+
+var _core_utils = __w_pdfjs_require__(186);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -11643,6 +11730,10 @@ function () {
}, {
key: "ensureByte",
value: function ensureByte(pos) {
+ if (pos < this.progressiveDataLength) {
+ return;
+ }
+
var chunk = Math.floor(pos / this.chunkSize);
if (chunk === this.lastSuccessfulEnsureByteChunk) {
@@ -11650,7 +11741,7 @@ function () {
}
if (!this.loadedChunks[chunk]) {
- throw new _util.MissingDataException(pos, pos + 1);
+ throw new _core_utils.MissingDataException(pos, pos + 1);
}
this.lastSuccessfulEnsureByteChunk = chunk;
@@ -11672,7 +11763,7 @@ function () {
for (var chunk = beginChunk; chunk < endChunk; ++chunk) {
if (!this.loadedChunks[chunk]) {
- throw new _util.MissingDataException(begin, end);
+ throw new _core_utils.MissingDataException(begin, end);
}
}
}
@@ -11705,7 +11796,10 @@ function () {
return -1;
}
- this.ensureByte(pos);
+ if (pos >= this.progressiveDataLength) {
+ this.ensureByte(pos);
+ }
+
return this.bytes[this.pos++];
}
}, {
@@ -11738,7 +11832,9 @@ function () {
var strEnd = this.end;
if (!length) {
- this.ensureRange(pos, strEnd);
+ if (strEnd > this.progressiveDataLength) {
+ this.ensureRange(pos, strEnd);
+ }
var _subarray = bytes.subarray(pos, strEnd);
@@ -11751,7 +11847,10 @@ function () {
end = strEnd;
}
- this.ensureRange(pos, end);
+ if (end > this.progressiveDataLength) {
+ this.ensureRange(pos, end);
+ }
+
this.pos = end;
var subarray = bytes.subarray(pos, end);
return forceClamped ? new Uint8ClampedArray(subarray) : subarray;
@@ -11774,7 +11873,18 @@ function () {
}, {
key: "getByteRange",
value: function getByteRange(begin, end) {
- this.ensureRange(begin, end);
+ if (begin < 0) {
+ begin = 0;
+ }
+
+ if (end > this.end) {
+ end = this.end;
+ }
+
+ if (end > this.progressiveDataLength) {
+ this.ensureRange(begin, end);
+ }
+
return this.bytes.subarray(begin, end);
}
}, {
@@ -11799,7 +11909,15 @@ function () {
}, {
key: "makeSubStream",
value: function makeSubStream(start, length, dict) {
- this.ensureRange(start, start + length);
+ if (length) {
+ if (start + length > this.progressiveDataLength) {
+ this.ensureRange(start, start + length);
+ }
+ } else {
+ if (start >= this.progressiveDataLength) {
+ this.ensureByte(start);
+ }
+ }
function ChunkedStreamSubstream() {}
@@ -11953,8 +12071,8 @@ function () {
_iteratorError = err;
} finally {
try {
- if (!_iteratorNormalCompletion && _iterator.return != null) {
- _iterator.return();
+ if (!_iteratorNormalCompletion && _iterator["return"] != null) {
+ _iterator["return"]();
}
} finally {
if (_didIteratorError) {
@@ -12003,8 +12121,8 @@ function () {
_iteratorError2 = err;
} finally {
try {
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
- _iterator2.return();
+ if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
+ _iterator2["return"]();
}
} finally {
if (_didIteratorError2) {
@@ -12060,8 +12178,8 @@ function () {
_iteratorError3 = err;
} finally {
try {
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
- _iterator3.return();
+ if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
+ _iterator3["return"]();
}
} finally {
if (_didIteratorError3) {
@@ -12167,8 +12285,8 @@ function () {
_iteratorError4 = err;
} finally {
try {
- if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
- _iterator4.return();
+ if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
+ _iterator4["return"]();
}
} finally {
if (_didIteratorError4) {
@@ -12196,8 +12314,8 @@ function () {
}
}
- for (var _i = 0; _i < loadedRequests.length; _i++) {
- var _requestId = loadedRequests[_i];
+ for (var _i = 0, _loadedRequests = loadedRequests; _i < _loadedRequests.length; _i++) {
+ var _requestId = _loadedRequests[_i];
var capability = this.promisesByRequest[_requestId];
delete this.promisesByRequest[_requestId];
capability.resolve();
@@ -12225,15 +12343,15 @@ function () {
}
}, {
key: "abort",
- value: function abort() {
+ value: function abort(reason) {
this.aborted = true;
if (this.pdfNetworkStream) {
- this.pdfNetworkStream.cancelAllRequests('abort');
+ this.pdfNetworkStream.cancelAllRequests(reason);
}
for (var requestId in this.promisesByRequest) {
- this.promisesByRequest[requestId].reject(new Error('Request was aborted'));
+ this.promisesByRequest[requestId].reject(reason);
}
}
}]);
@@ -12244,7 +12362,165 @@ function () {
exports.ChunkedStreamManager = ChunkedStreamManager;
/***/ }),
-/* 153 */
+/* 186 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.getLookupTableFactory = getLookupTableFactory;
+exports.getInheritableProperty = getInheritableProperty;
+exports.toRomanNumerals = toRomanNumerals;
+exports.XRefParseException = exports.XRefEntryException = exports.MissingDataException = void 0;
+
+var _util = __w_pdfjs_require__(5);
+
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
+
+function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
+function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
+
+function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
+
+function getLookupTableFactory(initializer) {
+ var lookup;
+ return function () {
+ if (initializer) {
+ lookup = Object.create(null);
+ initializer(lookup);
+ initializer = null;
+ }
+
+ return lookup;
+ };
+}
+
+var MissingDataException =
+/*#__PURE__*/
+function (_BaseException) {
+ _inherits(MissingDataException, _BaseException);
+
+ function MissingDataException(begin, end) {
+ var _this;
+
+ _classCallCheck(this, MissingDataException);
+
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(MissingDataException).call(this, "Missing data [".concat(begin, ", ").concat(end, ")")));
+ _this.begin = begin;
+ _this.end = end;
+ return _this;
+ }
+
+ return MissingDataException;
+}(_util.BaseException);
+
+exports.MissingDataException = MissingDataException;
+
+var XRefEntryException =
+/*#__PURE__*/
+function (_BaseException2) {
+ _inherits(XRefEntryException, _BaseException2);
+
+ function XRefEntryException() {
+ _classCallCheck(this, XRefEntryException);
+
+ return _possibleConstructorReturn(this, _getPrototypeOf(XRefEntryException).apply(this, arguments));
+ }
+
+ return XRefEntryException;
+}(_util.BaseException);
+
+exports.XRefEntryException = XRefEntryException;
+
+var XRefParseException =
+/*#__PURE__*/
+function (_BaseException3) {
+ _inherits(XRefParseException, _BaseException3);
+
+ function XRefParseException() {
+ _classCallCheck(this, XRefParseException);
+
+ return _possibleConstructorReturn(this, _getPrototypeOf(XRefParseException).apply(this, arguments));
+ }
+
+ return XRefParseException;
+}(_util.BaseException);
+
+exports.XRefParseException = XRefParseException;
+
+function getInheritableProperty(_ref) {
+ var dict = _ref.dict,
+ key = _ref.key,
+ _ref$getArray = _ref.getArray,
+ getArray = _ref$getArray === void 0 ? false : _ref$getArray,
+ _ref$stopWhenFound = _ref.stopWhenFound,
+ stopWhenFound = _ref$stopWhenFound === void 0 ? true : _ref$stopWhenFound;
+ var LOOP_LIMIT = 100;
+ var loopCount = 0;
+ var values;
+
+ while (dict) {
+ var value = getArray ? dict.getArray(key) : dict.get(key);
+
+ if (value !== undefined) {
+ if (stopWhenFound) {
+ return value;
+ }
+
+ if (!values) {
+ values = [];
+ }
+
+ values.push(value);
+ }
+
+ if (++loopCount > LOOP_LIMIT) {
+ (0, _util.warn)("getInheritableProperty: maximum loop count exceeded for \"".concat(key, "\""));
+ break;
+ }
+
+ dict = dict.get('Parent');
+ }
+
+ return values;
+}
+
+var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];
+
+function toRomanNumerals(number) {
+ var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ (0, _util.assert)(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');
+ var pos,
+ romanBuf = [];
+
+ while (number >= 1000) {
+ number -= 1000;
+ romanBuf.push('M');
+ }
+
+ pos = number / 100 | 0;
+ number %= 100;
+ romanBuf.push(ROMAN_NUMBER_MAP[pos]);
+ pos = number / 10 | 0;
+ number %= 10;
+ romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);
+ romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);
+ var romanStr = romanBuf.join('');
+ return lowerCase ? romanStr.toLowerCase() : romanStr;
+}
+
+/***/ }),
+/* 187 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -12255,31 +12531,33 @@ Object.defineProperty(exports, "__esModule", {
});
exports.PDFDocument = exports.Page = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
+
+var _obj = __w_pdfjs_require__(188);
-var _obj = __w_pdfjs_require__(154);
+var _primitives = __w_pdfjs_require__(183);
-var _primitives = __w_pdfjs_require__(155);
+var _core_utils = __w_pdfjs_require__(186);
-var _stream2 = __w_pdfjs_require__(157);
+var _stream2 = __w_pdfjs_require__(190);
-var _annotation = __w_pdfjs_require__(169);
+var _annotation = __w_pdfjs_require__(202);
-var _crypto = __w_pdfjs_require__(167);
+var _crypto = __w_pdfjs_require__(200);
-var _parser = __w_pdfjs_require__(156);
+var _parser = __w_pdfjs_require__(189);
-var _operator_list = __w_pdfjs_require__(170);
+var _operator_list = __w_pdfjs_require__(203);
-var _evaluator = __w_pdfjs_require__(171);
+var _evaluator = __w_pdfjs_require__(204);
-var _function = __w_pdfjs_require__(185);
+var _function = __w_pdfjs_require__(218);
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
@@ -12321,13 +12599,15 @@ function () {
this.pdfFunctionFactory = pdfFunctionFactory;
this.evaluatorOptions = pdfManager.evaluatorOptions;
this.resourcesPromise = null;
- var uniquePrefix = "p".concat(this.pageIndex, "_");
var idCounters = {
obj: 0
};
this.idFactory = {
createObjId: function createObjId() {
- return uniquePrefix + ++idCounters.obj;
+ return "p".concat(pageIndex, "_").concat(++idCounters.obj);
+ },
+ getDocId: function getDocId() {
+ return "g_".concat(pdfManager.docId);
}
};
}
@@ -12336,7 +12616,7 @@ function () {
key: "_getInheritableProperty",
value: function _getInheritableProperty(key) {
var getArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- var value = (0, _util.getInheritableProperty)({
+ var value = (0, _core_utils.getInheritableProperty)({
dict: this.pageDict,
key: key,
getArray: getArray,
@@ -12354,6 +12634,21 @@ function () {
return _primitives.Dict.merge(this.xref, value);
}
}, {
+ key: "_getBoundingBox",
+ value: function _getBoundingBox(name) {
+ var box = this._getInheritableProperty(name, true);
+
+ if (Array.isArray(box) && box.length === 4) {
+ if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {
+ return box;
+ }
+
+ (0, _util.warn)("Empty /".concat(name, " entry."));
+ }
+
+ return null;
+ }
+ }, {
key: "getContentStream",
value: function getContentStream() {
var content = this.content;
@@ -12376,8 +12671,8 @@ function () {
_iteratorError = err;
} finally {
try {
- if (!_iteratorNormalCompletion && _iterator.return != null) {
- _iterator.return();
+ if (!_iteratorNormalCompletion && _iterator["return"] != null) {
+ _iterator["return"]();
}
} finally {
if (_didIteratorError) {
@@ -12415,13 +12710,13 @@ function () {
var _this2 = this;
var handler = _ref2.handler,
+ sink = _ref2.sink,
task = _ref2.task,
intent = _ref2.intent,
renderInteractiveForms = _ref2.renderInteractiveForms;
var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');
var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);
var partialEvaluator = new _evaluator.PartialEvaluator({
- pdfManager: this.pdfManager,
xref: this.xref,
handler: handler,
pageIndex: this.pageIndex,
@@ -12436,7 +12731,7 @@ function () {
var _ref4 = _slicedToArray(_ref3, 1),
contentStream = _ref4[0];
- var opList = new _operator_list.OperatorList(intent, handler, _this2.pageIndex);
+ var opList = new _operator_list.OperatorList(intent, sink, _this2.pageIndex);
handler.send('StartRenderPage', {
transparency: partialEvaluator.hasBlendModes(_this2.resources),
pageIndex: _this2.pageIndex,
@@ -12458,7 +12753,9 @@ function () {
if (annotations.length === 0) {
pageOpList.flush(true);
- return pageOpList;
+ return {
+ length: pageOpList.totalLength
+ };
}
var opListPromises = [];
@@ -12479,8 +12776,8 @@ function () {
_iteratorError2 = err;
} finally {
try {
- if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
- _iterator2.return();
+ if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
+ _iterator2["return"]();
}
} finally {
if (_didIteratorError2) {
@@ -12505,8 +12802,8 @@ function () {
_iteratorError3 = err;
} finally {
try {
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
- _iterator3.return();
+ if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
+ _iterator3["return"]();
}
} finally {
if (_didIteratorError3) {
@@ -12517,7 +12814,9 @@ function () {
pageOpList.addOp(_util.OPS.endAnnotations, []);
pageOpList.flush(true);
- return pageOpList;
+ return {
+ length: pageOpList.totalLength
+ };
});
});
}
@@ -12539,7 +12838,6 @@ function () {
contentStream = _ref9[0];
var partialEvaluator = new _evaluator.PartialEvaluator({
- pdfManager: _this3.pdfManager,
xref: _this3.xref,
handler: handler,
pageIndex: _this3.pageIndex,
@@ -12587,24 +12885,12 @@ function () {
}, {
key: "mediaBox",
get: function get() {
- var mediaBox = this._getInheritableProperty('MediaBox', true);
-
- if (!Array.isArray(mediaBox) || mediaBox.length !== 4) {
- return (0, _util.shadow)(this, 'mediaBox', LETTER_SIZE_MEDIABOX);
- }
-
- return (0, _util.shadow)(this, 'mediaBox', mediaBox);
+ return (0, _util.shadow)(this, 'mediaBox', this._getBoundingBox('MediaBox') || LETTER_SIZE_MEDIABOX);
}
}, {
key: "cropBox",
get: function get() {
- var cropBox = this._getInheritableProperty('CropBox', true);
-
- if (!Array.isArray(cropBox) || cropBox.length !== 4) {
- return (0, _util.shadow)(this, 'cropBox', this.mediaBox);
- }
-
- return (0, _util.shadow)(this, 'cropBox', cropBox);
+ return (0, _util.shadow)(this, 'cropBox', this._getBoundingBox('CropBox') || this.mediaBox);
}
}, {
key: "userUnit",
@@ -12620,16 +12906,23 @@ function () {
}, {
key: "view",
get: function get() {
- var mediaBox = this.mediaBox,
- cropBox = this.cropBox;
+ var cropBox = this.cropBox,
+ mediaBox = this.mediaBox;
+ var view;
- if (mediaBox === cropBox) {
- return (0, _util.shadow)(this, 'view', mediaBox);
- }
+ if (cropBox === mediaBox || (0, _util.isArrayEqual)(cropBox, mediaBox)) {
+ view = mediaBox;
+ } else {
+ var box = _util.Util.intersect(cropBox, mediaBox);
- var intersection = _util.Util.intersect(cropBox, mediaBox);
+ if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {
+ view = box;
+ } else {
+ (0, _util.warn)('Empty /CropBox and /MediaBox intersection.');
+ }
+ }
- return (0, _util.shadow)(this, 'view', intersection || mediaBox);
+ return (0, _util.shadow)(this, 'view', view || mediaBox);
}
}, {
key: "rotate",
@@ -12684,22 +12977,10 @@ exports.Page = Page;
var FINGERPRINT_FIRST_BYTES = 1024;
var EMPTY_FINGERPRINT = '\x00\x00\x00\x00\x00\x00\x00' + '\x00\x00\x00\x00\x00\x00\x00\x00\x00';
-function find(stream, needle, limit, backwards) {
- var pos = stream.pos;
- var end = stream.end;
-
- if (pos + limit > end) {
- limit = end - pos;
- }
-
- var strBuf = [];
-
- for (var i = 0; i < limit; ++i) {
- strBuf.push(String.fromCharCode(stream.getByte()));
- }
-
- var str = strBuf.join('');
- stream.pos = pos;
+function find(stream, needle, limit) {
+ var backwards = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
+ (0, _util.assert)(limit > 0, 'The "limit" must be a positive integer.');
+ var str = (0, _util.bytesToString)(stream.peekBytes(limit));
var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle);
if (index === -1) {
@@ -12757,18 +13038,32 @@ function () {
this.xfa = this.acroForm.get('XFA');
var fields = this.acroForm.get('Fields');
- if ((!fields || !Array.isArray(fields) || fields.length === 0) && !this.xfa) {
+ if ((!Array.isArray(fields) || fields.length === 0) && !this.xfa) {
this.acroForm = null;
}
}
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
(0, _util.info)('Cannot fetch AcroForm entry; assuming no AcroForms are present');
this.acroForm = null;
}
+
+ try {
+ var collection = this.catalog.catDict.get('Collection');
+
+ if ((0, _primitives.isDict)(collection) && collection.getKeys().length > 0) {
+ this.collection = collection;
+ }
+ } catch (ex) {
+ if (ex instanceof _core_utils.MissingDataException) {
+ throw ex;
+ }
+
+ (0, _util.info)('Cannot fetch Collection dictionary.');
+ }
}
}, {
key: "checkHeader",
@@ -12814,7 +13109,9 @@ function () {
var catalog = this.catalog,
linearization = this.linearization;
(0, _util.assert)(linearization && linearization.pageFirst === pageIndex);
- var ref = new _primitives.Ref(linearization.objectNumberFirst, 0);
+
+ var ref = _primitives.Ref.get(linearization.objectNumberFirst, 0);
+
return this.xref.fetchAsync(ref).then(function (obj) {
if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Type') && obj.has('Contents')) {
if (ref && !catalog.pageKidsCountCache.has(ref)) {
@@ -12825,7 +13122,7 @@ function () {
}
throw new _util.FormatError('The Linearization dictionary doesn\'t point ' + 'to a valid Page dictionary.');
- }).catch(function (reason) {
+ })["catch"](function (reason) {
(0, _util.info)(reason);
return catalog.getPageDict(pageIndex);
});
@@ -12864,13 +13161,13 @@ function () {
value: function checkFirstPage() {
var _this6 = this;
- return this.getPage(0).catch(function (reason) {
- if (reason instanceof _util.XRefEntryException) {
+ return this.getPage(0)["catch"](function (reason) {
+ if (reason instanceof _core_utils.XRefEntryException) {
_this6._pagePromises.length = 0;
_this6.cleanup();
- throw new _util.XRefParseException();
+ throw new _core_utils.XRefParseException();
}
});
}
@@ -12892,7 +13189,7 @@ function () {
try {
linearization = _parser.Linearization.create(this.stream);
} catch (err) {
- if (err instanceof _util.MissingDataException) {
+ if (err instanceof _core_utils.MissingDataException) {
throw err;
}
@@ -12980,14 +13277,15 @@ function () {
PDFFormatVersion: this.pdfFormatVersion,
IsLinearized: !!this.linearization,
IsAcroFormPresent: !!this.acroForm,
- IsXFAPresent: !!this.xfa
+ IsXFAPresent: !!this.xfa,
+ IsCollectionPresent: !!this.collection
};
var infoDict;
try {
infoDict = this.xref.trailer.get('Info');
} catch (err) {
- if (err instanceof _util.MissingDataException) {
+ if (err instanceof _core_utils.MissingDataException) {
throw err;
}
@@ -13034,8 +13332,8 @@ function () {
_iteratorError4 = err;
} finally {
try {
- if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
- _iterator4.return();
+ if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
+ _iterator4["return"]();
}
} finally {
if (_didIteratorError4) {
@@ -13056,21 +13354,17 @@ function () {
if (Array.isArray(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) {
hash = (0, _util.stringToBytes)(idArray[0]);
} else {
- if (this.stream.ensureRange) {
- this.stream.ensureRange(0, Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end));
- }
-
- hash = (0, _crypto.calculateMD5)(this.stream.bytes.subarray(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);
+ hash = (0, _crypto.calculateMD5)(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);
}
- var fingerprint = '';
+ var fingerprintBuf = [];
for (var i = 0, ii = hash.length; i < ii; i++) {
var hex = hash[i].toString(16);
- fingerprint += hex.length === 1 ? '0' + hex : hex;
+ fingerprintBuf.push(hex.padStart(2, '0'));
}
- return (0, _util.shadow)(this, 'fingerprint', fingerprint);
+ return (0, _util.shadow)(this, 'fingerprint', fingerprintBuf.join(''));
}
}]);
@@ -13080,7 +13374,7 @@ function () {
exports.PDFDocument = PDFDocument;
/***/ }),
-/* 154 */
+/* 188 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -13093,19 +13387,21 @@ exports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = void
var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
-var _parser = __w_pdfjs_require__(156);
+var _parser = __w_pdfjs_require__(189);
-var _chunked_stream = __w_pdfjs_require__(152);
+var _core_utils = __w_pdfjs_require__(186);
-var _crypto = __w_pdfjs_require__(167);
+var _chunked_stream = __w_pdfjs_require__(185);
-var _colorspace = __w_pdfjs_require__(168);
+var _crypto = __w_pdfjs_require__(200);
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _colorspace = __w_pdfjs_require__(201);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
@@ -13125,7 +13421,7 @@ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArra
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
@@ -13211,6 +13507,7 @@ function () {
var title = outlineDict.get('Title');
var flags = outlineDict.get('F') || 0;
var color = outlineDict.getArray('C');
+ var count = outlineDict.get('Count');
var rgbColor = blackColor;
if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {
@@ -13224,7 +13521,7 @@ function () {
newWindow: data.newWindow,
title: (0, _util.stringToPDFString)(title),
color: rgbColor,
- count: outlineDict.get('Count'),
+ count: Number.isInteger(count) ? count : undefined,
bold: !!(flags & 2),
italic: !!(flags & 1),
items: []
@@ -13302,6 +13599,8 @@ function () {
} else if (this.catDict.has('Dests')) {
return this.catDict.get('Dests');
}
+
+ return undefined;
}
}, {
key: "_readPageLabels",
@@ -13376,7 +13675,7 @@ function () {
case 'R':
case 'r':
- currentLabel = (0, _util.toRomanNumerals)(currentIndex, style === 'r');
+ currentLabel = (0, _core_utils.toRomanNumerals)(currentIndex, style === 'r');
break;
case 'A':
@@ -13436,8 +13735,8 @@ function () {
_iteratorError = err;
} finally {
try {
- if (!_iteratorNormalCompletion && _iterator.return != null) {
- _iterator.return();
+ if (!_iteratorNormalCompletion && _iterator["return"] != null) {
+ _iterator["return"]();
}
} finally {
if (_didIteratorError) {
@@ -13452,6 +13751,7 @@ function () {
value: function cleanup() {
var _this = this;
+ (0, _primitives.clearPrimitiveCaches)();
this.pageKidsCountCache.clear();
var promises = [];
this.fontCache.forEach(function (promise) {
@@ -13696,7 +13996,7 @@ function () {
try {
metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));
} catch (e) {
- if (e instanceof _util.MissingDataException) {
+ if (e instanceof _core_utils.MissingDataException) {
throw e;
}
@@ -13726,7 +14026,7 @@ function () {
try {
obj = this._readDocumentOutline();
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
@@ -13743,7 +14043,7 @@ function () {
try {
permissions = this._readPermissions();
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
@@ -13793,7 +14093,7 @@ function () {
try {
obj = this._readPageLabels();
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
@@ -13803,6 +14103,26 @@ function () {
return (0, _util.shadow)(this, 'pageLabels', obj);
}
}, {
+ key: "pageLayout",
+ get: function get() {
+ var obj = this.catDict.get('PageLayout');
+ var pageLayout = '';
+
+ if ((0, _primitives.isName)(obj)) {
+ switch (obj.name) {
+ case 'SinglePage':
+ case 'OneColumn':
+ case 'TwoColumnLeft':
+ case 'TwoColumnRight':
+ case 'TwoPageLeft':
+ case 'TwoPageRight':
+ pageLayout = obj.name;
+ }
+ }
+
+ return (0, _util.shadow)(this, 'pageLayout', pageLayout);
+ }
+ }, {
key: "pageMode",
get: function get() {
var obj = this.catDict.get('PageMode');
@@ -13823,6 +14143,162 @@ function () {
return (0, _util.shadow)(this, 'pageMode', pageMode);
}
}, {
+ key: "viewerPreferences",
+ get: function get() {
+ var _this2 = this;
+
+ var ViewerPreferencesValidators = {
+ HideToolbar: _util.isBool,
+ HideMenubar: _util.isBool,
+ HideWindowUI: _util.isBool,
+ FitWindow: _util.isBool,
+ CenterWindow: _util.isBool,
+ DisplayDocTitle: _util.isBool,
+ NonFullScreenPageMode: _primitives.isName,
+ Direction: _primitives.isName,
+ ViewArea: _primitives.isName,
+ ViewClip: _primitives.isName,
+ PrintArea: _primitives.isName,
+ PrintClip: _primitives.isName,
+ PrintScaling: _primitives.isName,
+ Duplex: _primitives.isName,
+ PickTrayByPDFSize: _util.isBool,
+ PrintPageRange: Array.isArray,
+ NumCopies: Number.isInteger
+ };
+ var obj = this.catDict.get('ViewerPreferences');
+ var prefs = Object.create(null);
+
+ if ((0, _primitives.isDict)(obj)) {
+ for (var key in ViewerPreferencesValidators) {
+ if (!obj.has(key)) {
+ continue;
+ }
+
+ var value = obj.get(key);
+
+ if (!ViewerPreferencesValidators[key](value)) {
+ (0, _util.info)("Bad value in ViewerPreferences for \"".concat(key, "\"."));
+ continue;
+ }
+
+ var prefValue = void 0;
+
+ switch (key) {
+ case 'NonFullScreenPageMode':
+ switch (value.name) {
+ case 'UseNone':
+ case 'UseOutlines':
+ case 'UseThumbs':
+ case 'UseOC':
+ prefValue = value.name;
+ break;
+
+ default:
+ prefValue = 'UseNone';
+ }
+
+ break;
+
+ case 'Direction':
+ switch (value.name) {
+ case 'L2R':
+ case 'R2L':
+ prefValue = value.name;
+ break;
+
+ default:
+ prefValue = 'L2R';
+ }
+
+ break;
+
+ case 'ViewArea':
+ case 'ViewClip':
+ case 'PrintArea':
+ case 'PrintClip':
+ switch (value.name) {
+ case 'MediaBox':
+ case 'CropBox':
+ case 'BleedBox':
+ case 'TrimBox':
+ case 'ArtBox':
+ prefValue = value.name;
+ break;
+
+ default:
+ prefValue = 'CropBox';
+ }
+
+ break;
+
+ case 'PrintScaling':
+ switch (value.name) {
+ case 'None':
+ case 'AppDefault':
+ prefValue = value.name;
+ break;
+
+ default:
+ prefValue = 'AppDefault';
+ }
+
+ break;
+
+ case 'Duplex':
+ switch (value.name) {
+ case 'Simplex':
+ case 'DuplexFlipShortEdge':
+ case 'DuplexFlipLongEdge':
+ prefValue = value.name;
+ break;
+
+ default:
+ prefValue = 'None';
+ }
+
+ break;
+
+ case 'PrintPageRange':
+ var length = value.length;
+
+ if (length % 2 !== 0) {
+ break;
+ }
+
+ var isValid = value.every(function (page, i, arr) {
+ return Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= _this2.numPages;
+ });
+
+ if (isValid) {
+ prefValue = value;
+ }
+
+ break;
+
+ case 'NumCopies':
+ if (value > 0) {
+ prefValue = value;
+ }
+
+ break;
+
+ default:
+ (0, _util.assert)(typeof value === 'boolean');
+ prefValue = value;
+ }
+
+ if (prefValue !== undefined) {
+ prefs[key] = prefValue;
+ } else {
+ (0, _util.info)("Bad value in ViewerPreferences for \"".concat(key, "\"."));
+ }
+ }
+ }
+
+ return (0, _util.shadow)(this, 'viewerPreferences', prefs);
+ }
+ }, {
key: "openActionDestination",
get: function get() {
var obj = this.catDict.get('OpenAction');
@@ -14112,10 +14588,10 @@ var XRef = function XRefClosure() {
this.pdfManager = pdfManager;
this.entries = [];
this.xrefstms = Object.create(null);
- this.cache = [];
+ this._cacheMap = new Map();
this.stats = {
- streamTypes: [],
- fontTypes: []
+ streamTypes: Object.create(null),
+ fontTypes: Object.create(null)
};
}
@@ -14140,7 +14616,7 @@ var XRef = function XRefClosure() {
try {
encrypt = trailerDict.get('Encrypt');
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
@@ -14159,7 +14635,7 @@ var XRef = function XRefClosure() {
try {
root = trailerDict.get('Root');
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
@@ -14170,7 +14646,7 @@ var XRef = function XRefClosure() {
this.root = root;
} else {
if (!recoveryMode) {
- throw new _util.XRefParseException();
+ throw new _core_utils.XRefParseException();
}
throw new _util.FormatError('Invalid root reference');
@@ -14240,10 +14716,16 @@ var XRef = function XRefClosure() {
entry.gen = parser.getObj();
var type = parser.getObj();
- if ((0, _primitives.isCmd)(type, 'f')) {
- entry.free = true;
- } else if ((0, _primitives.isCmd)(type, 'n')) {
- entry.uncompressed = true;
+ if (type instanceof _primitives.Cmd) {
+ switch (type.cmd) {
+ case 'f':
+ entry.free = true;
+ break;
+
+ case 'n':
+ entry.uncompressed = true;
+ break;
+ }
}
if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) {
@@ -14527,7 +15009,12 @@ var XRef = function XRefClosure() {
for (i = 0, ii = trailers.length; i < ii; ++i) {
stream.pos = trailers[i];
- var parser = new _parser.Parser(new _parser.Lexer(stream), true, this, true);
+ var parser = new _parser.Parser({
+ lexer: new _parser.Lexer(stream),
+ xref: this,
+ allowStreams: true,
+ recoveryMode: true
+ });
var obj = parser.getObj();
if (!(0, _primitives.isCmd)(obj, 'trailer')) {
@@ -14545,7 +15032,7 @@ var XRef = function XRefClosure() {
try {
rootDict = dict.get('Root');
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
@@ -14585,7 +15072,11 @@ var XRef = function XRefClosure() {
startXRefParsedCache[startXRef] = true;
stream.pos = startXRef + stream.start;
- var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);
+ var parser = new _parser.Parser({
+ lexer: new _parser.Lexer(stream),
+ xref: this,
+ allowStreams: true
+ });
var obj = parser.getObj();
var dict;
@@ -14637,7 +15128,7 @@ var XRef = function XRefClosure() {
return this.topDict;
} catch (e) {
- if (e instanceof _util.MissingDataException) {
+ if (e instanceof _core_utils.MissingDataException) {
throw e;
}
@@ -14645,10 +15136,10 @@ var XRef = function XRefClosure() {
}
if (recoveryMode) {
- return;
+ return undefined;
}
- throw new _util.XRefParseException();
+ throw new _core_utils.XRefParseException();
},
getEntry: function XRef_getEntry(i) {
var xrefEntry = this.entries[i];
@@ -14660,21 +15151,21 @@ var XRef = function XRefClosure() {
return null;
},
fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {
- if (!(0, _primitives.isRef)(obj)) {
- return obj;
+ if (obj instanceof _primitives.Ref) {
+ return this.fetch(obj, suppressEncryption);
}
- return this.fetch(obj, suppressEncryption);
+ return obj;
},
fetch: function XRef_fetch(ref, suppressEncryption) {
- if (!(0, _primitives.isRef)(ref)) {
+ if (!(ref instanceof _primitives.Ref)) {
throw new Error('ref object is not a reference');
}
var num = ref.num;
- if (num in this.cache) {
- var cacheEntry = this.cache[num];
+ if (this._cacheMap.has(num)) {
+ var cacheEntry = this._cacheMap.get(num);
if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {
cacheEntry.objId = ref.toString();
@@ -14686,7 +15177,9 @@ var XRef = function XRefClosure() {
var xrefEntry = this.getEntry(num);
if (xrefEntry === null) {
- return this.cache[num] = null;
+ this._cacheMap.set(num, xrefEntry);
+
+ return xrefEntry;
}
if (xrefEntry.uncompressed) {
@@ -14709,11 +15202,15 @@ var XRef = function XRefClosure() {
var num = ref.num;
if (xrefEntry.gen !== gen) {
- throw new _util.XRefEntryException("Inconsistent generation in XRef: ".concat(ref));
+ throw new _core_utils.XRefEntryException("Inconsistent generation in XRef: ".concat(ref));
}
var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);
- var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);
+ var parser = new _parser.Parser({
+ lexer: new _parser.Lexer(stream),
+ xref: this,
+ allowStreams: true
+ });
var obj1 = parser.getObj();
var obj2 = parser.getObj();
var obj3 = parser.getObj();
@@ -14726,8 +15223,8 @@ var XRef = function XRefClosure() {
obj2 = parseInt(obj2, 10);
}
- if (obj1 !== num || obj2 !== gen || !(0, _primitives.isCmd)(obj3)) {
- throw new _util.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(ref));
+ if (obj1 !== num || obj2 !== gen || !(obj3 instanceof _primitives.Cmd)) {
+ throw new _core_utils.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(ref));
}
if (obj3.cmd !== 'obj') {
@@ -14739,7 +15236,7 @@ var XRef = function XRefClosure() {
}
}
- throw new _util.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(ref));
+ throw new _core_utils.XRefEntryException("Bad (uncompressed) XRef entry: ".concat(ref));
}
if (this.encrypt && !suppressEncryption) {
@@ -14749,7 +15246,7 @@ var XRef = function XRefClosure() {
}
if (!(0, _primitives.isStream)(xrefEntry)) {
- this.cache[num] = xrefEntry;
+ this._cacheMap.set(num, xrefEntry);
}
return xrefEntry;
@@ -14757,7 +15254,7 @@ var XRef = function XRefClosure() {
fetchCompressed: function fetchCompressed(ref, xrefEntry) {
var suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var tableOffset = xrefEntry.offset;
- var stream = this.fetch(new _primitives.Ref(tableOffset, 0));
+ var stream = this.fetch(_primitives.Ref.get(tableOffset, 0));
if (!(0, _primitives.isStream)(stream)) {
throw new _util.FormatError('bad ObjStm stream');
@@ -14770,8 +15267,11 @@ var XRef = function XRefClosure() {
throw new _util.FormatError('invalid first and n parameters for ObjStm stream');
}
- var parser = new _parser.Parser(new _parser.Lexer(stream), false, this);
- parser.allowStreams = true;
+ var parser = new _parser.Parser({
+ lexer: new _parser.Lexer(stream),
+ xref: this,
+ allowStreams: true
+ });
var i,
entries = [],
num,
@@ -14803,14 +15303,14 @@ var XRef = function XRefClosure() {
var entry = this.entries[num];
if (entry && entry.offset === tableOffset && entry.gen === i) {
- this.cache[num] = entries[i];
+ this._cacheMap.set(num, entries[i]);
}
}
xrefEntry = entries[xrefEntry.gen];
if (xrefEntry === undefined) {
- throw new _util.XRefEntryException("Bad (compressed) XRef entry: ".concat(ref));
+ throw new _core_utils.XRefEntryException("Bad (compressed) XRef entry: ".concat(ref));
}
return xrefEntry;
@@ -14818,20 +15318,20 @@ var XRef = function XRefClosure() {
fetchIfRefAsync: function () {
var _fetchIfRefAsync = _asyncToGenerator(
/*#__PURE__*/
- _regenerator.default.mark(function _callee(obj, suppressEncryption) {
- return _regenerator.default.wrap(function _callee$(_context) {
+ _regenerator["default"].mark(function _callee(obj, suppressEncryption) {
+ return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
- if ((0, _primitives.isRef)(obj)) {
+ if (!(obj instanceof _primitives.Ref)) {
_context.next = 2;
break;
}
- return _context.abrupt("return", obj);
+ return _context.abrupt("return", this.fetchAsync(obj, suppressEncryption));
case 2:
- return _context.abrupt("return", this.fetchAsync(obj, suppressEncryption));
+ return _context.abrupt("return", obj);
case 3:
case "end":
@@ -14850,8 +15350,8 @@ var XRef = function XRefClosure() {
fetchAsync: function () {
var _fetchAsync = _asyncToGenerator(
/*#__PURE__*/
- _regenerator.default.mark(function _callee2(ref, suppressEncryption) {
- return _regenerator.default.wrap(function _callee2$(_context2) {
+ _regenerator["default"].mark(function _callee2(ref, suppressEncryption) {
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
@@ -14862,7 +15362,7 @@ var XRef = function XRefClosure() {
_context2.prev = 4;
_context2.t0 = _context2["catch"](0);
- if (_context2.t0 instanceof _util.MissingDataException) {
+ if (_context2.t0 instanceof _core_utils.MissingDataException) {
_context2.next = 8;
break;
}
@@ -15234,7 +15734,7 @@ var ObjectLoader = function () {
return this.capability.promise;
},
_walk: function _walk(nodesToVisit) {
- var _this2 = this;
+ var _this3 = this;
var nodesToRevisit = [];
var pendingRequests = [];
@@ -15251,7 +15751,7 @@ var ObjectLoader = function () {
this.refSet.put(currentNode);
currentNode = this.xref.fetch(currentNode);
} catch (ex) {
- if (!(ex instanceof _util.MissingDataException)) {
+ if (!(ex instanceof _core_utils.MissingDataException)) {
throw ex;
}
@@ -15293,11 +15793,11 @@ var ObjectLoader = function () {
var node = nodesToRevisit[_i4];
if ((0, _primitives.isRef)(node)) {
- _this2.refSet.remove(node);
+ _this3.refSet.remove(node);
}
}
- _this2._walk(nodesToRevisit);
+ _this3._walk(nodesToRevisit);
}, this.capability.reject);
return;
}
@@ -15312,7 +15812,7 @@ var ObjectLoader = function () {
exports.ObjectLoader = ObjectLoader;
/***/ }),
-/* 155 */
+/* 189 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -15321,312 +15821,29 @@ exports.ObjectLoader = ObjectLoader;
Object.defineProperty(exports, "__esModule", {
value: true
});
-exports.isEOF = isEOF;
-exports.isCmd = isCmd;
-exports.isDict = isDict;
-exports.isName = isName;
-exports.isRef = isRef;
-exports.isRefsEqual = isRefsEqual;
-exports.isStream = isStream;
-exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;
-
-function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-var EOF = {};
-exports.EOF = EOF;
-
-var Name = function NameClosure() {
- function Name(name) {
- this.name = name;
- }
-
- Name.prototype = {};
- var nameCache = Object.create(null);
-
- Name.get = function Name_get(name) {
- var nameValue = nameCache[name];
- return nameValue ? nameValue : nameCache[name] = new Name(name);
- };
-
- return Name;
-}();
-
-exports.Name = Name;
-
-var Cmd = function CmdClosure() {
- function Cmd(cmd) {
- this.cmd = cmd;
- }
-
- Cmd.prototype = {};
- var cmdCache = Object.create(null);
-
- Cmd.get = function Cmd_get(cmd) {
- var cmdValue = cmdCache[cmd];
- return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);
- };
-
- return Cmd;
-}();
-
-exports.Cmd = Cmd;
-
-var Dict = function DictClosure() {
- var nonSerializable = function nonSerializableClosure() {
- return nonSerializable;
- };
-
- function Dict(xref) {
- this._map = Object.create(null);
- this.xref = xref;
- this.objId = null;
- this.suppressEncryption = false;
- this.__nonSerializable__ = nonSerializable;
- }
-
- Dict.prototype = {
- assignXref: function Dict_assignXref(newXref) {
- this.xref = newXref;
- },
- get: function Dict_get(key1, key2, key3) {
- var value;
- var xref = this.xref,
- suppressEncryption = this.suppressEncryption;
-
- if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {
- return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
- }
-
- if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {
- return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
- }
-
- value = this._map[key3] || null;
- return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
- },
- getAsync: function Dict_getAsync(key1, key2, key3) {
- var value;
- var xref = this.xref,
- suppressEncryption = this.suppressEncryption;
-
- if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {
- if (xref) {
- return xref.fetchIfRefAsync(value, suppressEncryption);
- }
-
- return Promise.resolve(value);
- }
-
- if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {
- if (xref) {
- return xref.fetchIfRefAsync(value, suppressEncryption);
- }
-
- return Promise.resolve(value);
- }
-
- value = this._map[key3] || null;
-
- if (xref) {
- return xref.fetchIfRefAsync(value, suppressEncryption);
- }
-
- return Promise.resolve(value);
- },
- getArray: function Dict_getArray(key1, key2, key3) {
- var value = this.get(key1, key2, key3);
- var xref = this.xref,
- suppressEncryption = this.suppressEncryption;
-
- if (!Array.isArray(value) || !xref) {
- return value;
- }
-
- value = value.slice();
-
- for (var i = 0, ii = value.length; i < ii; i++) {
- if (!isRef(value[i])) {
- continue;
- }
-
- value[i] = xref.fetch(value[i], suppressEncryption);
- }
-
- return value;
- },
- getRaw: function Dict_getRaw(key) {
- return this._map[key];
- },
- getKeys: function Dict_getKeys() {
- return Object.keys(this._map);
- },
- set: function Dict_set(key, value) {
- this._map[key] = value;
- },
- has: function Dict_has(key) {
- return key in this._map;
- },
- forEach: function Dict_forEach(callback) {
- for (var key in this._map) {
- callback(key, this.get(key));
- }
- }
- };
- Dict.empty = new Dict(null);
-
- Dict.merge = function (xref, dictArray) {
- var mergedDict = new Dict(xref);
-
- for (var i = 0, ii = dictArray.length; i < ii; i++) {
- var dict = dictArray[i];
-
- if (!isDict(dict)) {
- continue;
- }
-
- for (var keyName in dict._map) {
- if (mergedDict._map[keyName] !== undefined) {
- continue;
- }
-
- mergedDict._map[keyName] = dict._map[keyName];
- }
- }
-
- return mergedDict;
- };
-
- return Dict;
-}();
-
-exports.Dict = Dict;
-
-var Ref = function RefClosure() {
- function Ref(num, gen) {
- this.num = num;
- this.gen = gen;
- }
-
- Ref.prototype = {
- toString: function Ref_toString() {
- if (this.gen !== 0) {
- return "".concat(this.num, "R").concat(this.gen);
- }
-
- return "".concat(this.num, "R");
- }
- };
- return Ref;
-}();
-
-exports.Ref = Ref;
-
-var RefSet = function RefSetClosure() {
- function RefSet() {
- this.dict = Object.create(null);
- }
-
- RefSet.prototype = {
- has: function RefSet_has(ref) {
- return ref.toString() in this.dict;
- },
- put: function RefSet_put(ref) {
- this.dict[ref.toString()] = true;
- },
- remove: function RefSet_remove(ref) {
- delete this.dict[ref.toString()];
- }
- };
- return RefSet;
-}();
-
-exports.RefSet = RefSet;
-
-var RefSetCache = function RefSetCacheClosure() {
- function RefSetCache() {
- this.dict = Object.create(null);
- }
-
- RefSetCache.prototype = {
- get: function RefSetCache_get(ref) {
- return this.dict[ref.toString()];
- },
- has: function RefSetCache_has(ref) {
- return ref.toString() in this.dict;
- },
- put: function RefSetCache_put(ref, obj) {
- this.dict[ref.toString()] = obj;
- },
- putAlias: function RefSetCache_putAlias(ref, aliasRef) {
- this.dict[ref.toString()] = this.get(aliasRef);
- },
- forEach: function RefSetCache_forEach(fn, thisArg) {
- for (var i in this.dict) {
- fn.call(thisArg, this.dict[i]);
- }
- },
- clear: function RefSetCache_clear() {
- this.dict = Object.create(null);
- }
- };
- return RefSetCache;
-}();
-
-exports.RefSetCache = RefSetCache;
-
-function isEOF(v) {
- return v === EOF;
-}
-
-function isName(v, name) {
- return v instanceof Name && (name === undefined || v.name === name);
-}
-
-function isCmd(v, cmd) {
- return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);
-}
-
-function isDict(v, type) {
- return v instanceof Dict && (type === undefined || isName(v.get('Type'), type));
-}
-
-function isRef(v) {
- return v instanceof Ref;
-}
+exports.Parser = exports.Linearization = exports.Lexer = void 0;
-function isRefsEqual(v1, v2) {
- return v1.num === v2.num && v1.gen === v2.gen;
-}
+var _stream = __w_pdfjs_require__(190);
-function isStream(v) {
- return _typeof(v) === 'object' && v !== null && v.getBytes !== undefined;
-}
+var _util = __w_pdfjs_require__(5);
-/***/ }),
-/* 156 */
-/***/ (function(module, exports, __w_pdfjs_require__) {
+var _primitives = __w_pdfjs_require__(183);
-"use strict";
+var _ccitt_stream = __w_pdfjs_require__(191);
+var _jbig2_stream = __w_pdfjs_require__(193);
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.Parser = exports.Linearization = exports.Lexer = void 0;
-
-var _stream = __w_pdfjs_require__(157);
-
-var _util = __w_pdfjs_require__(6);
+var _jpeg_stream = __w_pdfjs_require__(196);
-var _primitives = __w_pdfjs_require__(155);
+var _jpx_stream = __w_pdfjs_require__(198);
-var _ccitt_stream = __w_pdfjs_require__(158);
+var _core_utils = __w_pdfjs_require__(186);
-var _jbig2_stream = __w_pdfjs_require__(160);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-var _jpeg_stream = __w_pdfjs_require__(163);
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-var _jpx_stream = __w_pdfjs_require__(165);
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
var MAX_LENGTH_TO_CACHE = 1000;
var MAX_ADLER32_LENGTH = 5552;
@@ -15644,43 +15861,62 @@ function computeAdler32(bytes) {
return b % 65521 << 16 | a % 65521;
}
-var Parser = function ParserClosure() {
- function Parser(lexer, allowStreams, xref, recoveryMode) {
+var Parser =
+/*#__PURE__*/
+function () {
+ function Parser(_ref) {
+ var lexer = _ref.lexer,
+ xref = _ref.xref,
+ _ref$allowStreams = _ref.allowStreams,
+ allowStreams = _ref$allowStreams === void 0 ? false : _ref$allowStreams,
+ _ref$recoveryMode = _ref.recoveryMode,
+ recoveryMode = _ref$recoveryMode === void 0 ? false : _ref$recoveryMode;
+
+ _classCallCheck(this, Parser);
+
this.lexer = lexer;
- this.allowStreams = allowStreams;
this.xref = xref;
- this.recoveryMode = recoveryMode || false;
+ this.allowStreams = allowStreams;
+ this.recoveryMode = recoveryMode;
this.imageCache = Object.create(null);
this.refill();
}
- Parser.prototype = {
- refill: function Parser_refill() {
+ _createClass(Parser, [{
+ key: "refill",
+ value: function refill() {
this.buf1 = this.lexer.getObj();
this.buf2 = this.lexer.getObj();
- },
- shift: function Parser_shift() {
- if ((0, _primitives.isCmd)(this.buf2, 'ID')) {
+ }
+ }, {
+ key: "shift",
+ value: function shift() {
+ if (this.buf2 instanceof _primitives.Cmd && this.buf2.cmd === 'ID') {
this.buf1 = this.buf2;
this.buf2 = null;
} else {
this.buf1 = this.buf2;
this.buf2 = this.lexer.getObj();
}
- },
- tryShift: function Parser_tryShift() {
+ }
+ }, {
+ key: "tryShift",
+ value: function tryShift() {
try {
this.shift();
return true;
} catch (e) {
- if (e instanceof _util.MissingDataException) {
+ if (e instanceof _core_utils.MissingDataException) {
throw e;
}
return false;
}
- },
- getObj: function Parser_getObj(cipherTransform) {
+ }
+ }, {
+ key: "getObj",
+ value: function getObj() {
+ var cipherTransform = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
var buf1 = this.buf1;
this.shift();
@@ -15748,31 +15984,30 @@ var Parser = function ParserClosure() {
}
if (Number.isInteger(buf1)) {
- var num = buf1;
-
if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, 'R')) {
- var ref = new _primitives.Ref(num, this.buf1);
+ var ref = _primitives.Ref.get(buf1, this.buf1);
+
this.shift();
this.shift();
return ref;
}
- return num;
+ return buf1;
}
- if ((0, _util.isString)(buf1)) {
- var str = buf1;
-
+ if (typeof buf1 === 'string') {
if (cipherTransform) {
- str = cipherTransform.decryptString(str);
+ return cipherTransform.decryptString(buf1);
}
- return str;
+ return buf1;
}
return buf1;
- },
- findDefaultInlineStreamEnd: function findDefaultInlineStreamEnd(stream) {
+ }
+ }, {
+ key: "findDefaultInlineStreamEnd",
+ value: function findDefaultInlineStreamEnd(stream) {
var E = 0x45,
I = 0x49,
SPACE = 0x20,
@@ -15838,8 +16073,10 @@ var Parser = function ParserClosure() {
}
return stream.pos - endOffset - startPos;
- },
- findDCTDecodeInlineStreamEnd: function Parser_findDCTDecodeInlineStreamEnd(stream) {
+ }
+ }, {
+ key: "findDCTDecodeInlineStreamEnd",
+ value: function findDCTDecodeInlineStreamEnd(stream) {
var startPos = stream.pos,
foundEOI = false,
b,
@@ -15927,8 +16164,10 @@ var Parser = function ParserClosure() {
this.inlineStreamSkipEI(stream);
return length;
- },
- findASCII85DecodeInlineStreamEnd: function Parser_findASCII85DecodeInlineStreamEnd(stream) {
+ }
+ }, {
+ key: "findASCII85DecodeInlineStreamEnd",
+ value: function findASCII85DecodeInlineStreamEnd(stream) {
var TILDE = 0x7E,
GT = 0x3E;
var startPos = stream.pos,
@@ -15936,9 +16175,18 @@ var Parser = function ParserClosure() {
length;
while ((ch = stream.getByte()) !== -1) {
- if (ch === TILDE && stream.peekByte() === GT) {
- stream.skip();
- break;
+ if (ch === TILDE) {
+ ch = stream.peekByte();
+
+ while ((0, _util.isSpace)(ch)) {
+ stream.skip();
+ ch = stream.peekByte();
+ }
+
+ if (ch === GT) {
+ stream.skip();
+ break;
+ }
}
}
@@ -15952,8 +16200,10 @@ var Parser = function ParserClosure() {
this.inlineStreamSkipEI(stream);
return length;
- },
- findASCIIHexDecodeInlineStreamEnd: function Parser_findASCIIHexDecodeInlineStreamEnd(stream) {
+ }
+ }, {
+ key: "findASCIIHexDecodeInlineStreamEnd",
+ value: function findASCIIHexDecodeInlineStreamEnd(stream) {
var GT = 0x3E;
var startPos = stream.pos,
ch,
@@ -15975,8 +16225,10 @@ var Parser = function ParserClosure() {
this.inlineStreamSkipEI(stream);
return length;
- },
- inlineStreamSkipEI: function Parser_inlineStreamSkipEI(stream) {
+ }
+ }, {
+ key: "inlineStreamSkipEI",
+ value: function inlineStreamSkipEI(stream) {
var E = 0x45,
I = 0x49;
var state = 0,
@@ -15991,12 +16243,14 @@ var Parser = function ParserClosure() {
break;
}
}
- },
- makeInlineImage: function Parser_makeInlineImage(cipherTransform) {
+ }
+ }, {
+ key: "makeInlineImage",
+ value: function makeInlineImage(cipherTransform) {
var lexer = this.lexer;
var stream = lexer.stream;
- var dict = new _primitives.Dict(this.xref),
- dictLength;
+ var dict = new _primitives.Dict(this.xref);
+ var dictLength;
while (!(0, _primitives.isCmd)(this.buf1, 'ID') && !(0, _primitives.isEOF)(this.buf1)) {
if (!(0, _primitives.isName)(this.buf1)) {
@@ -16017,8 +16271,8 @@ var Parser = function ParserClosure() {
dictLength = stream.pos - lexer.beginInlineImagePos;
}
- var filter = dict.get('Filter', 'F'),
- filterName;
+ var filter = dict.get('Filter', 'F');
+ var filterName;
if ((0, _primitives.isName)(filter)) {
filterName = filter.name;
@@ -16030,8 +16284,8 @@ var Parser = function ParserClosure() {
}
}
- var startPos = stream.pos,
- length;
+ var startPos = stream.pos;
+ var length;
if (filterName === 'DCTDecode' || filterName === 'DCT') {
length = this.findDCTDecodeInlineStreamEnd(stream);
@@ -16072,15 +16326,17 @@ var Parser = function ParserClosure() {
imageStream.dict = dict;
if (cacheKey !== undefined) {
- imageStream.cacheKey = 'inline_' + length + '_' + cacheKey;
+ imageStream.cacheKey = "inline_".concat(length, "_").concat(cacheKey);
this.imageCache[cacheKey] = imageStream;
}
this.buf2 = _primitives.Cmd.get('EI');
this.shift();
return imageStream;
- },
- _findStreamLength: function _findStreamLength(startPos, signature) {
+ }
+ }, {
+ key: "_findStreamLength",
+ value: function _findStreamLength(startPos, signature) {
var stream = this.lexer.stream;
stream.pos = startPos;
var SCAN_BLOCK_LENGTH = 2048;
@@ -16115,8 +16371,10 @@ var Parser = function ParserClosure() {
}
return -1;
- },
- makeStream: function Parser_makeStream(dict, cipherTransform) {
+ }
+ }, {
+ key: "makeStream",
+ value: function makeStream(dict, cipherTransform) {
var lexer = this.lexer;
var stream = lexer.stream;
lexer.skipToNextLine();
@@ -16124,7 +16382,7 @@ var Parser = function ParserClosure() {
var length = dict.get('Length');
if (!Number.isInteger(length)) {
- (0, _util.info)('Bad ' + length + ' attribute in stream');
+ (0, _util.info)("Bad length \"".concat(length, "\" in stream"));
length = 0;
}
@@ -16181,8 +16439,10 @@ var Parser = function ParserClosure() {
stream = this.filter(stream, dict, length);
stream.dict = dict;
return stream;
- },
- filter: function Parser_filter(stream, dict, length) {
+ }
+ }, {
+ key: "filter",
+ value: function filter(stream, dict, length) {
var filter = dict.get('Filter', 'F');
var params = dict.get('DecodeParms', 'DP');
@@ -16204,7 +16464,7 @@ var Parser = function ParserClosure() {
filter = this.xref.fetchIfRef(filterArray[i]);
if (!(0, _primitives.isName)(filter)) {
- throw new _util.FormatError('Bad filter name: ' + filter);
+ throw new _util.FormatError("Bad filter name \"".concat(filter, "\""));
}
params = null;
@@ -16219,10 +16479,12 @@ var Parser = function ParserClosure() {
}
return stream;
- },
- makeFilter: function Parser_makeFilter(stream, name, maybeLength, params) {
+ }
+ }, {
+ key: "makeFilter",
+ value: function makeFilter(stream, name, maybeLength, params) {
if (maybeLength === 0) {
- (0, _util.warn)('Empty "' + name + '" stream.');
+ (0, _util.warn)("Empty \"".concat(name, "\" stream."));
return new _stream.NullStream();
}
@@ -16280,7 +16542,7 @@ var Parser = function ParserClosure() {
}
if (name === 'RunLengthDecode' || name === 'RL') {
- xrefStreamStats[_util.StreamType.RL] = true;
+ xrefStreamStats[_util.StreamType.RLX] = true;
return new _stream.RunLengthStream(stream, maybeLength);
}
@@ -16289,54 +16551,65 @@ var Parser = function ParserClosure() {
return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params);
}
- (0, _util.warn)('filter "' + name + '" not supported yet');
+ (0, _util.warn)("Filter \"".concat(name, "\" is not supported."));
return stream;
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
- (0, _util.warn)('Invalid stream: \"' + ex + '\"');
+ (0, _util.warn)("Invalid stream: \"".concat(ex, "\""));
return new _stream.NullStream();
}
}
- };
+ }]);
+
return Parser;
}();
exports.Parser = Parser;
+var specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
-var Lexer = function LexerClosure() {
- function Lexer(stream, knownCommands) {
- this.stream = stream;
- this.nextChar();
- this.strBuf = [];
- this.knownCommands = knownCommands;
- this.beginInlineImagePos = -1;
+function toHexDigit(ch) {
+ if (ch >= 0x30 && ch <= 0x39) {
+ return ch & 0x0F;
}
- var specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+ if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {
+ return (ch & 0x0F) + 9;
+ }
- function toHexDigit(ch) {
- if (ch >= 0x30 && ch <= 0x39) {
- return ch & 0x0F;
- }
+ return -1;
+}
- if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {
- return (ch & 0x0F) + 9;
- }
+var Lexer =
+/*#__PURE__*/
+function () {
+ function Lexer(stream) {
+ var knownCommands = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
+
+ _classCallCheck(this, Lexer);
- return -1;
+ this.stream = stream;
+ this.nextChar();
+ this.strBuf = [];
+ this.knownCommands = knownCommands;
+ this.beginInlineImagePos = -1;
}
- Lexer.prototype = {
- nextChar: function Lexer_nextChar() {
+ _createClass(Lexer, [{
+ key: "nextChar",
+ value: function nextChar() {
return this.currentChar = this.stream.getByte();
- },
- peekChar: function Lexer_peekChar() {
+ }
+ }, {
+ key: "peekChar",
+ value: function peekChar() {
return this.stream.peekByte();
- },
- getNumber: function Lexer_getNumber() {
+ }
+ }, {
+ key: "getNumber",
+ value: function getNumber() {
var ch = this.currentChar;
var eNotation = false;
var divideBy = 0;
@@ -16399,7 +16672,7 @@ var Lexer = function LexerClosure() {
break;
}
} else if (ch === 0x2D) {
- (0, _util.warn)('Badly formatted number');
+ (0, _util.warn)('Badly formatted number: minus sign in the middle');
} else if (ch === 0x45 || ch === 0x65) {
ch = this.peekChar();
@@ -16425,8 +16698,10 @@ var Lexer = function LexerClosure() {
}
return sign * baseValue;
- },
- getString: function Lexer_getString() {
+ }
+ }, {
+ key: "getString",
+ value: function getString() {
var numParen = 1;
var done = false;
var strBuf = this.strBuf;
@@ -16549,8 +16824,10 @@ var Lexer = function LexerClosure() {
}
return strBuf.join('');
- },
- getName: function Lexer_getName() {
+ }
+ }, {
+ key: "getName",
+ value: function getName() {
var ch, previousCh;
var strBuf = this.strBuf;
strBuf.length = 0;
@@ -16573,7 +16850,7 @@ var Lexer = function LexerClosure() {
var x2 = toHexDigit(ch);
if (x2 === -1) {
- (0, _util.warn)('Lexer_getName: Illegal digit (' + String.fromCharCode(ch) + ') in hexadecimal number.');
+ (0, _util.warn)("Lexer_getName: Illegal digit (".concat(String.fromCharCode(ch), ") ") + 'in hexadecimal number.');
strBuf.push('#', String.fromCharCode(previousCh));
if (specialChars[ch]) {
@@ -16594,18 +16871,19 @@ var Lexer = function LexerClosure() {
}
if (strBuf.length > 127) {
- (0, _util.warn)('name token is longer than allowed by the spec: ' + strBuf.length);
+ (0, _util.warn)("Name token is longer than allowed by the spec: ".concat(strBuf.length));
}
return _primitives.Name.get(strBuf.join(''));
- },
- getHexString: function Lexer_getHexString() {
+ }
+ }, {
+ key: "getHexString",
+ value: function getHexString() {
var strBuf = this.strBuf;
strBuf.length = 0;
var ch = this.currentChar;
var isFirstHex = true;
- var firstDigit;
- var secondDigit;
+ var firstDigit, secondDigit;
while (true) {
if (ch < 0) {
@@ -16622,7 +16900,7 @@ var Lexer = function LexerClosure() {
firstDigit = toHexDigit(ch);
if (firstDigit === -1) {
- (0, _util.warn)('Ignoring invalid character "' + ch + '" in hex string');
+ (0, _util.warn)("Ignoring invalid character \"".concat(ch, "\" in hex string"));
ch = this.nextChar();
continue;
}
@@ -16630,7 +16908,7 @@ var Lexer = function LexerClosure() {
secondDigit = toHexDigit(ch);
if (secondDigit === -1) {
- (0, _util.warn)('Ignoring invalid character "' + ch + '" in hex string');
+ (0, _util.warn)("Ignoring invalid character \"".concat(ch, "\" in hex string"));
ch = this.nextChar();
continue;
}
@@ -16644,8 +16922,10 @@ var Lexer = function LexerClosure() {
}
return strBuf.join('');
- },
- getObj: function Lexer_getObj() {
+ }
+ }, {
+ key: "getObj",
+ value: function getObj() {
var comment = false;
var ch = this.currentChar;
@@ -16766,8 +17046,10 @@ var Lexer = function LexerClosure() {
}
return _primitives.Cmd.get(str);
- },
- skipToNextLine: function Lexer_skipToNextLine() {
+ }
+ }, {
+ key: "skipToNextLine",
+ value: function skipToNextLine() {
var ch = this.currentChar;
while (ch >= 0) {
@@ -16787,69 +17069,88 @@ var Lexer = function LexerClosure() {
ch = this.nextChar();
}
}
- };
+ }]);
+
return Lexer;
}();
exports.Lexer = Lexer;
-var Linearization = {
- create: function LinearizationCreate(stream) {
- function getInt(name, allowZeroValue) {
- var obj = linDict.get(name);
- if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {
- return obj;
+var Linearization =
+/*#__PURE__*/
+function () {
+ function Linearization() {
+ _classCallCheck(this, Linearization);
+ }
+
+ _createClass(Linearization, null, [{
+ key: "create",
+ value: function create(stream) {
+ function getInt(linDict, name) {
+ var allowZeroValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+ var obj = linDict.get(name);
+
+ if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {
+ return obj;
+ }
+
+ throw new Error("The \"".concat(name, "\" parameter in the linearization ") + 'dictionary is invalid.');
}
- throw new Error('The "' + name + '" parameter in the linearization ' + 'dictionary is invalid.');
- }
+ function getHints(linDict) {
+ var hints = linDict.get('H');
+ var hintsLength;
- function getHints() {
- var hints = linDict.get('H'),
- hintsLength,
- item;
+ if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {
+ for (var index = 0; index < hintsLength; index++) {
+ var hint = hints[index];
- if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {
- for (var index = 0; index < hintsLength; index++) {
- if (!(Number.isInteger(item = hints[index]) && item > 0)) {
- throw new Error('Hint (' + index + ') in the linearization dictionary is invalid.');
+ if (!(Number.isInteger(hint) && hint > 0)) {
+ throw new Error("Hint (".concat(index, ") in the linearization dictionary ") + 'is invalid.');
+ }
}
+
+ return hints;
}
- return hints;
+ throw new Error('Hint array in the linearization dictionary is invalid.');
}
- throw new Error('Hint array in the linearization dictionary is invalid.');
- }
+ var parser = new Parser({
+ lexer: new Lexer(stream),
+ xref: null
+ });
+ var obj1 = parser.getObj();
+ var obj2 = parser.getObj();
+ var obj3 = parser.getObj();
+ var linDict = parser.getObj();
+ var obj, length;
- var parser = new Parser(new Lexer(stream), false, null);
- var obj1 = parser.getObj();
- var obj2 = parser.getObj();
- var obj3 = parser.getObj();
- var linDict = parser.getObj();
- var obj, length;
+ if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, 'obj') && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get('Linearized')) && obj > 0)) {
+ return null;
+ } else if ((length = getInt(linDict, 'L')) !== stream.length) {
+ throw new Error('The "L" parameter in the linearization dictionary ' + 'does not equal the stream length.');
+ }
- if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, 'obj') && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get('Linearized')) && obj > 0)) {
- return null;
- } else if ((length = getInt('L')) !== stream.length) {
- throw new Error('The "L" parameter in the linearization dictionary ' + 'does not equal the stream length.');
+ return {
+ length: length,
+ hints: getHints(linDict),
+ objectNumberFirst: getInt(linDict, 'O'),
+ endFirst: getInt(linDict, 'E'),
+ numPages: getInt(linDict, 'N'),
+ mainXRefEntriesOffset: getInt(linDict, 'T'),
+ pageFirst: linDict.has('P') ? getInt(linDict, 'P', true) : 0
+ };
}
+ }]);
+
+ return Linearization;
+}();
- return {
- length: length,
- hints: getHints(),
- objectNumberFirst: getInt('O'),
- endFirst: getInt('E'),
- numPages: getInt('N'),
- mainXRefEntriesOffset: getInt('T'),
- pageFirst: linDict.has('P') ? getInt('P', true) : 0
- };
- }
-};
exports.Linearization = Linearization;
/***/ }),
-/* 157 */
+/* 190 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -16860,9 +17161,9 @@ Object.defineProperty(exports, "__esModule", {
});
exports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
@@ -16947,6 +17248,17 @@ var Stream = function StreamClosure() {
this.pos -= bytes.length;
return bytes;
},
+ getByteRange: function getByteRange(begin, end) {
+ if (begin < 0) {
+ begin = 0;
+ }
+
+ if (end > this.end) {
+ end = this.end;
+ }
+
+ return this.bytes.subarray(begin, end);
+ },
skip: function Stream_skip(n) {
if (!n) {
n = 1;
@@ -17105,6 +17417,9 @@ var DecodeStream = function DecodeStreamClosure() {
return new Stream(this.buffer, start, length, dict);
},
+ getByteRange: function getByteRange(begin, end) {
+ (0, _util.unreachable)('Should not call DecodeStream.getByteRange');
+ },
skip: function DecodeStream_skip(n) {
if (!n) {
n = 1;
@@ -18131,7 +18446,7 @@ var NullStream = function NullStreamClosure() {
exports.NullStream = NullStream;
/***/ }),
-/* 158 */
+/* 191 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -18142,11 +18457,11 @@ Object.defineProperty(exports, "__esModule", {
});
exports.CCITTFaxStream = void 0;
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
-var _ccitt = __w_pdfjs_require__(159);
+var _ccitt = __w_pdfjs_require__(192);
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
var CCITTFaxStream = function CCITTFaxStreamClosure() {
function CCITTFaxStream(str, maybeLength, params) {
@@ -18197,7 +18512,7 @@ var CCITTFaxStream = function CCITTFaxStreamClosure() {
exports.CCITTFaxStream = CCITTFaxStream;
/***/ }),
-/* 159 */
+/* 192 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -18208,7 +18523,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports.CCITTFaxDecoder = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
var CCITTFaxDecoder = function CCITTFaxDecoder() {
var ccittEOL = -2;
@@ -18895,7 +19210,7 @@ var CCITTFaxDecoder = function CCITTFaxDecoder() {
exports.CCITTFaxDecoder = CCITTFaxDecoder;
/***/ }),
-/* 160 */
+/* 193 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -18906,13 +19221,13 @@ Object.defineProperty(exports, "__esModule", {
});
exports.Jbig2Stream = void 0;
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
-var _jbig = __w_pdfjs_require__(161);
+var _jbig = __w_pdfjs_require__(194);
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
var Jbig2Stream = function Jbig2StreamClosure() {
function Jbig2Stream(stream, maybeLength, dict, params) {
@@ -18978,7 +19293,7 @@ var Jbig2Stream = function Jbig2StreamClosure() {
exports.Jbig2Stream = Jbig2Stream;
/***/ }),
-/* 161 */
+/* 194 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -18989,22 +19304,39 @@ Object.defineProperty(exports, "__esModule", {
});
exports.Jbig2Image = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _arithmetic_decoder = __w_pdfjs_require__(162);
+var _arithmetic_decoder = __w_pdfjs_require__(195);
-var _ccitt = __w_pdfjs_require__(159);
+var _ccitt = __w_pdfjs_require__(192);
+
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
+
+function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
+function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
+
+function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
+
+var Jbig2Error =
+/*#__PURE__*/
+function (_BaseException) {
+ _inherits(Jbig2Error, _BaseException);
-var Jbig2Error = function Jbig2ErrorClosure() {
function Jbig2Error(msg) {
- this.message = 'JBIG2 error: ' + msg;
+ _classCallCheck(this, Jbig2Error);
+
+ return _possibleConstructorReturn(this, _getPrototypeOf(Jbig2Error).call(this, "JBIG2 error: ".concat(msg)));
}
- Jbig2Error.prototype = new Error();
- Jbig2Error.prototype.name = 'Jbig2Error';
- Jbig2Error.constructor = Jbig2Error;
return Jbig2Error;
-}();
+}(_util.BaseException);
var Jbig2Image = function Jbig2ImageClosure() {
function ContextCache() {}
@@ -21177,7 +21509,7 @@ var Jbig2Image = function Jbig2ImageClosure() {
exports.Jbig2Image = Jbig2Image;
/***/ }),
-/* 162 */
+/* 195 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -21547,7 +21879,7 @@ function () {
exports.ArithmeticDecoder = ArithmeticDecoder;
/***/ }),
-/* 163 */
+/* 196 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -21558,13 +21890,13 @@ Object.defineProperty(exports, "__esModule", {
});
exports.JpegStream = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
-var _jpg = __w_pdfjs_require__(164);
+var _jpg = __w_pdfjs_require__(197);
var JpegStream = function JpegStreamClosure() {
function JpegStream(stream, maybeLength, dict, params) {
@@ -21659,7 +21991,7 @@ var JpegStream = function JpegStreamClosure() {
exports.JpegStream = JpegStream;
/***/ }),
-/* 164 */
+/* 197 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -21670,43 +22002,67 @@ Object.defineProperty(exports, "__esModule", {
});
exports.JpegImage = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-var JpegError = function JpegErrorClosure() {
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
+
+function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
+function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
+
+function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
+
+var JpegError =
+/*#__PURE__*/
+function (_BaseException) {
+ _inherits(JpegError, _BaseException);
+
function JpegError(msg) {
- this.message = 'JPEG error: ' + msg;
+ _classCallCheck(this, JpegError);
+
+ return _possibleConstructorReturn(this, _getPrototypeOf(JpegError).call(this, "JPEG error: ".concat(msg)));
}
- JpegError.prototype = new Error();
- JpegError.prototype.name = 'JpegError';
- JpegError.constructor = JpegError;
return JpegError;
-}();
+}(_util.BaseException);
+
+var DNLMarkerError =
+/*#__PURE__*/
+function (_BaseException2) {
+ _inherits(DNLMarkerError, _BaseException2);
-var DNLMarkerError = function DNLMarkerErrorClosure() {
function DNLMarkerError(message, scanLines) {
- this.message = message;
- this.scanLines = scanLines;
+ var _this;
+
+ _classCallCheck(this, DNLMarkerError);
+
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(DNLMarkerError).call(this, message));
+ _this.scanLines = scanLines;
+ return _this;
}
- DNLMarkerError.prototype = new Error();
- DNLMarkerError.prototype.name = 'DNLMarkerError';
- DNLMarkerError.constructor = DNLMarkerError;
return DNLMarkerError;
-}();
+}(_util.BaseException);
-var EOIMarkerError = function EOIMarkerErrorClosure() {
- function EOIMarkerError(message) {
- this.message = message;
+var EOIMarkerError =
+/*#__PURE__*/
+function (_BaseException3) {
+ _inherits(EOIMarkerError, _BaseException3);
+
+ function EOIMarkerError() {
+ _classCallCheck(this, EOIMarkerError);
+
+ return _possibleConstructorReturn(this, _getPrototypeOf(EOIMarkerError).apply(this, arguments));
}
- EOIMarkerError.prototype = new Error();
- EOIMarkerError.prototype.name = 'EOIMarkerError';
- EOIMarkerError.constructor = EOIMarkerError;
return EOIMarkerError;
-}();
+}(_util.BaseException);
var JpegImage = function JpegImageClosure() {
var dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);
@@ -22101,7 +22457,9 @@ var JpegImage = function JpegImageClosure() {
bitsCount = 0;
fileMarker = findNextFileMarker(data, offset);
- if (fileMarker && fileMarker.invalid) {
+ if (!fileMarker) {
+ break;
+ } else if (fileMarker.invalid) {
(0, _util.warn)('decodeScan - unexpected MCU data, current marker is: ' + fileMarker.invalid);
offset = fileMarker.offset;
}
@@ -22109,7 +22467,7 @@ var JpegImage = function JpegImageClosure() {
var marker = fileMarker && fileMarker.marker;
if (!marker || marker <= 0xFF00) {
- throw new JpegError('marker was not found');
+ throw new JpegError('decodeScan - a valid marker was not found.');
}
if (marker >= 0xFFD0 && marker <= 0xFFD7) {
@@ -22630,7 +22988,12 @@ var JpegImage = function JpegImageClosure() {
break;
}
- throw new JpegError('unknown marker ' + fileMarker.toString(16));
+ if (offset > data.length - 2) {
+ (0, _util.warn)('JpegImage.parse - reached the end of the image data ' + 'without finding an EOI marker (0xFFD9).');
+ break markerLoop;
+ }
+
+ throw new JpegError('JpegImage.parse - unknown marker: ' + fileMarker.toString(16));
}
fileMarker = readUint16();
@@ -22660,6 +23023,7 @@ var JpegImage = function JpegImageClosure() {
}
this.numComponents = this.components.length;
+ return undefined;
},
_getLinearizedBlockData: function _getLinearizedBlockData(width, height) {
var isSourcePDF = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
@@ -22848,7 +23212,7 @@ var JpegImage = function JpegImageClosure() {
exports.JpegImage = JpegImage;
/***/ }),
-/* 165 */
+/* 198 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -22859,11 +23223,11 @@ Object.defineProperty(exports, "__esModule", {
});
exports.JpxStream = void 0;
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
-var _jpx = __w_pdfjs_require__(166);
+var _jpx = __w_pdfjs_require__(199);
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
var JpxStream = function JpxStreamClosure() {
function JpxStream(stream, maybeLength, dict, params) {
@@ -22935,7 +23299,7 @@ var JpxStream = function JpxStreamClosure() {
exports.JpxStream = JpxStream;
/***/ }),
-/* 166 */
+/* 199 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -22946,20 +23310,37 @@ Object.defineProperty(exports, "__esModule", {
});
exports.JpxImage = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
+
+var _arithmetic_decoder = __w_pdfjs_require__(195);
-var _arithmetic_decoder = __w_pdfjs_require__(162);
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
+
+function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
+
+function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
+
+function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
+
+var JpxError =
+/*#__PURE__*/
+function (_BaseException) {
+ _inherits(JpxError, _BaseException);
-var JpxError = function JpxErrorClosure() {
function JpxError(msg) {
- this.message = 'JPX error: ' + msg;
+ _classCallCheck(this, JpxError);
+
+ return _possibleConstructorReturn(this, _getPrototypeOf(JpxError).call(this, "JPX error: ".concat(msg)));
}
- JpxError.prototype = new Error();
- JpxError.prototype.name = 'JpxError';
- JpxError.constructor = JpxError;
return JpxError;
-}();
+}(_util.BaseException);
var JpxImage = function JpxImageClosure() {
var SubbandsGainLog2 = {
@@ -25253,7 +25634,7 @@ var JpxImage = function JpxImageClosure() {
exports.JpxImage = JpxImage;
/***/ }),
-/* 167 */
+/* 200 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -25264,11 +25645,11 @@ Object.defineProperty(exports, "__esModule", {
});
exports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -26901,7 +27282,7 @@ var CipherTransformFactory = function CipherTransformFactoryClosure() {
exports.CipherTransformFactory = CipherTransformFactory;
/***/ }),
-/* 168 */
+/* 201 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -26912,9 +27293,9 @@ Object.defineProperty(exports, "__esModule", {
});
exports.ColorSpace = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -28111,7 +28492,7 @@ var LabCS = function LabCSClosure() {
}();
/***/ }),
-/* 169 */
+/* 202 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -28120,19 +28501,26 @@ var LabCS = function LabCSClosure() {
Object.defineProperty(exports, "__esModule", {
value: true
});
-exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0;
+exports.getQuadPoints = getQuadPoints;
+exports.MarkupAnnotation = exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0;
+
+var _util = __w_pdfjs_require__(5);
-var _util = __w_pdfjs_require__(6);
+var _obj = __w_pdfjs_require__(188);
-var _obj = __w_pdfjs_require__(154);
+var _primitives = __w_pdfjs_require__(183);
-var _primitives = __w_pdfjs_require__(155);
+var _colorspace = __w_pdfjs_require__(201);
-var _colorspace = __w_pdfjs_require__(168);
+var _core_utils = __w_pdfjs_require__(186);
-var _operator_list = __w_pdfjs_require__(170);
+var _operator_list = __w_pdfjs_require__(203);
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
+
+function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
+
+function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -28140,16 +28528,20 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) ===
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
-function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
-
-function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
+function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
+
+function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
+
+function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+
+function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -28174,16 +28566,15 @@ function () {
var dict = xref.fetchIfRef(ref);
if (!(0, _primitives.isDict)(dict)) {
- return;
+ return undefined;
}
- var id = (0, _primitives.isRef)(ref) ? ref.toString() : 'annot_' + idFactory.createObjId();
+ var id = (0, _primitives.isRef)(ref) ? ref.toString() : "annot_".concat(idFactory.createObjId());
var subtype = dict.get('Subtype');
subtype = (0, _primitives.isName)(subtype) ? subtype.name : null;
var parameters = {
xref: xref,
dict: dict,
- ref: (0, _primitives.isRef)(ref) ? ref : null,
subtype: subtype,
id: id,
pdfManager: pdfManager
@@ -28197,7 +28588,7 @@ function () {
return new TextAnnotation(parameters);
case 'Widget':
- var fieldType = (0, _util.getInheritableProperty)({
+ var fieldType = (0, _core_utils.getInheritableProperty)({
dict: dict,
key: 'FT'
});
@@ -28220,6 +28611,9 @@ function () {
case 'Popup':
return new PopupAnnotation(parameters);
+ case 'FreeText':
+ return new FreeTextAnnotation(parameters);
+
case 'Line':
return new LineAnnotation(parameters);
@@ -28235,6 +28629,9 @@ function () {
case 'Polygon':
return new PolygonAnnotation(parameters);
+ case 'Caret':
+ return new CaretAnnotation(parameters);
+
case 'Ink':
return new InkAnnotation(parameters);
@@ -28273,13 +28670,47 @@ function () {
exports.AnnotationFactory = AnnotationFactory;
-function getTransformMatrix(rect, bbox, matrix) {
- var bounds = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);
+function getQuadPoints(dict, rect) {
+ if (!dict.has('QuadPoints')) {
+ return null;
+ }
+
+ var quadPoints = dict.getArray('QuadPoints');
+
+ if (!Array.isArray(quadPoints) || quadPoints.length % 8 > 0) {
+ return null;
+ }
+
+ var quadPointsLists = [];
- var minX = bounds[0];
- var minY = bounds[1];
- var maxX = bounds[2];
- var maxY = bounds[3];
+ for (var i = 0, ii = quadPoints.length / 8; i < ii; i++) {
+ quadPointsLists.push([]);
+
+ for (var j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {
+ var x = quadPoints[j];
+ var y = quadPoints[j + 1];
+
+ if (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3]) {
+ return null;
+ }
+
+ quadPointsLists[i].push({
+ x: x,
+ y: y
+ });
+ }
+ }
+
+ return quadPointsLists;
+}
+
+function getTransformMatrix(rect, bbox, matrix) {
+ var _Util$getAxialAligned = _util.Util.getAxialAlignedBoundingBox(bbox, matrix),
+ _Util$getAxialAligned2 = _slicedToArray(_Util$getAxialAligned, 4),
+ minX = _Util$getAxialAligned2[0],
+ minY = _Util$getAxialAligned2[1],
+ maxX = _Util$getAxialAligned2[2],
+ maxY = _Util$getAxialAligned2[3];
if (minX === maxX || minY === maxY) {
return [1, 0, 0, 1, rect[0], rect[1]];
@@ -28297,6 +28728,8 @@ function () {
_classCallCheck(this, Annotation);
var dict = params.dict;
+ this.setContents(dict.get('Contents'));
+ this.setModificationDate(dict.get('M'));
this.setFlags(dict.get('F'));
this.setRectangle(dict.getArray('Rect'));
this.setColor(dict.getArray('C'));
@@ -28306,8 +28739,10 @@ function () {
annotationFlags: this.flags,
borderStyle: this.borderStyle,
color: this.color,
+ contents: this.contents,
hasAppearance: !!this.appearance,
id: params.id,
+ modificationDate: this.modificationDate,
rect: this.rectangle,
subtype: params.subtype
};
@@ -28329,6 +28764,16 @@ function () {
return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN);
}
}, {
+ key: "setContents",
+ value: function setContents(contents) {
+ this.contents = (0, _util.stringToPDFString)(contents || '');
+ }
+ }, {
+ key: "setModificationDate",
+ value: function setModificationDate(modificationDate) {
+ this.modificationDate = (0, _util.isString)(modificationDate) ? modificationDate : null;
+ }
+ }, {
key: "setFlags",
value: function setFlags(flags) {
this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;
@@ -28399,7 +28844,7 @@ function () {
var dictType = dict.get('Type');
if (!dictType || (0, _primitives.isName)(dictType, 'Border')) {
- this.borderStyle.setWidth(dict.get('W'));
+ this.borderStyle.setWidth(dict.get('W'), this.rectangle);
this.borderStyle.setStyle(dict.get('S'));
this.borderStyle.setDashArray(dict.getArray('D'));
}
@@ -28409,7 +28854,7 @@ function () {
if (Array.isArray(array) && array.length >= 3) {
this.borderStyle.setHorizontalCornerRadius(array[0]);
this.borderStyle.setVerticalCornerRadius(array[1]);
- this.borderStyle.setWidth(array[2]);
+ this.borderStyle.setWidth(array[2], this.rectangle);
if (array.length === 4) {
this.borderStyle.setDashArray(array[3]);
@@ -28449,22 +28894,11 @@ function () {
this.appearance = normalAppearanceState.get(as.name);
}
}, {
- key: "_preparePopup",
- value: function _preparePopup(dict) {
- if (!dict.has('C')) {
- this.data.color = null;
- }
-
- this.data.hasPopup = dict.has('Popup');
- this.data.title = (0, _util.stringToPDFString)(dict.get('T') || '');
- this.data.contents = (0, _util.stringToPDFString)(dict.get('Contents') || '');
- }
- }, {
key: "loadResources",
value: function loadResources(keys) {
return this.appearance.dict.getAsync('Resources').then(function (resources) {
if (!resources) {
- return;
+ return undefined;
}
var objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref);
@@ -28546,12 +28980,24 @@ function () {
_createClass(AnnotationBorderStyle, [{
key: "setWidth",
value: function setWidth(width) {
+ var rect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0, 0];
+
if ((0, _primitives.isName)(width)) {
this.width = 0;
return;
}
if (Number.isInteger(width)) {
+ if (width > 0) {
+ var maxWidth = (rect[2] - rect[0]) / 2;
+ var maxHeight = (rect[3] - rect[1]) / 2;
+
+ if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) {
+ (0, _util.warn)("AnnotationBorderStyle.setWidth - ignoring width: ".concat(width));
+ width = 1;
+ }
+ }
+
this.width = width;
}
}
@@ -28593,16 +29039,34 @@ function () {
if (Array.isArray(dashArray) && dashArray.length > 0) {
var isValid = true;
var allZeros = true;
+ var _iteratorNormalCompletion = true;
+ var _didIteratorError = false;
+ var _iteratorError = undefined;
- for (var i = 0, len = dashArray.length; i < len; i++) {
- var element = dashArray[i];
- var validNumber = +element >= 0;
+ try {
+ for (var _iterator = dashArray[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
+ var element = _step.value;
+ var validNumber = +element >= 0;
- if (!validNumber) {
- isValid = false;
- break;
- } else if (element > 0) {
- allZeros = false;
+ if (!validNumber) {
+ isValid = false;
+ break;
+ } else if (element > 0) {
+ allZeros = false;
+ }
+ }
+ } catch (err) {
+ _didIteratorError = true;
+ _iteratorError = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion && _iterator["return"] != null) {
+ _iterator["return"]();
+ }
+ } finally {
+ if (_didIteratorError) {
+ throw _iteratorError;
+ }
}
}
@@ -28636,41 +29100,122 @@ function () {
exports.AnnotationBorderStyle = AnnotationBorderStyle;
-var WidgetAnnotation =
+var MarkupAnnotation =
/*#__PURE__*/
function (_Annotation) {
- _inherits(WidgetAnnotation, _Annotation);
+ _inherits(MarkupAnnotation, _Annotation);
- function WidgetAnnotation(params) {
+ function MarkupAnnotation(parameters) {
var _this2;
+ _classCallCheck(this, MarkupAnnotation);
+
+ _this2 = _possibleConstructorReturn(this, _getPrototypeOf(MarkupAnnotation).call(this, parameters));
+ var dict = parameters.dict;
+
+ if (dict.has('IRT')) {
+ var rawIRT = dict.getRaw('IRT');
+ _this2.data.inReplyTo = (0, _primitives.isRef)(rawIRT) ? rawIRT.toString() : null;
+ var rt = dict.get('RT');
+ _this2.data.replyType = (0, _primitives.isName)(rt) ? rt.name : _util.AnnotationReplyType.REPLY;
+ }
+
+ if (_this2.data.replyType === _util.AnnotationReplyType.GROUP) {
+ var parent = dict.get('IRT');
+ _this2.data.title = (0, _util.stringToPDFString)(parent.get('T') || '');
+
+ _this2.setContents(parent.get('Contents'));
+
+ _this2.data.contents = _this2.contents;
+
+ if (!parent.has('CreationDate')) {
+ _this2.data.creationDate = null;
+ } else {
+ _this2.setCreationDate(parent.get('CreationDate'));
+
+ _this2.data.creationDate = _this2.creationDate;
+ }
+
+ if (!parent.has('M')) {
+ _this2.data.modificationDate = null;
+ } else {
+ _this2.setModificationDate(parent.get('M'));
+
+ _this2.data.modificationDate = _this2.modificationDate;
+ }
+
+ _this2.data.hasPopup = parent.has('Popup');
+
+ if (!parent.has('C')) {
+ _this2.data.color = null;
+ } else {
+ _this2.setColor(parent.getArray('C'));
+
+ _this2.data.color = _this2.color;
+ }
+ } else {
+ _this2.data.title = (0, _util.stringToPDFString)(dict.get('T') || '');
+
+ _this2.setCreationDate(dict.get('CreationDate'));
+
+ _this2.data.creationDate = _this2.creationDate;
+ _this2.data.hasPopup = dict.has('Popup');
+
+ if (!dict.has('C')) {
+ _this2.data.color = null;
+ }
+ }
+
+ return _this2;
+ }
+
+ _createClass(MarkupAnnotation, [{
+ key: "setCreationDate",
+ value: function setCreationDate(creationDate) {
+ this.creationDate = (0, _util.isString)(creationDate) ? creationDate : null;
+ }
+ }]);
+
+ return MarkupAnnotation;
+}(Annotation);
+
+exports.MarkupAnnotation = MarkupAnnotation;
+
+var WidgetAnnotation =
+/*#__PURE__*/
+function (_Annotation2) {
+ _inherits(WidgetAnnotation, _Annotation2);
+
+ function WidgetAnnotation(params) {
+ var _this3;
+
_classCallCheck(this, WidgetAnnotation);
- _this2 = _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotation).call(this, params));
+ _this3 = _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotation).call(this, params));
var dict = params.dict;
- var data = _this2.data;
+ var data = _this3.data;
data.annotationType = _util.AnnotationType.WIDGET;
- data.fieldName = _this2._constructFieldName(dict);
- data.fieldValue = (0, _util.getInheritableProperty)({
+ data.fieldName = _this3._constructFieldName(dict);
+ data.fieldValue = (0, _core_utils.getInheritableProperty)({
dict: dict,
key: 'V',
getArray: true
});
data.alternativeText = (0, _util.stringToPDFString)(dict.get('TU') || '');
- data.defaultAppearance = (0, _util.getInheritableProperty)({
+ data.defaultAppearance = (0, _core_utils.getInheritableProperty)({
dict: dict,
key: 'DA'
}) || '';
- var fieldType = (0, _util.getInheritableProperty)({
+ var fieldType = (0, _core_utils.getInheritableProperty)({
dict: dict,
key: 'FT'
});
data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;
- _this2.fieldResources = (0, _util.getInheritableProperty)({
+ _this3.fieldResources = (0, _core_utils.getInheritableProperty)({
dict: dict,
key: 'DR'
}) || _primitives.Dict.empty;
- data.fieldFlags = (0, _util.getInheritableProperty)({
+ data.fieldFlags = (0, _core_utils.getInheritableProperty)({
dict: dict,
key: 'Ff'
});
@@ -28679,15 +29224,15 @@ function (_Annotation) {
data.fieldFlags = 0;
}
- data.readOnly = _this2.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);
+ data.readOnly = _this3.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);
if (data.fieldType === 'Sig') {
data.fieldValue = null;
- _this2.setFlags(_util.AnnotationFlag.HIDDEN);
+ _this3.setFlags(_util.AnnotationFlag.HIDDEN);
}
- return _this2;
+ return _this3;
}
_createClass(WidgetAnnotation, [{
@@ -28749,14 +29294,14 @@ function (_WidgetAnnotation) {
_inherits(TextWidgetAnnotation, _WidgetAnnotation);
function TextWidgetAnnotation(params) {
- var _this3;
+ var _this4;
_classCallCheck(this, TextWidgetAnnotation);
- _this3 = _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotation).call(this, params));
+ _this4 = _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotation).call(this, params));
var dict = params.dict;
- _this3.data.fieldValue = (0, _util.stringToPDFString)(_this3.data.fieldValue || '');
- var alignment = (0, _util.getInheritableProperty)({
+ _this4.data.fieldValue = (0, _util.stringToPDFString)(_this4.data.fieldValue || '');
+ var alignment = (0, _core_utils.getInheritableProperty)({
dict: dict,
key: 'Q'
});
@@ -28765,8 +29310,8 @@ function (_WidgetAnnotation) {
alignment = null;
}
- _this3.data.textAlignment = alignment;
- var maximumLength = (0, _util.getInheritableProperty)({
+ _this4.data.textAlignment = alignment;
+ var maximumLength = (0, _core_utils.getInheritableProperty)({
dict: dict,
key: 'MaxLen'
});
@@ -28775,10 +29320,10 @@ function (_WidgetAnnotation) {
maximumLength = null;
}
- _this3.data.maxLen = maximumLength;
- _this3.data.multiLine = _this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);
- _this3.data.comb = _this3.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && _this3.data.maxLen !== null;
- return _this3;
+ _this4.data.maxLen = maximumLength;
+ _this4.data.multiLine = _this4.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);
+ _this4.data.comb = _this4.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && _this4.data.maxLen !== null;
+ return _this4;
}
_createClass(TextWidgetAnnotation, [{
@@ -28815,26 +29360,26 @@ function (_WidgetAnnotation2) {
_inherits(ButtonWidgetAnnotation, _WidgetAnnotation2);
function ButtonWidgetAnnotation(params) {
- var _this4;
+ var _this5;
_classCallCheck(this, ButtonWidgetAnnotation);
- _this4 = _possibleConstructorReturn(this, _getPrototypeOf(ButtonWidgetAnnotation).call(this, params));
- _this4.data.checkBox = !_this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);
- _this4.data.radioButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);
- _this4.data.pushButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);
-
- if (_this4.data.checkBox) {
- _this4._processCheckBox(params);
- } else if (_this4.data.radioButton) {
- _this4._processRadioButton(params);
- } else if (_this4.data.pushButton) {
- _this4._processPushButton(params);
+ _this5 = _possibleConstructorReturn(this, _getPrototypeOf(ButtonWidgetAnnotation).call(this, params));
+ _this5.data.checkBox = !_this5.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this5.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);
+ _this5.data.radioButton = _this5.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this5.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);
+ _this5.data.pushButton = _this5.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);
+
+ if (_this5.data.checkBox) {
+ _this5._processCheckBox(params);
+ } else if (_this5.data.radioButton) {
+ _this5._processRadioButton(params);
+ } else if (_this5.data.pushButton) {
+ _this5._processPushButton(params);
} else {
(0, _util.warn)('Invalid field flags for button widget annotation');
}
- return _this4;
+ return _this5;
}
_createClass(ButtonWidgetAnnotation, [{
@@ -28891,12 +29436,31 @@ function (_WidgetAnnotation2) {
return;
}
- var keys = normalAppearanceState.getKeys();
+ var _iteratorNormalCompletion2 = true;
+ var _didIteratorError2 = false;
+ var _iteratorError2 = undefined;
- for (var i = 0, ii = keys.length; i < ii; i++) {
- if (keys[i] !== 'Off') {
- this.data.buttonValue = keys[i];
- break;
+ try {
+ for (var _iterator2 = normalAppearanceState.getKeys()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
+ var key = _step2.value;
+
+ if (key !== 'Off') {
+ this.data.buttonValue = key;
+ break;
+ }
+ }
+ } catch (err) {
+ _didIteratorError2 = true;
+ _iteratorError2 = err;
+ } finally {
+ try {
+ if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
+ _iterator2["return"]();
+ }
+ } finally {
+ if (_didIteratorError2) {
+ throw _iteratorError2;
+ }
}
}
}
@@ -28925,13 +29489,13 @@ function (_WidgetAnnotation3) {
_inherits(ChoiceWidgetAnnotation, _WidgetAnnotation3);
function ChoiceWidgetAnnotation(params) {
- var _this5;
+ var _this6;
_classCallCheck(this, ChoiceWidgetAnnotation);
- _this5 = _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotation).call(this, params));
- _this5.data.options = [];
- var options = (0, _util.getInheritableProperty)({
+ _this6 = _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotation).call(this, params));
+ _this6.data.options = [];
+ var options = (0, _core_utils.getInheritableProperty)({
dict: params.dict,
key: 'Opt'
});
@@ -28942,20 +29506,20 @@ function (_WidgetAnnotation3) {
for (var i = 0, ii = options.length; i < ii; i++) {
var option = xref.fetchIfRef(options[i]);
var isOptionArray = Array.isArray(option);
- _this5.data.options[i] = {
+ _this6.data.options[i] = {
exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,
displayValue: (0, _util.stringToPDFString)(isOptionArray ? xref.fetchIfRef(option[1]) : option)
};
}
}
- if (!Array.isArray(_this5.data.fieldValue)) {
- _this5.data.fieldValue = [_this5.data.fieldValue];
+ if (!Array.isArray(_this6.data.fieldValue)) {
+ _this6.data.fieldValue = [_this6.data.fieldValue];
}
- _this5.data.combo = _this5.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);
- _this5.data.multiSelect = _this5.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);
- return _this5;
+ _this6.data.combo = _this6.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);
+ _this6.data.multiSelect = _this6.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);
+ return _this6;
}
return ChoiceWidgetAnnotation;
@@ -28963,33 +29527,40 @@ function (_WidgetAnnotation3) {
var TextAnnotation =
/*#__PURE__*/
-function (_Annotation2) {
- _inherits(TextAnnotation, _Annotation2);
+function (_MarkupAnnotation) {
+ _inherits(TextAnnotation, _MarkupAnnotation);
function TextAnnotation(parameters) {
- var _this6;
+ var _this7;
_classCallCheck(this, TextAnnotation);
var DEFAULT_ICON_SIZE = 22;
- _this6 = _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotation).call(this, parameters));
- _this6.data.annotationType = _util.AnnotationType.TEXT;
+ _this7 = _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotation).call(this, parameters));
+ var dict = parameters.dict;
+ _this7.data.annotationType = _util.AnnotationType.TEXT;
- if (_this6.data.hasAppearance) {
- _this6.data.name = 'NoIcon';
+ if (_this7.data.hasAppearance) {
+ _this7.data.name = 'NoIcon';
} else {
- _this6.data.rect[1] = _this6.data.rect[3] - DEFAULT_ICON_SIZE;
- _this6.data.rect[2] = _this6.data.rect[0] + DEFAULT_ICON_SIZE;
- _this6.data.name = parameters.dict.has('Name') ? parameters.dict.get('Name').name : 'Note';
+ _this7.data.rect[1] = _this7.data.rect[3] - DEFAULT_ICON_SIZE;
+ _this7.data.rect[2] = _this7.data.rect[0] + DEFAULT_ICON_SIZE;
+ _this7.data.name = dict.has('Name') ? dict.get('Name').name : 'Note';
}
- _this6._preparePopup(parameters.dict);
+ if (dict.has('State')) {
+ _this7.data.state = dict.get('State') || null;
+ _this7.data.stateModel = dict.get('StateModel') || null;
+ } else {
+ _this7.data.state = null;
+ _this7.data.stateModel = null;
+ }
- return _this6;
+ return _this7;
}
return TextAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var LinkAnnotation =
/*#__PURE__*/
@@ -28997,20 +29568,25 @@ function (_Annotation3) {
_inherits(LinkAnnotation, _Annotation3);
function LinkAnnotation(params) {
- var _this7;
+ var _this8;
_classCallCheck(this, LinkAnnotation);
- _this7 = _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotation).call(this, params));
- _this7.data.annotationType = _util.AnnotationType.LINK;
+ _this8 = _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotation).call(this, params));
+ _this8.data.annotationType = _util.AnnotationType.LINK;
+ var quadPoints = getQuadPoints(params.dict, _this8.rectangle);
+
+ if (quadPoints) {
+ _this8.data.quadPoints = quadPoints;
+ }
_obj.Catalog.parseDestDictionary({
destDict: params.dict,
- resultObj: _this7.data,
+ resultObj: _this8.data,
docBaseUrl: params.pdfManager.docBaseUrl
});
- return _this7;
+ return _this8;
}
return LinkAnnotation;
@@ -29022,143 +29598,161 @@ function (_Annotation4) {
_inherits(PopupAnnotation, _Annotation4);
function PopupAnnotation(parameters) {
- var _this8;
+ var _this9;
_classCallCheck(this, PopupAnnotation);
- _this8 = _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotation).call(this, parameters));
- _this8.data.annotationType = _util.AnnotationType.POPUP;
- var dict = parameters.dict;
- var parentItem = dict.get('Parent');
+ _this9 = _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotation).call(this, parameters));
+ _this9.data.annotationType = _util.AnnotationType.POPUP;
+ var parentItem = parameters.dict.get('Parent');
if (!parentItem) {
(0, _util.warn)('Popup annotation has a missing or invalid parent annotation.');
- return _possibleConstructorReturn(_this8);
+ return _possibleConstructorReturn(_this9);
}
var parentSubtype = parentItem.get('Subtype');
- _this8.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;
- _this8.data.parentId = dict.getRaw('Parent').toString();
- _this8.data.title = (0, _util.stringToPDFString)(parentItem.get('T') || '');
- _this8.data.contents = (0, _util.stringToPDFString)(parentItem.get('Contents') || '');
+ _this9.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;
+ var rawParent = parameters.dict.getRaw('Parent');
+ _this9.data.parentId = (0, _primitives.isRef)(rawParent) ? rawParent.toString() : null;
+ var rt = parentItem.get('RT');
+
+ if ((0, _primitives.isName)(rt, _util.AnnotationReplyType.GROUP)) {
+ parentItem = parentItem.get('IRT');
+ }
+
+ if (!parentItem.has('M')) {
+ _this9.data.modificationDate = null;
+ } else {
+ _this9.setModificationDate(parentItem.get('M'));
+
+ _this9.data.modificationDate = _this9.modificationDate;
+ }
if (!parentItem.has('C')) {
- _this8.data.color = null;
+ _this9.data.color = null;
} else {
- _this8.setColor(parentItem.getArray('C'));
+ _this9.setColor(parentItem.getArray('C'));
- _this8.data.color = _this8.color;
+ _this9.data.color = _this9.color;
}
- if (!_this8.viewable) {
+ if (!_this9.viewable) {
var parentFlags = parentItem.get('F');
- if (_this8._isViewable(parentFlags)) {
- _this8.setFlags(parentFlags);
+ if (_this9._isViewable(parentFlags)) {
+ _this9.setFlags(parentFlags);
}
}
- return _this8;
+ _this9.data.title = (0, _util.stringToPDFString)(parentItem.get('T') || '');
+ _this9.data.contents = (0, _util.stringToPDFString)(parentItem.get('Contents') || '');
+ return _this9;
}
return PopupAnnotation;
}(Annotation);
+var FreeTextAnnotation =
+/*#__PURE__*/
+function (_MarkupAnnotation2) {
+ _inherits(FreeTextAnnotation, _MarkupAnnotation2);
+
+ function FreeTextAnnotation(parameters) {
+ var _this10;
+
+ _classCallCheck(this, FreeTextAnnotation);
+
+ _this10 = _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotation).call(this, parameters));
+ _this10.data.annotationType = _util.AnnotationType.FREETEXT;
+ return _this10;
+ }
+
+ return FreeTextAnnotation;
+}(MarkupAnnotation);
+
var LineAnnotation =
/*#__PURE__*/
-function (_Annotation5) {
- _inherits(LineAnnotation, _Annotation5);
+function (_MarkupAnnotation3) {
+ _inherits(LineAnnotation, _MarkupAnnotation3);
function LineAnnotation(parameters) {
- var _this9;
+ var _this11;
_classCallCheck(this, LineAnnotation);
- _this9 = _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotation).call(this, parameters));
- _this9.data.annotationType = _util.AnnotationType.LINE;
- var dict = parameters.dict;
- _this9.data.lineCoordinates = _util.Util.normalizeRect(dict.getArray('L'));
-
- _this9._preparePopup(dict);
-
- return _this9;
+ _this11 = _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotation).call(this, parameters));
+ _this11.data.annotationType = _util.AnnotationType.LINE;
+ _this11.data.lineCoordinates = _util.Util.normalizeRect(parameters.dict.getArray('L'));
+ return _this11;
}
return LineAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var SquareAnnotation =
/*#__PURE__*/
-function (_Annotation6) {
- _inherits(SquareAnnotation, _Annotation6);
+function (_MarkupAnnotation4) {
+ _inherits(SquareAnnotation, _MarkupAnnotation4);
function SquareAnnotation(parameters) {
- var _this10;
+ var _this12;
_classCallCheck(this, SquareAnnotation);
- _this10 = _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotation).call(this, parameters));
- _this10.data.annotationType = _util.AnnotationType.SQUARE;
-
- _this10._preparePopup(parameters.dict);
-
- return _this10;
+ _this12 = _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotation).call(this, parameters));
+ _this12.data.annotationType = _util.AnnotationType.SQUARE;
+ return _this12;
}
return SquareAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var CircleAnnotation =
/*#__PURE__*/
-function (_Annotation7) {
- _inherits(CircleAnnotation, _Annotation7);
+function (_MarkupAnnotation5) {
+ _inherits(CircleAnnotation, _MarkupAnnotation5);
function CircleAnnotation(parameters) {
- var _this11;
+ var _this13;
_classCallCheck(this, CircleAnnotation);
- _this11 = _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotation).call(this, parameters));
- _this11.data.annotationType = _util.AnnotationType.CIRCLE;
-
- _this11._preparePopup(parameters.dict);
-
- return _this11;
+ _this13 = _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotation).call(this, parameters));
+ _this13.data.annotationType = _util.AnnotationType.CIRCLE;
+ return _this13;
}
return CircleAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var PolylineAnnotation =
/*#__PURE__*/
-function (_Annotation8) {
- _inherits(PolylineAnnotation, _Annotation8);
+function (_MarkupAnnotation6) {
+ _inherits(PolylineAnnotation, _MarkupAnnotation6);
function PolylineAnnotation(parameters) {
- var _this12;
+ var _this14;
_classCallCheck(this, PolylineAnnotation);
- _this12 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotation).call(this, parameters));
- _this12.data.annotationType = _util.AnnotationType.POLYLINE;
- var dict = parameters.dict;
- var rawVertices = dict.getArray('Vertices');
- _this12.data.vertices = [];
+ _this14 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotation).call(this, parameters));
+ _this14.data.annotationType = _util.AnnotationType.POLYLINE;
+ var rawVertices = parameters.dict.getArray('Vertices');
+ _this14.data.vertices = [];
for (var i = 0, ii = rawVertices.length; i < ii; i += 2) {
- _this12.data.vertices.push({
+ _this14.data.vertices.push({
x: rawVertices[i],
y: rawVertices[i + 1]
});
}
- _this12._preparePopup(dict);
-
- return _this12;
+ return _this14;
}
return PolylineAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var PolygonAnnotation =
/*#__PURE__*/
@@ -29166,184 +29760,205 @@ function (_PolylineAnnotation) {
_inherits(PolygonAnnotation, _PolylineAnnotation);
function PolygonAnnotation(parameters) {
- var _this13;
+ var _this15;
_classCallCheck(this, PolygonAnnotation);
- _this13 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotation).call(this, parameters));
- _this13.data.annotationType = _util.AnnotationType.POLYGON;
- return _this13;
+ _this15 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotation).call(this, parameters));
+ _this15.data.annotationType = _util.AnnotationType.POLYGON;
+ return _this15;
}
return PolygonAnnotation;
}(PolylineAnnotation);
+var CaretAnnotation =
+/*#__PURE__*/
+function (_MarkupAnnotation7) {
+ _inherits(CaretAnnotation, _MarkupAnnotation7);
+
+ function CaretAnnotation(parameters) {
+ var _this16;
+
+ _classCallCheck(this, CaretAnnotation);
+
+ _this16 = _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotation).call(this, parameters));
+ _this16.data.annotationType = _util.AnnotationType.CARET;
+ return _this16;
+ }
+
+ return CaretAnnotation;
+}(MarkupAnnotation);
+
var InkAnnotation =
/*#__PURE__*/
-function (_Annotation9) {
- _inherits(InkAnnotation, _Annotation9);
+function (_MarkupAnnotation8) {
+ _inherits(InkAnnotation, _MarkupAnnotation8);
function InkAnnotation(parameters) {
- var _this14;
+ var _this17;
_classCallCheck(this, InkAnnotation);
- _this14 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotation).call(this, parameters));
- _this14.data.annotationType = _util.AnnotationType.INK;
- var dict = parameters.dict;
+ _this17 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotation).call(this, parameters));
+ _this17.data.annotationType = _util.AnnotationType.INK;
var xref = parameters.xref;
- var originalInkLists = dict.getArray('InkList');
- _this14.data.inkLists = [];
+ var originalInkLists = parameters.dict.getArray('InkList');
+ _this17.data.inkLists = [];
for (var i = 0, ii = originalInkLists.length; i < ii; ++i) {
- _this14.data.inkLists.push([]);
+ _this17.data.inkLists.push([]);
for (var j = 0, jj = originalInkLists[i].length; j < jj; j += 2) {
- _this14.data.inkLists[i].push({
+ _this17.data.inkLists[i].push({
x: xref.fetchIfRef(originalInkLists[i][j]),
y: xref.fetchIfRef(originalInkLists[i][j + 1])
});
}
}
- _this14._preparePopup(dict);
-
- return _this14;
+ return _this17;
}
return InkAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var HighlightAnnotation =
/*#__PURE__*/
-function (_Annotation10) {
- _inherits(HighlightAnnotation, _Annotation10);
+function (_MarkupAnnotation9) {
+ _inherits(HighlightAnnotation, _MarkupAnnotation9);
function HighlightAnnotation(parameters) {
- var _this15;
+ var _this18;
_classCallCheck(this, HighlightAnnotation);
- _this15 = _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotation).call(this, parameters));
- _this15.data.annotationType = _util.AnnotationType.HIGHLIGHT;
+ _this18 = _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotation).call(this, parameters));
+ _this18.data.annotationType = _util.AnnotationType.HIGHLIGHT;
+ var quadPoints = getQuadPoints(parameters.dict, _this18.rectangle);
- _this15._preparePopup(parameters.dict);
+ if (quadPoints) {
+ _this18.data.quadPoints = quadPoints;
+ }
- return _this15;
+ return _this18;
}
return HighlightAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var UnderlineAnnotation =
/*#__PURE__*/
-function (_Annotation11) {
- _inherits(UnderlineAnnotation, _Annotation11);
+function (_MarkupAnnotation10) {
+ _inherits(UnderlineAnnotation, _MarkupAnnotation10);
function UnderlineAnnotation(parameters) {
- var _this16;
+ var _this19;
_classCallCheck(this, UnderlineAnnotation);
- _this16 = _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotation).call(this, parameters));
- _this16.data.annotationType = _util.AnnotationType.UNDERLINE;
+ _this19 = _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotation).call(this, parameters));
+ _this19.data.annotationType = _util.AnnotationType.UNDERLINE;
+ var quadPoints = getQuadPoints(parameters.dict, _this19.rectangle);
- _this16._preparePopup(parameters.dict);
+ if (quadPoints) {
+ _this19.data.quadPoints = quadPoints;
+ }
- return _this16;
+ return _this19;
}
return UnderlineAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var SquigglyAnnotation =
/*#__PURE__*/
-function (_Annotation12) {
- _inherits(SquigglyAnnotation, _Annotation12);
+function (_MarkupAnnotation11) {
+ _inherits(SquigglyAnnotation, _MarkupAnnotation11);
function SquigglyAnnotation(parameters) {
- var _this17;
+ var _this20;
_classCallCheck(this, SquigglyAnnotation);
- _this17 = _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotation).call(this, parameters));
- _this17.data.annotationType = _util.AnnotationType.SQUIGGLY;
+ _this20 = _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotation).call(this, parameters));
+ _this20.data.annotationType = _util.AnnotationType.SQUIGGLY;
+ var quadPoints = getQuadPoints(parameters.dict, _this20.rectangle);
- _this17._preparePopup(parameters.dict);
+ if (quadPoints) {
+ _this20.data.quadPoints = quadPoints;
+ }
- return _this17;
+ return _this20;
}
return SquigglyAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var StrikeOutAnnotation =
/*#__PURE__*/
-function (_Annotation13) {
- _inherits(StrikeOutAnnotation, _Annotation13);
+function (_MarkupAnnotation12) {
+ _inherits(StrikeOutAnnotation, _MarkupAnnotation12);
function StrikeOutAnnotation(parameters) {
- var _this18;
+ var _this21;
_classCallCheck(this, StrikeOutAnnotation);
- _this18 = _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotation).call(this, parameters));
- _this18.data.annotationType = _util.AnnotationType.STRIKEOUT;
+ _this21 = _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotation).call(this, parameters));
+ _this21.data.annotationType = _util.AnnotationType.STRIKEOUT;
+ var quadPoints = getQuadPoints(parameters.dict, _this21.rectangle);
- _this18._preparePopup(parameters.dict);
+ if (quadPoints) {
+ _this21.data.quadPoints = quadPoints;
+ }
- return _this18;
+ return _this21;
}
return StrikeOutAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var StampAnnotation =
/*#__PURE__*/
-function (_Annotation14) {
- _inherits(StampAnnotation, _Annotation14);
+function (_MarkupAnnotation13) {
+ _inherits(StampAnnotation, _MarkupAnnotation13);
function StampAnnotation(parameters) {
- var _this19;
+ var _this22;
_classCallCheck(this, StampAnnotation);
- _this19 = _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotation).call(this, parameters));
- _this19.data.annotationType = _util.AnnotationType.STAMP;
-
- _this19._preparePopup(parameters.dict);
-
- return _this19;
+ _this22 = _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotation).call(this, parameters));
+ _this22.data.annotationType = _util.AnnotationType.STAMP;
+ return _this22;
}
return StampAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
var FileAttachmentAnnotation =
/*#__PURE__*/
-function (_Annotation15) {
- _inherits(FileAttachmentAnnotation, _Annotation15);
+function (_MarkupAnnotation14) {
+ _inherits(FileAttachmentAnnotation, _MarkupAnnotation14);
function FileAttachmentAnnotation(parameters) {
- var _this20;
+ var _this23;
_classCallCheck(this, FileAttachmentAnnotation);
- _this20 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotation).call(this, parameters));
+ _this23 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotation).call(this, parameters));
var file = new _obj.FileSpec(parameters.dict.get('FS'), parameters.xref);
- _this20.data.annotationType = _util.AnnotationType.FILEATTACHMENT;
- _this20.data.file = file.serializable;
-
- _this20._preparePopup(parameters.dict);
-
- return _this20;
+ _this23.data.annotationType = _util.AnnotationType.FILEATTACHMENT;
+ _this23.data.file = file.serializable;
+ return _this23;
}
return FileAttachmentAnnotation;
-}(Annotation);
+}(MarkupAnnotation);
/***/ }),
-/* 170 */
+/* 203 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -29354,7 +29969,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports.OperatorList = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
var QueueOptimizer = function QueueOptimizerClosure() {
function addState(parentState, pattern, checkFn, iterateFn, processFn) {
@@ -29409,6 +30024,8 @@ var QueueOptimizer = function QueueOptimizerClosure() {
case 3:
return fnArray[i] === _util.OPS.restore;
}
+
+ throw new Error("iterateInlineImageGroup - invalid pos: ".concat(pos));
}, function foundInlineImageGroup(context, i) {
var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;
var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;
@@ -29515,6 +30132,8 @@ var QueueOptimizer = function QueueOptimizerClosure() {
case 3:
return fnArray[i] === _util.OPS.restore;
}
+
+ throw new Error("iterateImageMaskGroup - invalid pos: ".concat(pos));
}, function foundImageMaskGroup(context, i) {
var MIN_IMAGES_IN_MASKS_BLOCK = 10;
var MAX_IMAGES_IN_MASKS_BLOCK = 100;
@@ -29597,7 +30216,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
var argsArray = context.argsArray;
var iFirstTransform = context.iCurr - 2;
return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;
- }, function (context, i) {
+ }, function iterateImageGroup(context, i) {
var fnArray = context.fnArray,
argsArray = context.argsArray;
var iFirstSave = context.iCurr - 3;
@@ -29639,6 +30258,8 @@ var QueueOptimizer = function QueueOptimizerClosure() {
case 3:
return fnArray[i] === _util.OPS.restore;
}
+
+ throw new Error("iterateImageGroup - invalid pos: ".concat(pos));
}, function (context, i) {
var MIN_IMAGES_IN_BLOCK = 3;
var MAX_IMAGES_IN_BLOCK = 1000;
@@ -29671,7 +30292,7 @@ var QueueOptimizer = function QueueOptimizerClosure() {
argsArray.splice(iFirstSave, count * 4, args);
return iFirstSave + 1;
});
- addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function (context, i) {
+ addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function iterateShowTextGroup(context, i) {
var fnArray = context.fnArray,
argsArray = context.argsArray;
var iFirstSave = context.iCurr - 4;
@@ -29705,6 +30326,8 @@ var QueueOptimizer = function QueueOptimizerClosure() {
case 4:
return fnArray[i] === _util.OPS.endText;
}
+
+ throw new Error("iterateShowTextGroup - invalid pos: ".concat(pos));
}, function (context, i) {
var MIN_CHARS_IN_BLOCK = 3;
var MAX_CHARS_IN_BLOCK = 1000;
@@ -29846,7 +30469,8 @@ var NullOptimizer = function NullOptimizerClosure() {
this.queue.fnArray.push(fn);
this.queue.argsArray.push(args);
},
- flush: function flush() {}
+ flush: function flush() {},
+ reset: function reset() {}
};
return NullOptimizer;
}();
@@ -29855,36 +30479,12 @@ var OperatorList = function OperatorListClosure() {
var CHUNK_SIZE = 1000;
var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;
- function getTransfers(queue) {
- var transfers = [];
- var fnArray = queue.fnArray,
- argsArray = queue.argsArray;
-
- for (var i = 0, ii = queue.length; i < ii; i++) {
- switch (fnArray[i]) {
- case _util.OPS.paintInlineImageXObject:
- case _util.OPS.paintInlineImageXObjectGroup:
- case _util.OPS.paintImageMaskXObject:
- var arg = argsArray[i][0];
- ;
-
- if (!arg.cached) {
- transfers.push(arg.data.buffer);
- }
-
- break;
- }
- }
-
- return transfers;
- }
-
- function OperatorList(intent, messageHandler, pageIndex) {
- this.messageHandler = messageHandler;
+ function OperatorList(intent, streamSink, pageIndex) {
+ this._streamSink = streamSink;
this.fnArray = [];
this.argsArray = [];
- if (messageHandler && this.intent !== 'oplist') {
+ if (streamSink && intent !== 'oplist') {
this.optimizer = new QueueOptimizer(this);
} else {
this.optimizer = new NullOptimizer(this);
@@ -29895,6 +30495,7 @@ var OperatorList = function OperatorListClosure() {
this.pageIndex = pageIndex;
this.intent = intent;
this.weight = 0;
+ this._resolved = streamSink ? null : Promise.resolve();
}
OperatorList.prototype = {
@@ -29902,6 +30503,10 @@ var OperatorList = function OperatorListClosure() {
return this.argsArray.length;
},
+ get ready() {
+ return this._resolved || this._streamSink.ready;
+ },
+
get totalLength() {
return this._totalLength + this.length;
},
@@ -29910,7 +30515,7 @@ var OperatorList = function OperatorListClosure() {
this.optimizer.push(fn, args);
this.weight++;
- if (this.messageHandler) {
+ if (this._streamSink) {
if (this.weight >= CHUNK_SIZE) {
this.flush();
} else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {
@@ -29945,21 +30550,45 @@ var OperatorList = function OperatorListClosure() {
length: this.length
};
},
- flush: function flush(lastChunk) {
+
+ get _transfers() {
+ var transfers = [];
+ var fnArray = this.fnArray,
+ argsArray = this.argsArray,
+ length = this.length;
+
+ for (var i = 0; i < length; i++) {
+ switch (fnArray[i]) {
+ case _util.OPS.paintInlineImageXObject:
+ case _util.OPS.paintInlineImageXObjectGroup:
+ case _util.OPS.paintImageMaskXObject:
+ var arg = argsArray[i][0];
+ ;
+
+ if (!arg.cached) {
+ transfers.push(arg.data.buffer);
+ }
+
+ break;
+ }
+ }
+
+ return transfers;
+ },
+
+ flush: function flush() {
+ var lastChunk = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
this.optimizer.flush();
- var transfers = getTransfers(this);
var length = this.length;
this._totalLength += length;
- this.messageHandler.send('RenderPageChunk', {
- operatorList: {
- fnArray: this.fnArray,
- argsArray: this.argsArray,
- lastChunk: lastChunk,
- length: length
- },
- pageIndex: this.pageIndex,
- intent: this.intent
- }, transfers);
+
+ this._streamSink.enqueue({
+ fnArray: this.fnArray,
+ argsArray: this.argsArray,
+ lastChunk: lastChunk,
+ length: length
+ }, 1, this._transfers);
+
this.dependencies = Object.create(null);
this.fnArray.length = 0;
this.argsArray.length = 0;
@@ -29973,7 +30602,7 @@ var OperatorList = function OperatorListClosure() {
exports.OperatorList = OperatorList;
/***/ }),
-/* 171 */
+/* 204 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -29986,45 +30615,49 @@ exports.PartialEvaluator = void 0;
var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _cmap = __w_pdfjs_require__(172);
+var _cmap = __w_pdfjs_require__(205);
-var _stream = __w_pdfjs_require__(157);
+var _primitives = __w_pdfjs_require__(183);
-var _primitives = __w_pdfjs_require__(155);
+var _fonts = __w_pdfjs_require__(206);
-var _fonts = __w_pdfjs_require__(173);
+var _encodings = __w_pdfjs_require__(209);
-var _encodings = __w_pdfjs_require__(176);
+var _unicode = __w_pdfjs_require__(212);
-var _unicode = __w_pdfjs_require__(179);
+var _standard_fonts = __w_pdfjs_require__(211);
-var _standard_fonts = __w_pdfjs_require__(178);
+var _pattern = __w_pdfjs_require__(215);
-var _pattern = __w_pdfjs_require__(182);
+var _parser = __w_pdfjs_require__(189);
-var _parser = __w_pdfjs_require__(156);
+var _bidi = __w_pdfjs_require__(216);
-var _bidi = __w_pdfjs_require__(183);
+var _colorspace = __w_pdfjs_require__(201);
-var _colorspace = __w_pdfjs_require__(168);
+var _stream = __w_pdfjs_require__(190);
-var _glyphlist = __w_pdfjs_require__(177);
+var _glyphlist = __w_pdfjs_require__(210);
-var _metrics = __w_pdfjs_require__(184);
+var _core_utils = __w_pdfjs_require__(186);
-var _function = __w_pdfjs_require__(185);
+var _metrics = __w_pdfjs_require__(217);
-var _jpeg_stream = __w_pdfjs_require__(163);
+var _function = __w_pdfjs_require__(218);
-var _murmurhash = __w_pdfjs_require__(187);
+var _jpeg_stream = __w_pdfjs_require__(196);
-var _operator_list = __w_pdfjs_require__(170);
+var _murmurhash = __w_pdfjs_require__(220);
-var _image = __w_pdfjs_require__(188);
+var _image_utils = __w_pdfjs_require__(221);
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _operator_list = __w_pdfjs_require__(203);
+
+var _image = __w_pdfjs_require__(222);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
@@ -30040,77 +30673,19 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
isEvalSupported: true
};
- function NativeImageDecoder(_ref) {
+ function PartialEvaluator(_ref) {
+ var _this = this;
+
var xref = _ref.xref,
- resources = _ref.resources,
handler = _ref.handler,
- _ref$forceDataSchema = _ref.forceDataSchema,
- forceDataSchema = _ref$forceDataSchema === void 0 ? false : _ref$forceDataSchema,
+ pageIndex = _ref.pageIndex,
+ idFactory = _ref.idFactory,
+ fontCache = _ref.fontCache,
+ builtInCMapCache = _ref.builtInCMapCache,
+ _ref$options = _ref.options,
+ options = _ref$options === void 0 ? null : _ref$options,
pdfFunctionFactory = _ref.pdfFunctionFactory;
this.xref = xref;
- this.resources = resources;
- this.handler = handler;
- this.forceDataSchema = forceDataSchema;
- this.pdfFunctionFactory = pdfFunctionFactory;
- }
-
- NativeImageDecoder.prototype = {
- canDecode: function canDecode(image) {
- return image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources, this.pdfFunctionFactory);
- },
- decode: function decode(image) {
- var dict = image.dict;
- var colorSpace = dict.get('ColorSpace', 'CS');
- colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources, this.pdfFunctionFactory);
- return this.handler.sendWithPromise('JpegDecode', [image.getIR(this.forceDataSchema), colorSpace.numComps]).then(function (_ref2) {
- var data = _ref2.data,
- width = _ref2.width,
- height = _ref2.height;
- return new _stream.Stream(data, 0, data.length, image.dict);
- });
- }
- };
-
- NativeImageDecoder.isSupported = function (image, xref, res, pdfFunctionFactory) {
- var dict = image.dict;
-
- if (dict.has('DecodeParms') || dict.has('DP')) {
- return false;
- }
-
- var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);
-
- return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D'));
- };
-
- NativeImageDecoder.isDecodable = function (image, xref, res, pdfFunctionFactory) {
- var dict = image.dict;
-
- if (dict.has('DecodeParms') || dict.has('DP')) {
- return false;
- }
-
- var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);
-
- var bpc = dict.get('BitsPerComponent', 'BPC') || 1;
- return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D'), bpc);
- };
-
- function PartialEvaluator(_ref3) {
- var _this = this;
-
- var pdfManager = _ref3.pdfManager,
- xref = _ref3.xref,
- handler = _ref3.handler,
- pageIndex = _ref3.pageIndex,
- idFactory = _ref3.idFactory,
- fontCache = _ref3.fontCache,
- builtInCMapCache = _ref3.builtInCMapCache,
- _ref3$options = _ref3.options,
- options = _ref3$options === void 0 ? null : _ref3$options,
- pdfFunctionFactory = _ref3.pdfFunctionFactory;
- this.pdfManager = pdfManager;
- this.xref = xref;
this.handler = handler;
this.pageIndex = pageIndex;
this.idFactory = idFactory;
@@ -30118,15 +30693,16 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
this.builtInCMapCache = builtInCMapCache;
this.options = options || DefaultPartialEvaluatorOptions;
this.pdfFunctionFactory = pdfFunctionFactory;
+ this.parsingType3Font = false;
this.fetchBuiltInCMap =
/*#__PURE__*/
function () {
- var _ref4 = _asyncToGenerator(
+ var _ref2 = _asyncToGenerator(
/*#__PURE__*/
- _regenerator.default.mark(function _callee(name) {
- var data;
- return _regenerator.default.wrap(function _callee$(_context) {
+ _regenerator["default"].mark(function _callee(name) {
+ var readableStream, reader, data;
+ return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
@@ -30138,12 +30714,30 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return _context.abrupt("return", _this.builtInCMapCache.get(name));
case 2:
- _context.next = 4;
- return _this.handler.sendWithPromise('FetchBuiltInCMap', {
+ readableStream = _this.handler.sendWithStream('FetchBuiltInCMap', {
name: name
});
+ reader = readableStream.getReader();
+ _context.next = 6;
+ return new Promise(function (resolve, reject) {
+ function pump() {
+ reader.read().then(function (_ref3) {
+ var value = _ref3.value,
+ done = _ref3.done;
+
+ if (done) {
+ return;
+ }
+
+ resolve(value);
+ pump();
+ }, reject);
+ }
- case 4:
+ pump();
+ });
+
+ case 6:
data = _context.sent;
if (data.compressionType !== _util.CMapCompressionType.NONE) {
@@ -30152,16 +30746,16 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return _context.abrupt("return", data);
- case 7:
+ case 9:
case "end":
return _context.stop();
}
}
- }, _callee, this);
+ }, _callee);
}));
return function (_x) {
- return _ref4.apply(this, arguments);
+ return _ref2.apply(this, arguments);
};
}();
}
@@ -30366,7 +30960,13 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
groupOptions.knockout = group.get('K') || false;
if (group.has('CS')) {
- colorSpace = _colorspace.ColorSpace.parse(group.get('CS'), this.xref, resources, this.pdfFunctionFactory);
+ colorSpace = group.get('CS');
+
+ if (colorSpace) {
+ colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, resources, this.pdfFunctionFactory);
+ } else {
+ (0, _util.warn)('buildFormXObject - invalid/non-existent Group /CS entry: ' + group.getRaw('CS'));
+ }
}
}
@@ -30393,154 +30993,213 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}
});
},
- buildPaintImageXObject: function buildPaintImageXObject(_ref5) {
- var _this2 = this;
+ buildPaintImageXObject: function () {
+ var _buildPaintImageXObject = _asyncToGenerator(
+ /*#__PURE__*/
+ _regenerator["default"].mark(function _callee2(_ref4) {
+ var _this2 = this;
- var resources = _ref5.resources,
- image = _ref5.image,
- _ref5$isInline = _ref5.isInline,
- isInline = _ref5$isInline === void 0 ? false : _ref5$isInline,
- operatorList = _ref5.operatorList,
- cacheKey = _ref5.cacheKey,
- imageCache = _ref5.imageCache,
- _ref5$forceDisableNat = _ref5.forceDisableNativeImageDecoder,
- forceDisableNativeImageDecoder = _ref5$forceDisableNat === void 0 ? false : _ref5$forceDisableNat;
- var dict = image.dict;
- var w = dict.get('Width', 'W');
- var h = dict.get('Height', 'H');
+ var resources, image, _ref4$isInline, isInline, operatorList, cacheKey, imageCache, _ref4$forceDisableNat, forceDisableNativeImageDecoder, dict, w, h, maxImageSize, imageMask, imgData, args, width, height, bitStrideLength, imgArray, decode, softMask, mask, SMALL_IMAGE_DIMENSIONS, imageObj, nativeImageDecoderSupport, objId, nativeImageDecoder, imgPromise;
- if (!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) {
- (0, _util.warn)('Image dimensions are missing, or not numbers.');
- return Promise.resolve();
- }
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
+ while (1) {
+ switch (_context2.prev = _context2.next) {
+ case 0:
+ resources = _ref4.resources, image = _ref4.image, _ref4$isInline = _ref4.isInline, isInline = _ref4$isInline === void 0 ? false : _ref4$isInline, operatorList = _ref4.operatorList, cacheKey = _ref4.cacheKey, imageCache = _ref4.imageCache, _ref4$forceDisableNat = _ref4.forceDisableNativeImageDecoder, forceDisableNativeImageDecoder = _ref4$forceDisableNat === void 0 ? false : _ref4$forceDisableNat;
+ dict = image.dict;
+ w = dict.get('Width', 'W');
+ h = dict.get('Height', 'H');
- var maxImageSize = this.options.maxImageSize;
+ if (!(!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h)))) {
+ _context2.next = 7;
+ break;
+ }
- if (maxImageSize !== -1 && w * h > maxImageSize) {
- (0, _util.warn)('Image exceeded maximum allowed size and was removed.');
- return Promise.resolve();
- }
+ (0, _util.warn)('Image dimensions are missing, or not numbers.');
+ return _context2.abrupt("return", undefined);
- var imageMask = dict.get('ImageMask', 'IM') || false;
- var imgData, args;
+ case 7:
+ maxImageSize = this.options.maxImageSize;
- if (imageMask) {
- var width = dict.get('Width', 'W');
- var height = dict.get('Height', 'H');
- var bitStrideLength = width + 7 >> 3;
- var imgArray = image.getBytes(bitStrideLength * height, true);
- var decode = dict.getArray('Decode', 'D');
- imgData = _image.PDFImage.createMask({
- imgArray: imgArray,
- width: width,
- height: height,
- imageIsFromDecodeStream: image instanceof _stream.DecodeStream,
- inverseDecode: !!decode && decode[0] > 0
- });
- imgData.cached = true;
- args = [imgData];
- operatorList.addOp(_util.OPS.paintImageMaskXObject, args);
-
- if (cacheKey) {
- imageCache[cacheKey] = {
- fn: _util.OPS.paintImageMaskXObject,
- args: args
- };
- }
+ if (!(maxImageSize !== -1 && w * h > maxImageSize)) {
+ _context2.next = 11;
+ break;
+ }
- return Promise.resolve();
- }
+ (0, _util.warn)('Image exceeded maximum allowed size and was removed.');
+ return _context2.abrupt("return", undefined);
- var softMask = dict.get('SMask', 'SM') || false;
- var mask = dict.get('Mask') || false;
- var SMALL_IMAGE_DIMENSIONS = 200;
+ case 11:
+ imageMask = dict.get('ImageMask', 'IM') || false;
- if (isInline && !softMask && !mask && !(image instanceof _jpeg_stream.JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS) {
- var imageObj = new _image.PDFImage({
- xref: this.xref,
- res: resources,
- image: image,
- isInline: isInline,
- pdfFunctionFactory: this.pdfFunctionFactory
- });
- imgData = imageObj.createImageData(true);
- operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);
- return Promise.resolve();
- }
+ if (!imageMask) {
+ _context2.next = 24;
+ break;
+ }
- var nativeImageDecoderSupport = forceDisableNativeImageDecoder ? _util.NativeImageDecoding.NONE : this.options.nativeImageDecoderSupport;
- var objId = 'img_' + this.idFactory.createObjId();
+ width = dict.get('Width', 'W');
+ height = dict.get('Height', 'H');
+ bitStrideLength = width + 7 >> 3;
+ imgArray = image.getBytes(bitStrideLength * height, true);
+ decode = dict.getArray('Decode', 'D');
+ imgData = _image.PDFImage.createMask({
+ imgArray: imgArray,
+ width: width,
+ height: height,
+ imageIsFromDecodeStream: image instanceof _stream.DecodeStream,
+ inverseDecode: !!decode && decode[0] > 0
+ });
+ imgData.cached = !!cacheKey;
+ args = [imgData];
+ operatorList.addOp(_util.OPS.paintImageMaskXObject, args);
+
+ if (cacheKey) {
+ imageCache[cacheKey] = {
+ fn: _util.OPS.paintImageMaskXObject,
+ args: args
+ };
+ }
- if (nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isSupported(image, this.xref, resources, this.pdfFunctionFactory)) {
- return this.handler.sendWithPromise('obj', [objId, this.pageIndex, 'JpegStream', image.getIR(this.options.forceDataSchema)]).then(function () {
- operatorList.addDependency(objId);
- args = [objId, w, h];
- operatorList.addOp(_util.OPS.paintJpegXObject, args);
+ return _context2.abrupt("return", undefined);
- if (cacheKey) {
- imageCache[cacheKey] = {
- fn: _util.OPS.paintJpegXObject,
- args: args
- };
- }
- }, function (reason) {
- (0, _util.warn)('Native JPEG decoding failed -- trying to recover: ' + (reason && reason.message));
- return _this2.buildPaintImageXObject({
- resources: resources,
- image: image,
- isInline: isInline,
- operatorList: operatorList,
- cacheKey: cacheKey,
- imageCache: imageCache,
- forceDisableNativeImageDecoder: true
- });
- });
- }
+ case 24:
+ softMask = dict.get('SMask', 'SM') || false;
+ mask = dict.get('Mask') || false;
+ SMALL_IMAGE_DIMENSIONS = 200;
- var nativeImageDecoder = null;
+ if (!(isInline && !softMask && !mask && !(image instanceof _jpeg_stream.JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS)) {
+ _context2.next = 32;
+ break;
+ }
- if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof _jpeg_stream.JpegStream || mask instanceof _jpeg_stream.JpegStream || softMask instanceof _jpeg_stream.JpegStream)) {
- nativeImageDecoder = new NativeImageDecoder({
- xref: this.xref,
- resources: resources,
- handler: this.handler,
- forceDataSchema: this.options.forceDataSchema,
- pdfFunctionFactory: this.pdfFunctionFactory
- });
- }
+ imageObj = new _image.PDFImage({
+ xref: this.xref,
+ res: resources,
+ image: image,
+ isInline: isInline,
+ pdfFunctionFactory: this.pdfFunctionFactory
+ });
+ imgData = imageObj.createImageData(true);
+ operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);
+ return _context2.abrupt("return", undefined);
- operatorList.addDependency(objId);
- args = [objId, w, h];
+ case 32:
+ nativeImageDecoderSupport = forceDisableNativeImageDecoder ? _util.NativeImageDecoding.NONE : this.options.nativeImageDecoderSupport;
+ objId = "img_".concat(this.idFactory.createObjId());
- _image.PDFImage.buildImage({
- handler: this.handler,
- xref: this.xref,
- res: resources,
- image: image,
- isInline: isInline,
- nativeDecoder: nativeImageDecoder,
- pdfFunctionFactory: this.pdfFunctionFactory
- }).then(function (imageObj) {
- var imgData = imageObj.createImageData(false);
+ if (this.parsingType3Font) {
+ (0, _util.assert)(nativeImageDecoderSupport === _util.NativeImageDecoding.NONE, 'Type3 image resources should be completely decoded in the worker.');
+ objId = "".concat(this.idFactory.getDocId(), "_type3res_").concat(objId);
+ }
- _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);
- }).catch(function (reason) {
- (0, _util.warn)('Unable to decode image: ' + reason);
+ if (!(nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image instanceof _jpeg_stream.JpegStream && _image_utils.NativeImageDecoder.isSupported(image, this.xref, resources, this.pdfFunctionFactory))) {
+ _context2.next = 37;
+ break;
+ }
- _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);
- });
+ return _context2.abrupt("return", this.handler.sendWithPromise('obj', [objId, this.pageIndex, 'JpegStream', image.getIR(this.options.forceDataSchema)]).then(function () {
+ operatorList.addDependency(objId);
+ args = [objId, w, h];
+ operatorList.addOp(_util.OPS.paintJpegXObject, args);
- operatorList.addOp(_util.OPS.paintImageXObject, args);
+ if (cacheKey) {
+ imageCache[cacheKey] = {
+ fn: _util.OPS.paintJpegXObject,
+ args: args
+ };
+ }
+ }, function (reason) {
+ (0, _util.warn)('Native JPEG decoding failed -- trying to recover: ' + (reason && reason.message));
+ return _this2.buildPaintImageXObject({
+ resources: resources,
+ image: image,
+ isInline: isInline,
+ operatorList: operatorList,
+ cacheKey: cacheKey,
+ imageCache: imageCache,
+ forceDisableNativeImageDecoder: true
+ });
+ }));
- if (cacheKey) {
- imageCache[cacheKey] = {
- fn: _util.OPS.paintImageXObject,
- args: args
- };
+ case 37:
+ nativeImageDecoder = null;
+
+ if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof _jpeg_stream.JpegStream || mask instanceof _jpeg_stream.JpegStream || softMask instanceof _jpeg_stream.JpegStream)) {
+ nativeImageDecoder = new _image_utils.NativeImageDecoder({
+ xref: this.xref,
+ resources: resources,
+ handler: this.handler,
+ forceDataSchema: this.options.forceDataSchema,
+ pdfFunctionFactory: this.pdfFunctionFactory
+ });
+ }
+
+ operatorList.addDependency(objId);
+ args = [objId, w, h];
+ imgPromise = _image.PDFImage.buildImage({
+ handler: this.handler,
+ xref: this.xref,
+ res: resources,
+ image: image,
+ isInline: isInline,
+ nativeDecoder: nativeImageDecoder,
+ pdfFunctionFactory: this.pdfFunctionFactory
+ }).then(function (imageObj) {
+ var imgData = imageObj.createImageData(false);
+
+ if (_this2.parsingType3Font) {
+ return _this2.handler.sendWithPromise('commonobj', [objId, 'FontType3Res', imgData], [imgData.data.buffer]);
+ }
+
+ _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);
+
+ return undefined;
+ })["catch"](function (reason) {
+ (0, _util.warn)('Unable to decode image: ' + reason);
+
+ if (_this2.parsingType3Font) {
+ return _this2.handler.sendWithPromise('commonobj', [objId, 'FontType3Res', null]);
+ }
+
+ _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);
+
+ return undefined;
+ });
+
+ if (!this.parsingType3Font) {
+ _context2.next = 45;
+ break;
+ }
+
+ _context2.next = 45;
+ return imgPromise;
+
+ case 45:
+ operatorList.addOp(_util.OPS.paintImageXObject, args);
+
+ if (cacheKey) {
+ imageCache[cacheKey] = {
+ fn: _util.OPS.paintImageXObject,
+ args: args
+ };
+ }
+
+ return _context2.abrupt("return", undefined);
+
+ case 48:
+ case "end":
+ return _context2.stop();
+ }
+ }
+ }, _callee2, this);
+ }));
+
+ function buildPaintImageXObject(_x2) {
+ return _buildPaintImageXObject.apply(this, arguments);
}
- return Promise.resolve();
- },
+ return buildPaintImageXObject;
+ }(),
handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) {
var smaskContent = smask.get('G');
var smaskOptions = {
@@ -30587,6 +31246,10 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
operatorList.addDependencies(tilingOpList.dependencies);
operatorList.addOp(fn, tilingPatternIR);
}, function (reason) {
+ if (reason instanceof _util.AbortException) {
+ return;
+ }
+
if (_this3.options.ignoreErrors) {
_this3.handler.send('UnsupportedFeature', {
featureId: _util.UNSUPPORTED_FEATURES.unknown
@@ -30616,7 +31279,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return translated.loadType3Data(_this4, resources, operatorList, task).then(function () {
return translated;
- }).catch(function (reason) {
+ })["catch"](function (reason) {
_this4.handler.send('UnsupportedFeature', {
featureId: _util.UNSUPPORTED_FEATURES.font
});
@@ -30781,7 +31444,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
var fontCapability = (0, _util.createPromiseCapability)();
var preEvaluatedFont = this.preEvaluateFont(font);
- var descriptor = preEvaluatedFont.descriptor;
+ var descriptor = preEvaluatedFont.descriptor,
+ hash = preEvaluatedFont.hash;
var fontRefIsRef = (0, _primitives.isRef)(fontRef),
fontID;
@@ -30789,13 +31453,12 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
fontID = fontRef.toString();
}
- if ((0, _primitives.isDict)(descriptor)) {
+ if (hash && (0, _primitives.isDict)(descriptor)) {
if (!descriptor.fontAliases) {
descriptor.fontAliases = Object.create(null);
}
var fontAliases = descriptor.fontAliases;
- var hash = preEvaluatedFont.hash;
if (fontAliases[hash]) {
var aliasFontRef = fontAliases[hash].aliasRef;
@@ -30824,11 +31487,11 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
fontID = this.idFactory.createObjId();
}
- this.fontCache.put('id_' + fontID, fontCapability.promise);
+ this.fontCache.put("id_".concat(fontID), fontCapability.promise);
}
(0, _util.assert)(fontID, 'The "fontID" must be defined.');
- font.loadedName = 'g_' + this.pdfManager.docId + '_f' + fontID;
+ font.loadedName = "".concat(this.idFactory.getDocId(), "_f").concat(fontID);
font.translated = fontCapability.promise;
var translatedPromise;
@@ -30845,13 +31508,12 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}
fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));
- }).catch(function (reason) {
+ })["catch"](function (reason) {
_this6.handler.send('UnsupportedFeature', {
featureId: _util.UNSUPPORTED_FEATURES.font
});
try {
- var descriptor = preEvaluatedFont.descriptor;
var fontFile3 = descriptor && descriptor.get('FontFile3');
var subtype = fontFile3 && fontFile3.get('Subtype');
var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name);
@@ -30863,7 +31525,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
});
return fontCapability.promise;
},
- buildPath: function PartialEvaluator_buildPath(operatorList, fn, args) {
+ buildPath: function buildPath(operatorList, fn, args) {
+ var parsingText = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
var lastIndex = operatorList.length - 1;
if (!args) {
@@ -30871,47 +31534,90 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}
if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {
+ if (parsingText) {
+ (0, _util.warn)("Encountered path operator \"".concat(fn, "\" inside of a text object."));
+ operatorList.addOp(_util.OPS.save, null);
+ }
+
operatorList.addOp(_util.OPS.constructPath, [[fn], args]);
+
+ if (parsingText) {
+ operatorList.addOp(_util.OPS.restore, null);
+ }
} else {
var opArgs = operatorList.argsArray[lastIndex];
opArgs[0].push(fn);
Array.prototype.push.apply(opArgs[1], args);
}
},
- handleColorN: function PartialEvaluator_handleColorN(operatorList, fn, args, cs, patterns, resources, task) {
- var patternName = args[args.length - 1];
- var pattern;
+ handleColorN: function () {
+ var _handleColorN = _asyncToGenerator(
+ /*#__PURE__*/
+ _regenerator["default"].mark(function _callee3(operatorList, fn, args, cs, patterns, resources, task) {
+ var patternName, pattern, dict, typeNum, color, shading, matrix;
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
+ while (1) {
+ switch (_context3.prev = _context3.next) {
+ case 0:
+ patternName = args[args.length - 1];
- if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) {
- var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;
- var typeNum = dict.get('PatternType');
+ if (!((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name)))) {
+ _context3.next = 16;
+ break;
+ }
- if (typeNum === TILING_PATTERN) {
- var color = cs.base ? cs.base.getRgb(args, 0) : null;
- return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task);
- } else if (typeNum === SHADING_PATTERN) {
- var shading = dict.get('Shading');
- var matrix = dict.getArray('Matrix');
- pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this.pdfFunctionFactory);
- operatorList.addOp(fn, pattern.getIR());
- return Promise.resolve();
- }
+ dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;
+ typeNum = dict.get('PatternType');
+
+ if (!(typeNum === TILING_PATTERN)) {
+ _context3.next = 9;
+ break;
+ }
+
+ color = cs.base ? cs.base.getRgb(args, 0) : null;
+ return _context3.abrupt("return", this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task));
+
+ case 9:
+ if (!(typeNum === SHADING_PATTERN)) {
+ _context3.next = 15;
+ break;
+ }
+
+ shading = dict.get('Shading');
+ matrix = dict.getArray('Matrix');
+ pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this.pdfFunctionFactory);
+ operatorList.addOp(fn, pattern.getIR());
+ return _context3.abrupt("return", undefined);
- return Promise.reject(new Error('Unknown PatternType: ' + typeNum));
+ case 15:
+ throw new _util.FormatError("Unknown PatternType: ".concat(typeNum));
+
+ case 16:
+ throw new _util.FormatError("Unknown PatternName: ".concat(patternName));
+
+ case 17:
+ case "end":
+ return _context3.stop();
+ }
+ }
+ }, _callee3, this);
+ }));
+
+ function handleColorN(_x3, _x4, _x5, _x6, _x7, _x8, _x9) {
+ return _handleColorN.apply(this, arguments);
}
- operatorList.addOp(fn, args);
- return Promise.resolve();
- },
- getOperatorList: function getOperatorList(_ref6) {
+ return handleColorN;
+ }(),
+ getOperatorList: function getOperatorList(_ref5) {
var _this7 = this;
- var stream = _ref6.stream,
- task = _ref6.task,
- resources = _ref6.resources,
- operatorList = _ref6.operatorList,
- _ref6$initialState = _ref6.initialState,
- initialState = _ref6$initialState === void 0 ? null : _ref6$initialState;
+ var stream = _ref5.stream,
+ task = _ref5.task,
+ resources = _ref5.resources,
+ operatorList = _ref5.operatorList,
+ _ref5$initialState = _ref5.initialState,
+ initialState = _ref5$initialState === void 0 ? null : _ref5$initialState;
resources = resources || _primitives.Dict.empty;
initialState = initialState || new EvalState();
@@ -30921,6 +31627,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
var self = this;
var xref = this.xref;
+ var parsingText = false;
var imageCache = Object.create(null);
var xobjs = resources.get('XObject') || _primitives.Dict.empty;
@@ -30939,7 +31646,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return new Promise(function promiseBody(resolve, reject) {
var next = function next(promise) {
- promise.then(function () {
+ Promise.all([promise, operatorList.ready]).then(function () {
try {
promiseBody(resolve, reject);
} catch (ex) {
@@ -31022,7 +31729,11 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}
resolveXObject();
- }).catch(function (reason) {
+ })["catch"](function (reason) {
+ if (reason instanceof _util.AbortException) {
+ return;
+ }
+
if (self.options.ignoreErrors) {
self.handler.send('UnsupportedFeature', {
featureId: _util.UNSUPPORTED_FEATURES.unknown
@@ -31043,6 +31754,14 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}));
return;
+ case _util.OPS.beginText:
+ parsingText = true;
+ break;
+
+ case _util.OPS.endText:
+ parsingText = false;
+ break;
+
case _util.OPS.endInlineImage:
var cacheKey = args[0].cacheKey;
@@ -31224,11 +31943,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
case _util.OPS.curveTo2:
case _util.OPS.curveTo3:
case _util.OPS.closePath:
- self.buildPath(operatorList, fn, args);
- continue;
-
case _util.OPS.rectangle:
- self.buildPath(operatorList, fn, args);
+ self.buildPath(operatorList, fn, args, parsingText);
continue;
case _util.OPS.markPoint:
@@ -31266,7 +31982,11 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
closePendingRestoreOPS();
resolve();
- }).catch(function (reason) {
+ })["catch"](function (reason) {
+ if (reason instanceof _util.AbortException) {
+ return;
+ }
+
if (_this7.options.ignoreErrors) {
_this7.handler.send('UnsupportedFeature', {
featureId: _util.UNSUPPORTED_FEATURES.unknown
@@ -31280,21 +32000,21 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
throw reason;
});
},
- getTextContent: function getTextContent(_ref7) {
+ getTextContent: function getTextContent(_ref6) {
var _this8 = this;
- var stream = _ref7.stream,
- task = _ref7.task,
- resources = _ref7.resources,
- _ref7$stateManager = _ref7.stateManager,
- stateManager = _ref7$stateManager === void 0 ? null : _ref7$stateManager,
- _ref7$normalizeWhites = _ref7.normalizeWhitespace,
- normalizeWhitespace = _ref7$normalizeWhites === void 0 ? false : _ref7$normalizeWhites,
- _ref7$combineTextItem = _ref7.combineTextItems,
- combineTextItems = _ref7$combineTextItem === void 0 ? false : _ref7$combineTextItem,
- sink = _ref7.sink,
- _ref7$seenStyles = _ref7.seenStyles,
- seenStyles = _ref7$seenStyles === void 0 ? Object.create(null) : _ref7$seenStyles;
+ var stream = _ref6.stream,
+ task = _ref6.task,
+ resources = _ref6.resources,
+ _ref6$stateManager = _ref6.stateManager,
+ stateManager = _ref6$stateManager === void 0 ? null : _ref6$stateManager,
+ _ref6$normalizeWhites = _ref6.normalizeWhitespace,
+ normalizeWhitespace = _ref6$normalizeWhites === void 0 ? false : _ref6$normalizeWhites,
+ _ref6$combineTextItem = _ref6.combineTextItems,
+ combineTextItems = _ref6$combineTextItem === void 0 ? false : _ref6$combineTextItem,
+ sink = _ref6.sink,
+ _ref6$seenStyles = _ref6.seenStyles,
+ seenStyles = _ref6$seenStyles === void 0 ? Object.create(null) : _ref6$seenStyles;
resources = resources || _primitives.Dict.empty;
stateManager = stateManager || new StateManager(new TextState());
var WhitespaceRegexp = /\s/g;
@@ -31349,12 +32069,11 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
textContentItem.fontName = font.loadedName;
var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];
- if (font.isType3Font && textState.fontMatrix !== _util.FONT_IDENTITY_MATRIX && textState.fontSize === 1) {
+ if (font.isType3Font && textState.fontSize <= 1 && !(0, _util.isArrayEqual)(textState.fontMatrix, _util.FONT_IDENTITY_MATRIX)) {
var glyphHeight = font.bbox[3] - font.bbox[1];
if (glyphHeight > 0) {
- glyphHeight = glyphHeight * textState.fontMatrix[3];
- tsm[3] *= glyphHeight;
+ tsm[3] *= glyphHeight * textState.fontMatrix[3];
}
}
@@ -31804,7 +32523,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
resolveXObject();
}, rejectXObject);
- }).catch(function (reason) {
+ })["catch"](function (reason) {
if (reason instanceof _util.AbortException) {
return;
}
@@ -31859,7 +32578,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
flushTextContentItem();
enqueueChunk();
resolve();
- }).catch(function (reason) {
+ })["catch"](function (reason) {
if (reason instanceof _util.AbortException) {
return;
}
@@ -31877,7 +32596,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {
var _this9 = this;
- var xref = this.xref;
+ var xref = this.xref,
+ cidToGidBytes;
var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');
var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);
@@ -31895,7 +32615,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
var cidToGidMap = dict.get('CIDToGIDMap');
if ((0, _primitives.isStream)(cidToGidMap)) {
- properties.cidToGidMap = this.readCidToGidMap(cidToGidMap);
+ cidToGidBytes = cidToGidMap.getBytes();
}
}
@@ -31972,6 +32692,11 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return _this9.buildToUnicode(properties);
}).then(function (toUnicode) {
properties.toUnicode = toUnicode;
+
+ if (cidToGidBytes) {
+ properties.cidToGidMap = _this9.readCidToGidMap(cidToGidBytes, toUnicode);
+ }
+
return properties;
});
},
@@ -32152,18 +32877,17 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
return Promise.resolve(null);
},
- readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) {
- var glyphsData = cidToGidStream.getBytes();
+ readCidToGidMap: function readCidToGidMap(glyphsData, toUnicode) {
var result = [];
for (var j = 0, jj = glyphsData.length; j < jj; j++) {
var glyphID = glyphsData[j++] << 8 | glyphsData[j];
+ var code = j >> 1;
- if (glyphID === 0) {
+ if (glyphID === 0 && !toUnicode.has(code)) {
continue;
}
- var code = j >> 1;
result[code] = glyphID;
}
@@ -32398,6 +33122,9 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
}
}
+ var firstChar = dict.get('FirstChar') || 0;
+ var lastChar = dict.get('LastChar') || (composite ? 0xFFFF : 0xFF);
+ hash.update("".concat(firstChar, "-").concat(lastChar));
var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');
if ((0, _primitives.isStream)(toUnicode)) {
@@ -32603,8 +33330,8 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
_iteratorError = err;
} finally {
try {
- if (!_iteratorNormalCompletion && _iterator.return != null) {
- _iterator.return();
+ if (!_iteratorNormalCompletion && _iterator["return"] != null) {
+ _iterator["return"]();
}
} finally {
if (_didIteratorError) {
@@ -32657,7 +33384,9 @@ var TranslatedFont = function TranslatedFontClosure() {
var type3Options = Object.create(evaluator.options);
type3Options.ignoreErrors = false;
+ type3Options.nativeImageDecoderSupport = _util.NativeImageDecoding.NONE;
var type3Evaluator = evaluator.clone(type3Options);
+ type3Evaluator.parsingType3Font = true;
var translatedFont = this.font;
var loadCharProcsPromise = Promise.resolve();
var charProcs = this.dict.get('CharProcs');
@@ -32678,7 +33407,7 @@ var TranslatedFont = function TranslatedFontClosure() {
}).then(function () {
charProcOperatorList[key] = operatorList.getIR();
parentOperatorList.addDependencies(operatorList.dependencies);
- }).catch(function (reason) {
+ })["catch"](function (reason) {
(0, _util.warn)("Type3 font resource \"".concat(key, "\" is not available."));
var operatorList = new _operator_list.OperatorList();
charProcOperatorList[key] = operatorList.getIR();
@@ -32845,7 +33574,7 @@ var EvalState = function EvalStateClosure() {
}();
var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
- var getOPMap = (0, _util.getLookupTableFactory)(function (t) {
+ var getOPMap = (0, _core_utils.getLookupTableFactory)(function (t) {
t['w'] = {
id: _util.OPS.setLineWidth,
numArgs: 1,
@@ -33226,7 +33955,10 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
function EvaluatorPreprocessor(stream, xref, stateManager) {
this.opMap = getOPMap();
- this.parser = new _parser.Parser(new _parser.Lexer(stream, this.opMap), false, xref);
+ this.parser = new _parser.Parser({
+ lexer: new _parser.Lexer(stream, this.opMap),
+ xref: xref
+ });
this.stateManager = stateManager;
this.nonProcessedArgs = [];
this._numInvalidPathOPS = 0;
@@ -33243,7 +33975,7 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
while (true) {
var obj = this.parser.getObj();
- if ((0, _primitives.isCmd)(obj)) {
+ if (obj instanceof _primitives.Cmd) {
var cmd = obj.cmd;
var opSpec = this.opMap[cmd];
@@ -33300,7 +34032,7 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
return true;
}
- if ((0, _primitives.isEOF)(obj)) {
+ if (obj === _primitives.EOF) {
return false;
}
@@ -33337,7 +34069,7 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
}();
/***/ }),
-/* 172 */
+/* 205 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -33348,13 +34080,15 @@ Object.defineProperty(exports, "__esModule", {
});
exports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
+
+var _primitives = __w_pdfjs_require__(183);
-var _primitives = __w_pdfjs_require__(155);
+var _parser = __w_pdfjs_require__(189);
-var _parser = __w_pdfjs_require__(156);
+var _core_utils = __w_pdfjs_require__(186);
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -33774,7 +34508,9 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
var useCMap = null;
var start = new Uint8Array(MAX_NUM_SIZE);
var end = new Uint8Array(MAX_NUM_SIZE);
- var char = new Uint8Array(MAX_NUM_SIZE);
+
+ var _char = new Uint8Array(MAX_NUM_SIZE);
+
var charCode = new Uint8Array(MAX_NUM_SIZE);
var tmp = new Uint8Array(MAX_NUM_SIZE);
var code;
@@ -33844,20 +34580,20 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
break;
case 2:
- stream.readHex(char, dataSize);
+ stream.readHex(_char, dataSize);
code = stream.readNumber();
- cMap.mapOne(hexToInt(char, dataSize), code);
+ cMap.mapOne(hexToInt(_char, dataSize), code);
for (i = 1; i < subitemsCount; i++) {
- incHex(char, dataSize);
+ incHex(_char, dataSize);
if (!sequence) {
stream.readHexNumber(tmp, dataSize);
- addHex(char, tmp, dataSize);
+ addHex(_char, tmp, dataSize);
}
code = stream.readSigned() + (code + 1);
- cMap.mapOne(hexToInt(char, dataSize), code);
+ cMap.mapOne(hexToInt(_char, dataSize), code);
}
break;
@@ -33888,22 +34624,22 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
break;
case 4:
- stream.readHex(char, ucs2DataSize);
+ stream.readHex(_char, ucs2DataSize);
stream.readHex(charCode, dataSize);
- cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));
+ cMap.mapOne(hexToInt(_char, ucs2DataSize), hexToStr(charCode, dataSize));
for (i = 1; i < subitemsCount; i++) {
- incHex(char, ucs2DataSize);
+ incHex(_char, ucs2DataSize);
if (!sequence) {
stream.readHexNumber(tmp, ucs2DataSize);
- addHex(char, tmp, ucs2DataSize);
+ addHex(_char, tmp, ucs2DataSize);
}
incHex(charCode, dataSize);
stream.readHexSigned(tmp, dataSize);
addHex(charCode, tmp, dataSize);
- cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));
+ cMap.mapOne(hexToInt(_char, ucs2DataSize), hexToStr(charCode, dataSize));
}
break;
@@ -34183,7 +34919,7 @@ var CMapFactory = function CMapFactoryClosure() {
}
}
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
@@ -34289,7 +35025,7 @@ var CMapFactory = function CMapFactoryClosure() {
exports.CMapFactory = CMapFactory;
/***/ }),
-/* 173 */
+/* 206 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -34301,31 +35037,33 @@ Object.defineProperty(exports, "__esModule", {
exports.getFontType = getFontType;
exports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.SEAC_ANALYSIS_ENABLED = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _cff_parser = __w_pdfjs_require__(174);
+var _cff_parser = __w_pdfjs_require__(207);
-var _glyphlist = __w_pdfjs_require__(177);
+var _glyphlist = __w_pdfjs_require__(210);
-var _encodings = __w_pdfjs_require__(176);
+var _encodings = __w_pdfjs_require__(209);
-var _standard_fonts = __w_pdfjs_require__(178);
+var _standard_fonts = __w_pdfjs_require__(211);
-var _unicode = __w_pdfjs_require__(179);
+var _unicode = __w_pdfjs_require__(212);
-var _font_renderer = __w_pdfjs_require__(180);
+var _font_renderer = __w_pdfjs_require__(213);
-var _cmap = __w_pdfjs_require__(172);
+var _cmap = __w_pdfjs_require__(205);
-var _stream = __w_pdfjs_require__(157);
+var _core_utils = __w_pdfjs_require__(186);
-var _type1_parser = __w_pdfjs_require__(181);
+var _stream = __w_pdfjs_require__(190);
+
+var _type1_parser = __w_pdfjs_require__(214);
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
@@ -35696,7 +36434,7 @@ var Font = function FontClosure() {
};
}
- function sanitizeMetrics(font, header, metrics, numGlyphs) {
+ function sanitizeMetrics(font, header, metrics, numGlyphs, dupFirstEntry) {
if (!header) {
if (metrics) {
metrics.data = null;
@@ -35734,6 +36472,12 @@ var Font = function FontClosure() {
if (numMissing > 0) {
var entries = new Uint8Array(metrics.length + numMissing * 2);
entries.set(metrics.data);
+
+ if (dupFirstEntry) {
+ entries[metrics.length] = metrics.data[2];
+ entries[metrics.length + 1] = metrics.data[3];
+ }
+
metrics.data = entries;
}
}
@@ -36489,7 +37233,7 @@ var Font = function FontClosure() {
delete tables['cvt '];
}
- sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphsOut);
+ sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphsOut, dupFirstEntry);
if (!tables['head']) {
throw new _util.FormatError('Required "head" table is not found');
@@ -37105,7 +37849,7 @@ var Type1Font = function Type1FontClosure() {
headerBytes = stream.getBytes(suggestedLength);
headerBytesLength = headerBytes.length;
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
}
@@ -37189,7 +37933,7 @@ var Type1Font = function Type1FontClosure() {
var eexecBlock = getEexecBlock(file, eexecBlockLength);
var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);
- var data = eexecBlockParser.extractFontProgram();
+ var data = eexecBlockParser.extractFontProgram(properties);
for (var info in data.properties) {
properties[info] = data.properties[info];
@@ -37329,20 +38073,22 @@ var Type1Font = function Type1FontClosure() {
cff.strings = strings;
cff.globalSubrIndex = new _cff_parser.CFFIndex();
var count = glyphs.length;
- var charsetArray = [0];
+ var charsetArray = ['.notdef'];
var i, ii;
for (i = 0; i < count; i++) {
- var index = _cff_parser.CFFStandardStrings.indexOf(charstrings[i].glyphName);
+ var glyphName = charstrings[i].glyphName;
+
+ var index = _cff_parser.CFFStandardStrings.indexOf(glyphName);
if (index === -1) {
- index = 0;
+ strings.add(glyphName);
}
- charsetArray.push(index >> 8 & 0xff, index & 0xff);
+ charsetArray.push(glyphName);
}
- cff.charset = new _cff_parser.CFFCharset(false, 0, [], charsetArray);
+ cff.charset = new _cff_parser.CFFCharset(false, 0, charsetArray);
var charStringsIndex = new _cff_parser.CFFIndex();
charStringsIndex.add([0x8B, 0x0E]);
@@ -37422,16 +38168,18 @@ var CFFFont = function CFFFontClosure() {
if (properties.composite) {
charCodeToGlyphId = Object.create(null);
+ var charCode;
if (cff.isCIDFont) {
for (glyphId = 0; glyphId < charsets.length; glyphId++) {
var cid = charsets[glyphId];
- var charCode = properties.cMap.charCodeOf(cid);
+ charCode = properties.cMap.charCodeOf(cid);
charCodeToGlyphId[charCode] = glyphId;
}
} else {
for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {
- charCodeToGlyphId[glyphId] = glyphId;
+ charCode = properties.cMap.charCodeOf(glyphId);
+ charCodeToGlyphId[charCode] = glyphId;
}
}
@@ -37450,7 +38198,7 @@ var CFFFont = function CFFFontClosure() {
}();
/***/ }),
-/* 174 */
+/* 207 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -37461,15 +38209,16 @@ Object.defineProperty(exports, "__esModule", {
});
exports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _charsets = __w_pdfjs_require__(175);
+var _charsets = __w_pdfjs_require__(208);
-var _encodings = __w_pdfjs_require__(176);
+var _encodings = __w_pdfjs_require__(209);
var MAX_SUBR_NESTING = 10;
var CFFStandardStrings = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003', 'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold'];
exports.CFFStandardStrings = CFFStandardStrings;
+var NUM_STANDARD_CFF_STRINGS = 391;
var CFFParser = function CFFParserClosure() {
var CharstringValidationData = [null, {
@@ -38466,16 +39215,31 @@ var CFFStrings = function CFFStringsClosure() {
CFFStrings.prototype = {
get: function CFFStrings_get(index) {
- if (index >= 0 && index <= 390) {
+ if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {
return CFFStandardStrings[index];
}
- if (index - 391 <= this.strings.length) {
- return this.strings[index - 391];
+ if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {
+ return this.strings[index - NUM_STANDARD_CFF_STRINGS];
}
return CFFStandardStrings[0];
},
+ getSID: function CFFStrings_getSID(str) {
+ var index = CFFStandardStrings.indexOf(str);
+
+ if (index !== -1) {
+ return index;
+ }
+
+ index = this.strings.indexOf(str);
+
+ if (index !== -1) {
+ return index + NUM_STANDARD_CFF_STRINGS;
+ }
+
+ return -1;
+ },
add: function CFFStrings_add(value) {
this.strings.push(value);
},
@@ -38812,7 +39576,7 @@ var CFFCompiler = function CFFCompilerClosure() {
}
}
- var charset = this.compileCharset(cff.charset);
+ var charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont);
topDictTracker.setEntryLocation('charset', [output.length], output);
output.add(charset);
var charStrings = this.compileCharStrings(cff.charStrings);
@@ -38907,13 +39671,13 @@ var CFFCompiler = function CFFCompilerClosure() {
var sanitizedName = new Array(length);
for (var j = 0; j < length; j++) {
- var char = name[j];
+ var _char = name[j];
- if (char < '!' || char > '~' || char === '[' || char === ']' || char === '(' || char === ')' || char === '{' || char === '}' || char === '<' || char === '>' || char === '/' || char === '%') {
- char = '_';
+ if (_char < '!' || _char > '~' || _char === '[' || _char === ']' || _char === '(' || _char === ')' || _char === '{' || _char === '}' || _char === '<' || _char === '>' || _char === '/' || _char === '%') {
+ _char = '_';
}
- sanitizedName[j] = char;
+ sanitizedName[j] = _char;
}
sanitizedName = sanitizedName.join('');
@@ -39078,9 +39842,42 @@ var CFFCompiler = function CFFCompilerClosure() {
return this.compileIndex(charStringsIndex);
},
- compileCharset: function CFFCompiler_compileCharset(charset) {
- var length = 1 + (this.cff.charStrings.count - 1) * 2;
- var out = new Uint8Array(length);
+ compileCharset: function CFFCompiler_compileCharset(charset, numGlyphs, strings, isCIDFont) {
+ var out;
+ var numGlyphsLessNotDef = numGlyphs - 1;
+
+ if (isCIDFont) {
+ out = new Uint8Array([2, 0, 0, numGlyphsLessNotDef >> 8 & 0xFF, numGlyphsLessNotDef & 0xFF]);
+ } else {
+ var length = 1 + numGlyphsLessNotDef * 2;
+ out = new Uint8Array(length);
+ out[0] = 0;
+ var charsetIndex = 0;
+ var numCharsets = charset.charset.length;
+ var warned = false;
+
+ for (var i = 1; i < out.length; i += 2) {
+ var sid = 0;
+
+ if (charsetIndex < numCharsets) {
+ var name = charset.charset[charsetIndex++];
+ sid = strings.getSID(name);
+
+ if (sid === -1) {
+ sid = 0;
+
+ if (!warned) {
+ warned = true;
+ (0, _util.warn)("Couldn't find ".concat(name, " in CFF strings"));
+ }
+ }
+ }
+
+ out[i] = sid >> 8 & 0xFF;
+ out[i + 1] = sid & 0xFF;
+ }
+ }
+
return this.compileTypedArray(out);
},
compileEncoding: function CFFCompiler_compileEncoding(encoding) {
@@ -39201,7 +39998,7 @@ var CFFCompiler = function CFFCompilerClosure() {
exports.CFFCompiler = CFFCompiler;
/***/ }),
-/* 175 */
+/* 208 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -39219,7 +40016,7 @@ var ExpertSubsetCharset = ['.notdef', 'space', 'dollaroldstyle', 'dollarsuperior
exports.ExpertSubsetCharset = ExpertSubsetCharset;
/***/ }),
-/* 176 */
+/* 209 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -39273,10 +40070,10 @@ function getEncoding(encodingName) {
}
/***/ }),
-/* 177 */
+/* 210 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-var getLookupTableFactory = __w_pdfjs_require__(6).getLookupTableFactory;
+var getLookupTableFactory = __w_pdfjs_require__(186).getLookupTableFactory;
var getGlyphsUnicode = getLookupTableFactory(function (t) {
t['A'] = 0x0041;
t['AE'] = 0x00C6;
@@ -41087,6 +41884,7 @@ var getGlyphsUnicode = getLookupTableFactory(function (t) {
t['feicoptic'] = 0x03E5;
t['female'] = 0x2640;
t['ff'] = 0xFB00;
+ t['f_f'] = 0xFB00;
t['ffi'] = 0xFB03;
t['ffl'] = 0xFB04;
t['fi'] = 0xFB01;
@@ -43809,7 +44607,7 @@ exports.getGlyphsUnicode = getGlyphsUnicode;
exports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;
/***/ }),
-/* 178 */
+/* 211 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -43820,9 +44618,9 @@ Object.defineProperty(exports, "__esModule", {
});
exports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = void 0;
-var _util = __w_pdfjs_require__(6);
+var _core_utils = __w_pdfjs_require__(186);
-var getStdFontMap = (0, _util.getLookupTableFactory)(function (t) {
+var getStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {
t['ArialNarrow'] = 'Helvetica';
t['ArialNarrow-Bold'] = 'Helvetica-Bold';
t['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique';
@@ -43881,7 +44679,7 @@ var getStdFontMap = (0, _util.getLookupTableFactory)(function (t) {
t['TimesNewRomanPSMT-Italic'] = 'Times-Italic';
});
exports.getStdFontMap = getStdFontMap;
-var getNonStdFontMap = (0, _util.getLookupTableFactory)(function (t) {
+var getNonStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {
t['Calibri'] = 'Helvetica';
t['Calibri-Bold'] = 'Helvetica-Bold';
t['Calibri-BoldItalic'] = 'Helvetica-BoldOblique';
@@ -43919,7 +44717,7 @@ var getNonStdFontMap = (0, _util.getLookupTableFactory)(function (t) {
t['Wingdings'] = 'ZapfDingbats';
});
exports.getNonStdFontMap = getNonStdFontMap;
-var getSerifFonts = (0, _util.getLookupTableFactory)(function (t) {
+var getSerifFonts = (0, _core_utils.getLookupTableFactory)(function (t) {
t['Adobe Jenson'] = true;
t['Adobe Text'] = true;
t['Albertus'] = true;
@@ -44055,13 +44853,13 @@ var getSerifFonts = (0, _util.getLookupTableFactory)(function (t) {
t['XITS'] = true;
});
exports.getSerifFonts = getSerifFonts;
-var getSymbolsFonts = (0, _util.getLookupTableFactory)(function (t) {
+var getSymbolsFonts = (0, _core_utils.getLookupTableFactory)(function (t) {
t['Dingbats'] = true;
t['Symbol'] = true;
t['ZapfDingbats'] = true;
});
exports.getSymbolsFonts = getSymbolsFonts;
-var getGlyphMapForStandardFonts = (0, _util.getLookupTableFactory)(function (t) {
+var getGlyphMapForStandardFonts = (0, _core_utils.getLookupTableFactory)(function (t) {
t[2] = 10;
t[3] = 32;
t[4] = 33;
@@ -44457,13 +45255,13 @@ var getGlyphMapForStandardFonts = (0, _util.getLookupTableFactory)(function (t)
t[3416] = 8377;
});
exports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;
-var getSupplementalGlyphMapForArialBlack = (0, _util.getLookupTableFactory)(function (t) {
+var getSupplementalGlyphMapForArialBlack = (0, _core_utils.getLookupTableFactory)(function (t) {
t[227] = 322;
t[264] = 261;
t[291] = 346;
});
exports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;
-var getSupplementalGlyphMapForCalibri = (0, _util.getLookupTableFactory)(function (t) {
+var getSupplementalGlyphMapForCalibri = (0, _core_utils.getLookupTableFactory)(function (t) {
t[1] = 32;
t[4] = 65;
t[17] = 66;
@@ -44552,10 +45350,10 @@ var getSupplementalGlyphMapForCalibri = (0, _util.getLookupTableFactory)(functio
exports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;
/***/ }),
-/* 179 */
+/* 212 */
/***/ (function(module, exports, __w_pdfjs_require__) {
-var getLookupTableFactory = __w_pdfjs_require__(6).getLookupTableFactory;
+var getLookupTableFactory = __w_pdfjs_require__(186).getLookupTableFactory;
var getSpecialPUASymbols = getLookupTableFactory(function (t) {
t[63721] = 0x00A9;
t[63193] = 0x00A9;
@@ -46529,7 +47327,7 @@ exports.getNormalizedUnicodes = getNormalizedUnicodes;
exports.getUnicodeForGlyph = getUnicodeForGlyph;
/***/ }),
-/* 180 */
+/* 213 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -46540,15 +47338,15 @@ Object.defineProperty(exports, "__esModule", {
});
exports.FontRendererFactory = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _cff_parser = __w_pdfjs_require__(174);
+var _cff_parser = __w_pdfjs_require__(207);
-var _glyphlist = __w_pdfjs_require__(177);
+var _glyphlist = __w_pdfjs_require__(210);
-var _encodings = __w_pdfjs_require__(176);
+var _encodings = __w_pdfjs_require__(209);
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -47538,7 +48336,7 @@ var FontRendererFactory = function FontRendererFactoryClosure() {
exports.FontRendererFactory = FontRendererFactory;
/***/ }),
-/* 181 */
+/* 214 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -47549,11 +48347,11 @@ Object.defineProperty(exports, "__esModule", {
});
exports.Type1Parser = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _encodings = __w_pdfjs_require__(176);
+var _encodings = __w_pdfjs_require__(209);
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
var HINTING_ENABLED = false;
@@ -48019,7 +48817,7 @@ var Type1Parser = function Type1ParserClosure() {
return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);
},
- extractFontProgram: function Type1Parser_extractFontProgram() {
+ extractFontProgram: function Type1Parser_extractFontProgram(properties) {
var stream = this.stream;
var subrs = [],
charstrings = [];
@@ -48158,6 +48956,14 @@ var Type1Parser = function Type1ParserClosure() {
lsb: charString.lsb,
seac: charString.seac
});
+
+ if (properties.builtInEncoding) {
+ var _index = properties.builtInEncoding.indexOf(glyph);
+
+ if (_index > -1 && properties.widths[_index] === undefined && _index >= properties.firstChar && _index <= properties.lastChar) {
+ properties.widths[_index] = charString.width;
+ }
+ }
}
return program;
@@ -48231,7 +49037,7 @@ var Type1Parser = function Type1ParserClosure() {
exports.Type1Parser = Type1Parser;
/***/ }),
-/* 182 */
+/* 215 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -48243,11 +49049,13 @@ Object.defineProperty(exports, "__esModule", {
exports.getTilingPatternIR = getTilingPatternIR;
exports.Pattern = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
+
+var _colorspace = __w_pdfjs_require__(201);
-var _colorspace = __w_pdfjs_require__(168);
+var _primitives = __w_pdfjs_require__(183);
-var _primitives = __w_pdfjs_require__(155);
+var _core_utils = __w_pdfjs_require__(186);
var ShadingType = {
FUNCTION_BASED: 1,
@@ -48290,7 +49098,7 @@ var Pattern = function PatternClosure() {
throw new _util.FormatError('Unsupported ShadingType: ' + type);
}
} catch (ex) {
- if (ex instanceof _util.MissingDataException) {
+ if (ex instanceof _core_utils.MissingDataException) {
throw ex;
}
@@ -48318,6 +49126,14 @@ Shadings.RadialAxial = function RadialAxialClosure() {
var cs = dict.get('ColorSpace', 'CS');
cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);
this.cs = cs;
+ var bbox = dict.getArray('BBox');
+
+ if (Array.isArray(bbox) && bbox.length === 4) {
+ this.bbox = _util.Util.normalizeRect(bbox);
+ } else {
+ this.bbox = null;
+ }
+
var t0 = 0.0,
t1 = 1.0;
@@ -48354,8 +49170,8 @@ Shadings.RadialAxial = function RadialAxialClosure() {
this.extendEnd = extendEnd;
var fnObj = dict.get('Function');
var fn = pdfFunctionFactory.createFromArray(fnObj);
- var diff = t1 - t0;
- var step = diff / 10;
+ var NUMBER_OF_SAMPLES = 10;
+ var step = (t1 - t0) / NUMBER_OF_SAMPLES;
var colorStops = this.colorStops = [];
if (t0 >= t1 || step <= 0) {
@@ -48367,14 +49183,14 @@ Shadings.RadialAxial = function RadialAxialClosure() {
ratio = new Float32Array(1);
var rgbColor;
- for (var i = t0; i <= t1; i += step) {
- ratio[0] = i;
+ for (var i = 0; i <= NUMBER_OF_SAMPLES; i++) {
+ ratio[0] = t0 + i * step;
fn(ratio, 0, color, 0);
rgbColor = cs.getRgb(color, 0);
var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);
- colorStops.push([(i - t0) / diff, cssColor]);
+ colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);
}
var background = 'transparent';
@@ -48433,7 +49249,7 @@ Shadings.RadialAxial = function RadialAxialClosure() {
}
}
- return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];
+ return ['RadialAxial', type, this.bbox, this.colorStops, p0, p1, r0, r1];
}
};
return RadialAxial;
@@ -49050,7 +49866,14 @@ Shadings.Mesh = function MeshClosure() {
this.matrix = matrix;
this.shadingType = dict.get('ShadingType');
this.type = 'Pattern';
- this.bbox = dict.getArray('BBox');
+ var bbox = dict.getArray('BBox');
+
+ if (Array.isArray(bbox) && bbox.length === 4) {
+ this.bbox = _util.Util.normalizeRect(bbox);
+ } else {
+ this.bbox = null;
+ }
+
var cs = dict.get('ColorSpace', 'CS');
cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);
this.cs = cs;
@@ -49153,7 +49976,7 @@ function getTilingPatternIR(operatorList, dict, args) {
}
/***/ }),
-/* 183 */
+/* 216 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -49164,7 +49987,7 @@ Object.defineProperty(exports, "__esModule", {
});
exports.bidi = bidi;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
var baseTypes = ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'ON', 'ES', 'CS', 'ES', 'CS', 'CS', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'CS', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'BN', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'];
var arabicTypes = ['AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ON', 'ON', 'AL', 'ET', 'ET', 'AL', 'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', '', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'NSM', 'NSM', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'];
@@ -49457,7 +50280,7 @@ function bidi(str, startLevel, vertical) {
}
/***/ }),
-/* 184 */
+/* 217 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -49468,14 +50291,14 @@ Object.defineProperty(exports, "__esModule", {
});
exports.getMetrics = void 0;
-var _util = __w_pdfjs_require__(6);
+var _core_utils = __w_pdfjs_require__(186);
-var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
+var getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {
t['Courier'] = 600;
t['Courier-Bold'] = 600;
t['Courier-BoldOblique'] = 600;
t['Courier-Oblique'] = 600;
- t['Helvetica'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['Helvetica'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 278;
t['exclam'] = 278;
t['quotedbl'] = 355;
@@ -49792,7 +50615,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
t['imacron'] = 278;
t['Euro'] = 556;
});
- t['Helvetica-Bold'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['Helvetica-Bold'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 278;
t['exclam'] = 333;
t['quotedbl'] = 474;
@@ -50109,7 +50932,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
t['imacron'] = 278;
t['Euro'] = 556;
});
- t['Helvetica-BoldOblique'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['Helvetica-BoldOblique'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 278;
t['exclam'] = 333;
t['quotedbl'] = 474;
@@ -50426,7 +51249,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
t['imacron'] = 278;
t['Euro'] = 556;
});
- t['Helvetica-Oblique'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['Helvetica-Oblique'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 278;
t['exclam'] = 278;
t['quotedbl'] = 355;
@@ -50743,7 +51566,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
t['imacron'] = 278;
t['Euro'] = 556;
});
- t['Symbol'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['Symbol'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 250;
t['exclam'] = 333;
t['universal'] = 713;
@@ -50935,7 +51758,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
t['bracerightbt'] = 494;
t['apple'] = 790;
});
- t['Times-Roman'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['Times-Roman'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 250;
t['exclam'] = 333;
t['quotedbl'] = 408;
@@ -51252,7 +52075,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
t['imacron'] = 278;
t['Euro'] = 500;
});
- t['Times-Bold'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['Times-Bold'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 250;
t['exclam'] = 333;
t['quotedbl'] = 555;
@@ -51569,7 +52392,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
t['imacron'] = 278;
t['Euro'] = 500;
});
- t['Times-BoldItalic'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['Times-BoldItalic'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 250;
t['exclam'] = 389;
t['quotedbl'] = 555;
@@ -51886,7 +52709,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
t['imacron'] = 278;
t['Euro'] = 500;
});
- t['Times-Italic'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['Times-Italic'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 250;
t['exclam'] = 333;
t['quotedbl'] = 420;
@@ -52203,7 +53026,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
t['imacron'] = 278;
t['Euro'] = 500;
});
- t['ZapfDingbats'] = (0, _util.getLookupTableFactory)(function (t) {
+ t['ZapfDingbats'] = (0, _core_utils.getLookupTableFactory)(function (t) {
t['space'] = 278;
t['a1'] = 974;
t['a2'] = 961;
@@ -52411,7 +53234,7 @@ var getMetrics = (0, _util.getLookupTableFactory)(function (t) {
exports.getMetrics = getMetrics;
/***/ }),
-/* 185 */
+/* 218 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -52423,11 +53246,11 @@ Object.defineProperty(exports, "__esModule", {
exports.isPDFFunction = isPDFFunction;
exports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFactory = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
-var _ps_parser = __w_pdfjs_require__(186);
+var _ps_parser = __w_pdfjs_require__(219);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -53758,7 +54581,7 @@ var PostScriptCompiler = function PostScriptCompilerClosure() {
exports.PostScriptCompiler = PostScriptCompiler;
/***/ }),
-/* 186 */
+/* 219 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -53769,9 +54592,9 @@ Object.defineProperty(exports, "__esModule", {
});
exports.PostScriptParser = exports.PostScriptLexer = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -54051,7 +54874,7 @@ function () {
exports.PostScriptLexer = PostScriptLexer;
/***/ }),
-/* 187 */
+/* 220 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -54062,20 +54885,31 @@ Object.defineProperty(exports, "__esModule", {
});
exports.MurmurHash3_64 = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var MurmurHash3_64 = function MurmurHash3_64Closure(seed) {
- var MASK_HIGH = 0xffff0000;
- var MASK_LOW = 0xffff;
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
+
+var SEED = 0xc3d2e1f0;
+var MASK_HIGH = 0xffff0000;
+var MASK_LOW = 0xffff;
+
+var MurmurHash3_64 =
+/*#__PURE__*/
+function () {
function MurmurHash3_64(seed) {
- var SEED = 0xc3d2e1f0;
+ _classCallCheck(this, MurmurHash3_64);
+
this.h1 = seed ? seed & 0xffffffff : SEED;
this.h2 = seed ? seed & 0xffffffff : SEED;
}
- MurmurHash3_64.prototype = {
- update: function MurmurHash3_64_update(input) {
+ _createClass(MurmurHash3_64, [{
+ key: "update",
+ value: function update(input) {
var data, length;
if ((0, _util.isString)(input)) {
@@ -54102,14 +54936,14 @@ var MurmurHash3_64 = function MurmurHash3_64Closure(seed) {
var blockCounts = length >> 2;
var tailLength = length - blockCounts * 4;
var dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);
- var k1 = 0;
- var k2 = 0;
- var h1 = this.h1;
- var h2 = this.h2;
- var C1 = 0xcc9e2d51;
- var C2 = 0x1b873593;
- var C1_LOW = C1 & MASK_LOW;
- var C2_LOW = C2 & MASK_LOW;
+ var k1 = 0,
+ k2 = 0;
+ var h1 = this.h1,
+ h2 = this.h2;
+ var C1 = 0xcc9e2d51,
+ C2 = 0x1b873593;
+ var C1_LOW = C1 & MASK_LOW,
+ C2_LOW = C2 & MASK_LOW;
for (var _i = 0; _i < blockCounts; _i++) {
if (_i & 1) {
@@ -54156,11 +54990,12 @@ var MurmurHash3_64 = function MurmurHash3_64Closure(seed) {
this.h1 = h1;
this.h2 = h2;
- return this;
- },
- hexdigest: function MurmurHash3_64_hexdigest() {
- var h1 = this.h1;
- var h2 = this.h2;
+ }
+ }, {
+ key: "hexdigest",
+ value: function hexdigest() {
+ var h1 = this.h1,
+ h2 = this.h2;
h1 ^= h2 >>> 1;
h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;
h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;
@@ -54168,27 +55003,115 @@ var MurmurHash3_64 = function MurmurHash3_64Closure(seed) {
h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;
h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;
h1 ^= h2 >>> 1;
+ var hex1 = (h1 >>> 0).toString(16),
+ hex2 = (h2 >>> 0).toString(16);
+ return hex1.padStart(8, '0') + hex2.padStart(8, '0');
+ }
+ }]);
- for (var i = 0, arr = [h1, h2], str = ''; i < arr.length; i++) {
- var hex = (arr[i] >>> 0).toString(16);
+ return MurmurHash3_64;
+}();
- while (hex.length < 8) {
- hex = '0' + hex;
- }
+exports.MurmurHash3_64 = MurmurHash3_64;
- str += hex;
+/***/ }),
+/* 221 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.NativeImageDecoder = void 0;
+
+var _colorspace = __w_pdfjs_require__(201);
+
+var _jpeg_stream = __w_pdfjs_require__(196);
+
+var _stream = __w_pdfjs_require__(190);
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
+
+var NativeImageDecoder =
+/*#__PURE__*/
+function () {
+ function NativeImageDecoder(_ref) {
+ var xref = _ref.xref,
+ resources = _ref.resources,
+ handler = _ref.handler,
+ _ref$forceDataSchema = _ref.forceDataSchema,
+ forceDataSchema = _ref$forceDataSchema === void 0 ? false : _ref$forceDataSchema,
+ pdfFunctionFactory = _ref.pdfFunctionFactory;
+
+ _classCallCheck(this, NativeImageDecoder);
+
+ this.xref = xref;
+ this.resources = resources;
+ this.handler = handler;
+ this.forceDataSchema = forceDataSchema;
+ this.pdfFunctionFactory = pdfFunctionFactory;
+ }
+
+ _createClass(NativeImageDecoder, [{
+ key: "canDecode",
+ value: function canDecode(image) {
+ return image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources, this.pdfFunctionFactory);
+ }
+ }, {
+ key: "decode",
+ value: function decode(image) {
+ var dict = image.dict;
+ var colorSpace = dict.get('ColorSpace', 'CS');
+ colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources, this.pdfFunctionFactory);
+ return this.handler.sendWithPromise('JpegDecode', [image.getIR(this.forceDataSchema), colorSpace.numComps]).then(function (_ref2) {
+ var data = _ref2.data,
+ width = _ref2.width,
+ height = _ref2.height;
+ return new _stream.Stream(data, 0, data.length, dict);
+ });
+ }
+ }], [{
+ key: "isSupported",
+ value: function isSupported(image, xref, res, pdfFunctionFactory) {
+ var dict = image.dict;
+
+ if (dict.has('DecodeParms') || dict.has('DP')) {
+ return false;
}
- return str;
+ var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);
+
+ return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D'));
}
- };
- return MurmurHash3_64;
+ }, {
+ key: "isDecodable",
+ value: function isDecodable(image, xref, res, pdfFunctionFactory) {
+ var dict = image.dict;
+
+ if (dict.has('DecodeParms') || dict.has('DP')) {
+ return false;
+ }
+
+ var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);
+
+ var bpc = dict.get('BitsPerComponent', 'BPC') || 1;
+ return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D'), bpc);
+ }
+ }]);
+
+ return NativeImageDecoder;
}();
-exports.MurmurHash3_64 = MurmurHash3_64;
+exports.NativeImageDecoder = NativeImageDecoder;
/***/ }),
-/* 188 */
+/* 222 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -54199,30 +55122,30 @@ Object.defineProperty(exports, "__esModule", {
});
exports.PDFImage = void 0;
-var _util = __w_pdfjs_require__(6);
+var _util = __w_pdfjs_require__(5);
-var _primitives = __w_pdfjs_require__(155);
+var _primitives = __w_pdfjs_require__(183);
-var _colorspace = __w_pdfjs_require__(168);
+var _colorspace = __w_pdfjs_require__(201);
-var _stream = __w_pdfjs_require__(157);
+var _stream = __w_pdfjs_require__(190);
-var _jpeg_stream = __w_pdfjs_require__(163);
+var _jpeg_stream = __w_pdfjs_require__(196);
-var _jpx = __w_pdfjs_require__(166);
+var _jpx = __w_pdfjs_require__(199);
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
-function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var PDFImage = function PDFImageClosure() {
function handleImageData(image, nativeDecoder) {
if (nativeDecoder && nativeDecoder.canDecode(image)) {
- return nativeDecoder.decode(image).catch(function (reason) {
+ return nativeDecoder.decode(image)["catch"](function (reason) {
(0, _util.warn)('Native image decoding failed -- trying to recover: ' + (reason && reason.message));
return image;
});
@@ -54859,7 +55782,7 @@ var PDFImage = function PDFImageClosure() {
exports.PDFImage = PDFImage;
/***/ }),
-/* 189 */
+/* 223 */
/***/ (function(module, exports, __w_pdfjs_require__) {
"use strict";
@@ -54870,53 +55793,21 @@ Object.defineProperty(exports, "__esModule", {
});
exports.MessageHandler = MessageHandler;
-var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));
-
-var _util = __w_pdfjs_require__(6);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+var _util = __w_pdfjs_require__(5);
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
-
-function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
-
-function resolveCall(_x, _x2) {
- return _resolveCall.apply(this, arguments);
-}
-
-function _resolveCall() {
- _resolveCall = _asyncToGenerator(
- /*#__PURE__*/
- _regenerator.default.mark(function _callee(fn, args) {
- var thisArg,
- _args = arguments;
- return _regenerator.default.wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null;
-
- if (fn) {
- _context.next = 3;
- break;
- }
-
- return _context.abrupt("return");
-
- case 3:
- return _context.abrupt("return", fn.apply(thisArg, args));
-
- case 4:
- case "end":
- return _context.stop();
- }
- }
- }, _callee, this);
- }));
- return _resolveCall.apply(this, arguments);
-}
+var StreamKind = {
+ UNKNOWN: 0,
+ CANCEL: 1,
+ CANCEL_COMPLETE: 2,
+ CLOSE: 3,
+ ENQUEUE: 4,
+ ERROR: 5,
+ PULL: 6,
+ PULL_COMPLETE: 7,
+ START_COMPLETE: 8
+};
function wrapReason(reason) {
if (_typeof(reason) !== 'object') {
@@ -54933,31 +55824,14 @@ function wrapReason(reason) {
case 'UnexpectedResponseException':
return new _util.UnexpectedResponseException(reason.message, reason.status);
- default:
+ case 'UnknownErrorException':
return new _util.UnknownErrorException(reason.message, reason.details);
- }
-}
-function makeReasonSerializable(reason) {
- if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) {
- return reason;
- }
-
- return new _util.UnknownErrorException(reason.message, reason.toString());
-}
-
-function resolveOrReject(capability, success, reason) {
- if (success) {
- capability.resolve();
- } else {
- capability.reject(reason);
+ default:
+ return new _util.UnknownErrorException(reason.message, reason.toString());
}
}
-function finalize(promise) {
- return Promise.resolve(promise).catch(function () {});
-}
-
function MessageHandler(sourceName, targetName, comObj) {
var _this = this;
@@ -54988,8 +55862,8 @@ function MessageHandler(sourceName, targetName, comObj) {
var callback = callbacksCapabilities[callbackId];
delete callbacksCapabilities[callbackId];
- if ('error' in data) {
- callback.reject(wrapReason(data.error));
+ if ('reason' in data) {
+ callback.reject(wrapReason(data.reason));
} else {
callback.resolve(data.data);
}
@@ -55002,8 +55876,8 @@ function MessageHandler(sourceName, targetName, comObj) {
if (data.callbackId) {
var _sourceName = _this.sourceName;
var _targetName = data.sourceName;
- Promise.resolve().then(function () {
- return action[0].call(action[1], data.data);
+ new Promise(function (resolve) {
+ resolve(action(data.data));
}).then(function (result) {
comObj.postMessage({
sourceName: _sourceName,
@@ -55018,13 +55892,13 @@ function MessageHandler(sourceName, targetName, comObj) {
targetName: _targetName,
isReply: true,
callbackId: data.callbackId,
- error: makeReasonSerializable(reason)
+ reason: wrapReason(reason)
});
});
} else if (data.streamId) {
_this._createStreamSink(data);
} else {
- action[0].call(action[1], data.data);
+ action(data.data);
}
} else {
throw new Error("Unknown action from worker: ".concat(data.action));
@@ -55035,40 +55909,38 @@ function MessageHandler(sourceName, targetName, comObj) {
}
MessageHandler.prototype = {
- on: function on(actionName, handler, scope) {
+ on: function on(actionName, handler) {
var ah = this.actionHandler;
if (ah[actionName]) {
throw new Error("There is already an actionName called \"".concat(actionName, "\""));
}
- ah[actionName] = [handler, scope];
+ ah[actionName] = handler;
},
send: function send(actionName, data, transfers) {
- var message = {
+ this.postMessage({
sourceName: this.sourceName,
targetName: this.targetName,
action: actionName,
data: data
- };
- this.postMessage(message, transfers);
+ }, transfers);
},
sendWithPromise: function sendWithPromise(actionName, data, transfers) {
var callbackId = this.callbackId++;
- var message = {
- sourceName: this.sourceName,
- targetName: this.targetName,
- action: actionName,
- data: data,
- callbackId: callbackId
- };
var capability = (0, _util.createPromiseCapability)();
this.callbacksCapabilities[callbackId] = capability;
try {
- this.postMessage(message, transfers);
- } catch (e) {
- capability.reject(e);
+ this.postMessage({
+ sourceName: this.sourceName,
+ targetName: this.targetName,
+ action: actionName,
+ callbackId: callbackId,
+ data: data
+ }, transfers);
+ } catch (ex) {
+ capability.reject(ex);
}
return capability.promise;
@@ -55079,12 +55951,15 @@ MessageHandler.prototype = {
var streamId = this.streamId++;
var sourceName = this.sourceName;
var targetName = this.targetName;
+ var comObj = this.comObj;
return new _util.ReadableStream({
start: function start(controller) {
var startCapability = (0, _util.createPromiseCapability)();
_this2.streamControllers[streamId] = {
controller: controller,
startCall: startCapability,
+ pullCall: null,
+ cancelCall: null,
isClosed: false
};
@@ -55095,44 +55970,39 @@ MessageHandler.prototype = {
streamId: streamId,
data: data,
desiredSize: controller.desiredSize
- });
+ }, transfers);
return startCapability.promise;
},
pull: function pull(controller) {
var pullCapability = (0, _util.createPromiseCapability)();
_this2.streamControllers[streamId].pullCall = pullCapability;
-
- _this2.postMessage({
+ comObj.postMessage({
sourceName: sourceName,
targetName: targetName,
- stream: 'pull',
+ stream: StreamKind.PULL,
streamId: streamId,
desiredSize: controller.desiredSize
});
-
return pullCapability.promise;
},
cancel: function cancel(reason) {
+ (0, _util.assert)(reason instanceof Error, 'cancel must have a valid reason');
var cancelCapability = (0, _util.createPromiseCapability)();
_this2.streamControllers[streamId].cancelCall = cancelCapability;
_this2.streamControllers[streamId].isClosed = true;
-
- _this2.postMessage({
+ comObj.postMessage({
sourceName: sourceName,
targetName: targetName,
- stream: 'cancel',
- reason: reason,
- streamId: streamId
+ stream: StreamKind.CANCEL,
+ streamId: streamId,
+ reason: wrapReason(reason)
});
-
return cancelCapability.promise;
}
}, queueingStrategy);
},
_createStreamSink: function _createStreamSink(data) {
- var _this3 = this;
-
var self = this;
var action = this.actionHandler[data.action];
var streamId = data.streamId;
@@ -55140,25 +56010,7 @@ MessageHandler.prototype = {
var sourceName = this.sourceName;
var targetName = data.sourceName;
var capability = (0, _util.createPromiseCapability)();
-
- var sendStreamRequest = function sendStreamRequest(_ref) {
- var stream = _ref.stream,
- chunk = _ref.chunk,
- transfers = _ref.transfers,
- success = _ref.success,
- reason = _ref.reason;
-
- _this3.postMessage({
- sourceName: sourceName,
- targetName: targetName,
- stream: stream,
- streamId: streamId,
- chunk: chunk,
- success: success,
- reason: reason
- }, transfers);
- };
-
+ var comObj = this.comObj;
var streamSink = {
enqueue: function enqueue(chunk) {
var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
@@ -55176,11 +56028,13 @@ MessageHandler.prototype = {
this.ready = this.sinkCapability.promise;
}
- sendStreamRequest({
- stream: 'enqueue',
- chunk: chunk,
- transfers: transfers
- });
+ self.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.ENQUEUE,
+ streamId: streamId,
+ chunk: chunk
+ }, transfers);
},
close: function close() {
if (this.isCancelled) {
@@ -55188,20 +56042,28 @@ MessageHandler.prototype = {
}
this.isCancelled = true;
- sendStreamRequest({
- stream: 'close'
+ comObj.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.CLOSE,
+ streamId: streamId
});
delete self.streamSinks[streamId];
},
error: function error(reason) {
+ (0, _util.assert)(reason instanceof Error, 'error must have a valid reason');
+
if (this.isCancelled) {
return;
}
this.isCancelled = true;
- sendStreamRequest({
- stream: 'error',
- reason: reason
+ comObj.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.ERROR,
+ streamId: streamId,
+ reason: wrapReason(reason)
});
},
sinkCapability: capability,
@@ -55214,138 +56076,166 @@ MessageHandler.prototype = {
streamSink.sinkCapability.resolve();
streamSink.ready = streamSink.sinkCapability.promise;
this.streamSinks[streamId] = streamSink;
- resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {
- sendStreamRequest({
- stream: 'start_complete',
+ new Promise(function (resolve) {
+ resolve(action(data.data, streamSink));
+ }).then(function () {
+ comObj.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.START_COMPLETE,
+ streamId: streamId,
success: true
});
}, function (reason) {
- sendStreamRequest({
- stream: 'start_complete',
- success: false,
- reason: reason
+ comObj.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.START_COMPLETE,
+ streamId: streamId,
+ reason: wrapReason(reason)
});
});
},
_processStreamMessage: function _processStreamMessage(data) {
- var _this4 = this;
+ var _this3 = this;
var sourceName = this.sourceName;
var targetName = data.sourceName;
var streamId = data.streamId;
-
- var sendStreamResponse = function sendStreamResponse(_ref2) {
- var stream = _ref2.stream,
- success = _ref2.success,
- reason = _ref2.reason;
-
- _this4.comObj.postMessage({
- sourceName: sourceName,
- targetName: targetName,
- stream: stream,
- success: success,
- streamId: streamId,
- reason: reason
- });
- };
+ var comObj = this.comObj;
var deleteStreamController = function deleteStreamController() {
- Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {
- return capability && finalize(capability.promise);
+ Promise.all([_this3.streamControllers[streamId].startCall, _this3.streamControllers[streamId].pullCall, _this3.streamControllers[streamId].cancelCall].map(function (capability) {
+ return capability && capability.promise["catch"](function () {});
})).then(function () {
- delete _this4.streamControllers[data.streamId];
+ delete _this3.streamControllers[streamId];
});
};
switch (data.stream) {
- case 'start_complete':
- resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));
+ case StreamKind.START_COMPLETE:
+ if (data.success) {
+ this.streamControllers[streamId].startCall.resolve();
+ } else {
+ this.streamControllers[streamId].startCall.reject(wrapReason(data.reason));
+ }
+
break;
- case 'pull_complete':
- resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));
+ case StreamKind.PULL_COMPLETE:
+ if (data.success) {
+ this.streamControllers[streamId].pullCall.resolve();
+ } else {
+ this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));
+ }
+
break;
- case 'pull':
- if (!this.streamSinks[data.streamId]) {
- sendStreamResponse({
- stream: 'pull_complete',
+ case StreamKind.PULL:
+ if (!this.streamSinks[streamId]) {
+ comObj.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.PULL_COMPLETE,
+ streamId: streamId,
success: true
});
break;
}
- if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {
- this.streamSinks[data.streamId].sinkCapability.resolve();
+ if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {
+ this.streamSinks[streamId].sinkCapability.resolve();
}
- this.streamSinks[data.streamId].desiredSize = data.desiredSize;
- resolveCall(this.streamSinks[data.streamId].onPull).then(function () {
- sendStreamResponse({
- stream: 'pull_complete',
+ this.streamSinks[streamId].desiredSize = data.desiredSize;
+ var onPull = this.streamSinks[data.streamId].onPull;
+ new Promise(function (resolve) {
+ resolve(onPull && onPull());
+ }).then(function () {
+ comObj.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.PULL_COMPLETE,
+ streamId: streamId,
success: true
});
}, function (reason) {
- sendStreamResponse({
- stream: 'pull_complete',
- success: false,
- reason: reason
+ comObj.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.PULL_COMPLETE,
+ streamId: streamId,
+ reason: wrapReason(reason)
});
});
break;
- case 'enqueue':
- (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');
+ case StreamKind.ENQUEUE:
+ (0, _util.assert)(this.streamControllers[streamId], 'enqueue should have stream controller');
- if (!this.streamControllers[data.streamId].isClosed) {
- this.streamControllers[data.streamId].controller.enqueue(data.chunk);
+ if (this.streamControllers[streamId].isClosed) {
+ break;
}
+ this.streamControllers[streamId].controller.enqueue(data.chunk);
break;
- case 'close':
- (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');
+ case StreamKind.CLOSE:
+ (0, _util.assert)(this.streamControllers[streamId], 'close should have stream controller');
- if (this.streamControllers[data.streamId].isClosed) {
+ if (this.streamControllers[streamId].isClosed) {
break;
}
- this.streamControllers[data.streamId].isClosed = true;
- this.streamControllers[data.streamId].controller.close();
+ this.streamControllers[streamId].isClosed = true;
+ this.streamControllers[streamId].controller.close();
deleteStreamController();
break;
- case 'error':
- (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller');
- this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));
+ case StreamKind.ERROR:
+ (0, _util.assert)(this.streamControllers[streamId], 'error should have stream controller');
+ this.streamControllers[streamId].controller.error(wrapReason(data.reason));
deleteStreamController();
break;
- case 'cancel_complete':
- resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));
+ case StreamKind.CANCEL_COMPLETE:
+ if (data.success) {
+ this.streamControllers[streamId].cancelCall.resolve();
+ } else {
+ this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));
+ }
+
deleteStreamController();
break;
- case 'cancel':
- if (!this.streamSinks[data.streamId]) {
+ case StreamKind.CANCEL:
+ if (!this.streamSinks[streamId]) {
break;
}
- resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {
- sendStreamResponse({
- stream: 'cancel_complete',
+ var onCancel = this.streamSinks[data.streamId].onCancel;
+ new Promise(function (resolve) {
+ resolve(onCancel && onCancel(wrapReason(data.reason)));
+ }).then(function () {
+ comObj.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.CANCEL_COMPLETE,
+ streamId: streamId,
success: true
});
}, function (reason) {
- sendStreamResponse({
- stream: 'cancel_complete',
- success: false,
- reason: reason
+ comObj.postMessage({
+ sourceName: sourceName,
+ targetName: targetName,
+ stream: StreamKind.CANCEL_COMPLETE,
+ streamId: streamId,
+ reason: wrapReason(reason)
});
});
- this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));
- this.streamSinks[data.streamId].isCancelled = true;
- delete this.streamSinks[data.streamId];
+ this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));
+ this.streamSinks[streamId].isCancelled = true;
+ delete this.streamSinks[streamId];
break;
default:
@@ -55364,6 +56254,268 @@ MessageHandler.prototype = {
}
};
+/***/ }),
+/* 224 */
+/***/ (function(module, exports, __w_pdfjs_require__) {
+
+"use strict";
+
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.PDFWorkerStream = void 0;
+
+var _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));
+
+var _util = __w_pdfjs_require__(5);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+
+function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
+
+var PDFWorkerStream =
+/*#__PURE__*/
+function () {
+ function PDFWorkerStream(msgHandler) {
+ _classCallCheck(this, PDFWorkerStream);
+
+ this._msgHandler = msgHandler;
+ this._contentLength = null;
+ this._fullRequestReader = null;
+ this._rangeRequestReaders = [];
+ }
+
+ _createClass(PDFWorkerStream, [{
+ key: "getFullReader",
+ value: function getFullReader() {
+ (0, _util.assert)(!this._fullRequestReader);
+ this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);
+ return this._fullRequestReader;
+ }
+ }, {
+ key: "getRangeReader",
+ value: function getRangeReader(begin, end) {
+ var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);
+
+ this._rangeRequestReaders.push(reader);
+
+ return reader;
+ }
+ }, {
+ key: "cancelAllRequests",
+ value: function cancelAllRequests(reason) {
+ if (this._fullRequestReader) {
+ this._fullRequestReader.cancel(reason);
+ }
+
+ var readers = this._rangeRequestReaders.slice(0);
+
+ readers.forEach(function (reader) {
+ reader.cancel(reason);
+ });
+ }
+ }]);
+
+ return PDFWorkerStream;
+}();
+
+exports.PDFWorkerStream = PDFWorkerStream;
+
+var PDFWorkerStreamReader =
+/*#__PURE__*/
+function () {
+ function PDFWorkerStreamReader(msgHandler) {
+ var _this = this;
+
+ _classCallCheck(this, PDFWorkerStreamReader);
+
+ this._msgHandler = msgHandler;
+ this.onProgress = null;
+ this._contentLength = null;
+ this._isRangeSupported = false;
+ this._isStreamingSupported = false;
+
+ var readableStream = this._msgHandler.sendWithStream('GetReader');
+
+ this._reader = readableStream.getReader();
+ this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {
+ _this._isStreamingSupported = data.isStreamingSupported;
+ _this._isRangeSupported = data.isRangeSupported;
+ _this._contentLength = data.contentLength;
+ });
+ }
+
+ _createClass(PDFWorkerStreamReader, [{
+ key: "read",
+ value: function () {
+ var _read = _asyncToGenerator(
+ /*#__PURE__*/
+ _regenerator["default"].mark(function _callee() {
+ var _ref, value, done;
+
+ return _regenerator["default"].wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ _context.next = 2;
+ return this._reader.read();
+
+ case 2:
+ _ref = _context.sent;
+ value = _ref.value;
+ done = _ref.done;
+
+ if (!done) {
+ _context.next = 7;
+ break;
+ }
+
+ return _context.abrupt("return", {
+ value: undefined,
+ done: true
+ });
+
+ case 7:
+ return _context.abrupt("return", {
+ value: value.buffer,
+ done: false
+ });
+
+ case 8:
+ case "end":
+ return _context.stop();
+ }
+ }
+ }, _callee, this);
+ }));
+
+ function read() {
+ return _read.apply(this, arguments);
+ }
+
+ return read;
+ }()
+ }, {
+ key: "cancel",
+ value: function cancel(reason) {
+ this._reader.cancel(reason);
+ }
+ }, {
+ key: "headersReady",
+ get: function get() {
+ return this._headersReady;
+ }
+ }, {
+ key: "contentLength",
+ get: function get() {
+ return this._contentLength;
+ }
+ }, {
+ key: "isStreamingSupported",
+ get: function get() {
+ return this._isStreamingSupported;
+ }
+ }, {
+ key: "isRangeSupported",
+ get: function get() {
+ return this._isRangeSupported;
+ }
+ }]);
+
+ return PDFWorkerStreamReader;
+}();
+
+var PDFWorkerStreamRangeReader =
+/*#__PURE__*/
+function () {
+ function PDFWorkerStreamRangeReader(begin, end, msgHandler) {
+ _classCallCheck(this, PDFWorkerStreamRangeReader);
+
+ this._msgHandler = msgHandler;
+ this.onProgress = null;
+
+ var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {
+ begin: begin,
+ end: end
+ });
+
+ this._reader = readableStream.getReader();
+ }
+
+ _createClass(PDFWorkerStreamRangeReader, [{
+ key: "read",
+ value: function () {
+ var _read2 = _asyncToGenerator(
+ /*#__PURE__*/
+ _regenerator["default"].mark(function _callee2() {
+ var _ref2, value, done;
+
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
+ while (1) {
+ switch (_context2.prev = _context2.next) {
+ case 0:
+ _context2.next = 2;
+ return this._reader.read();
+
+ case 2:
+ _ref2 = _context2.sent;
+ value = _ref2.value;
+ done = _ref2.done;
+
+ if (!done) {
+ _context2.next = 7;
+ break;
+ }
+
+ return _context2.abrupt("return", {
+ value: undefined,
+ done: true
+ });
+
+ case 7:
+ return _context2.abrupt("return", {
+ value: value.buffer,
+ done: false
+ });
+
+ case 8:
+ case "end":
+ return _context2.stop();
+ }
+ }
+ }, _callee2, this);
+ }));
+
+ function read() {
+ return _read2.apply(this, arguments);
+ }
+
+ return read;
+ }()
+ }, {
+ key: "cancel",
+ value: function cancel(reason) {
+ this._reader.cancel(reason);
+ }
+ }, {
+ key: "isStreamingSupported",
+ get: function get() {
+ return false;
+ }
+ }]);
+
+ return PDFWorkerStreamRangeReader;
+}();
+
/***/ })
/******/ ]);
});
diff --git a/deploy/assets/redx.png b/deploy/assets/redx.png
new file mode 100644
index 000000000..0c2c9ccc5
--- /dev/null
+++ b/deploy/assets/redx.png
Binary files differ
diff --git a/log.err b/log.err
deleted file mode 100644
index 95e6a69b3..000000000
--- a/log.err
+++ /dev/null
@@ -1,10 +0,0 @@
-npm ERR! code ELIFECYCLE
-npm ERR! errno 1
-npm ERR! dash@1.0.0 start: `ts-node-dev -- src/server/index.ts`
-npm ERR! Exit status 1
-npm ERR!
-npm ERR! Failed at the dash@1.0.0 start script.
-npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
-
-npm ERR! A complete log of this run can be found in:
-npm ERR! C:\Users\dash\AppData\Roaming\npm-cache\_logs\2019-05-20T17_43_29_948Z-debug.log
diff --git a/log.txt b/log.txt
deleted file mode 100644
index 6476c26ec..000000000
--- a/log.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-
-> dash@1.0.0 start C:\Users\dash\Documents\Dash-Web
-> ts-node-dev -- src/server/index.ts
-
-Using ts-node version 7.0.1, typescript version 3.4.1
diff --git a/output.log b/output.log
deleted file mode 100644
index 89aef071b..000000000
--- a/output.log
+++ /dev/null
@@ -1,37908 +0,0 @@
-
-> dash@1.0.0 start C:\Users\dash\Documents\Dash-Web
-> nodemon --watch src/server/**/*.ts --exec ts-node src/server/index.ts
-
-[nodemon] 1.18.10
-[nodemon] to restart at any time, enter `rs`
-[nodemon] watching: src/server/**/*.ts
-[nodemon] starting `ts-node src/server/index.ts`
-listening on port 4321
-server started at http://localhost:1050
-i 「atl」: Using typescript@3.3.3333 from typescript
-i 「atl」: Using tsconfig.json from C:/Users/dash/Documents/Dash-Web/tsconfig.json
-a user has connected
-a user has connected
-a user has connected
-a user has connected
-Stablished connection on mongodb://localhost:27017/Dash
-connected
-a user has connected
-i 「wdm」: wait until bundle finished: /__webpack_hmr
-a user has connected
-i 「wdm」: wait until bundle finished: /__webpack_hmr
-i 「wdm」: wait until bundle finished: /__webpack_hmr
-i 「atl」: Checking started in a separate process...
-i 「atl」: Time: 12434ms
-a user has connected
-a user has connected
-a user has connected
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-webpack built b863fe8bf49137e98490 in 55923ms
-i 「wdm」: Hash: b863fe8bf49137e98490
-Version: webpack 4.29.6
-Time: 55923ms
-Built at: 03/22/2019 9:55:12 AM
- Asset Size Chunks  Chunk Names
-275711e56bd1bc79fdff544a3d7dbfae.png 289 bytes  [emitted]
-718c914a99a2136c01c84e01f63e505a.png 829 bytes  [emitted]
-906f1a1816c2a03b5c7612f6aa2ceece.png 281 bytes  [emitted]
- assets/env.json 374 bytes  [emitted]
- bundle.js 8.94 MiB bundle [emitted] bundle
- bundle.js.map 9.8 MiB bundle [emitted] bundle
- debug/test.html 257 bytes  [emitted]
- debug/viewer.html 267 bytes  [emitted]
-e7a34b49f3c49ca0c25c76b30cd09e12.png 445 bytes  [emitted]
- imageUpload.js 8.9 MiB imageUpload [emitted] imageUpload
- imageUpload.js.map 9.75 MiB imageUpload [emitted] imageUpload
- index.html 566 bytes  [emitted]
- inkControls.js 116 KiB inkControls [emitted] inkControls
- inkControls.js.map 122 KiB inkControls [emitted] inkControls
- mobile/image.html 347 bytes  [emitted]
- mobile/ink.html 264 bytes  [emitted]
- test.js 1.07 MiB test [emitted] test
- test.js.map 1.23 MiB test [emitted] test
- test.pdf 53.6 KiB  [emitted]
- vendors~pdfjsWorker.js 1.55 MiB vendors~pdfjsWorker [emitted] vendors~pdfjsWorker
- vendors~pdfjsWorker.js.map 1.87 MiB vendors~pdfjsWorker [emitted] vendors~pdfjsWorker
- viewer.js 1.68 MiB viewer [emitted] viewer
- viewer.js.map 1.94 MiB viewer [emitted] viewer
-Entrypoint bundle = bundle.js bundle.js.map
-Entrypoint viewer = viewer.js viewer.js.map
-Entrypoint test = test.js test.js.map
-Entrypoint inkControls = inkControls.js inkControls.js.map
-Entrypoint imageUpload = imageUpload.js imageUpload.js.map
-[10] multi ./src/client/views/Main.tsx webpack-hot-middleware/client?reload=true 40 bytes {bundle} [built]
-[11] multi ./src/debug/Viewer.tsx webpack-hot-middleware/client?reload=true 40 bytes {viewer} [built]
-[12] multi ./src/debug/Test.tsx webpack-hot-middleware/client?reload=true 40 bytes {test} [built]
-[13] multi ./src/mobile/InkControls.tsx webpack-hot-middleware/client?reload=true 40 bytes {inkControls} [built]
-[14] multi ./src/mobile/ImageUpload.tsx webpack-hot-middleware/client?reload=true 40 bytes {imageUpload} [built]
- [./node_modules/@fortawesome/fontawesome-svg-core/index.es.js] 70.8 KiB {bundle} {imageUpload} [built]
- [./node_modules/@fortawesome/free-solid-svg-icons/index.es.js] 646 KiB {bundle} {imageUpload} [built]
- [./node_modules/@fortawesome/react-fontawesome/index.es.js] 12 KiB {bundle} {imageUpload} [built]
- [./node_modules/mobx-react/index.module.js] 48.4 KiB {bundle} {viewer} {imageUpload} [built]
- [./node_modules/webpack-hot-middleware/client.js?reload=true] (webpack)-hot-middleware/client.js?reload=true 7.59 KiB {bundle} {viewer} {test} {inkControls} {imageUpload} [built]
- [./src/client/views/Main.tsx] 25.5 KiB {bundle} [built]
- [./src/debug/Test.tsx] 1.94 KiB {test} [built]
- [./src/debug/Viewer.tsx] 9.56 KiB {viewer} [built]
- [./src/mobile/ImageUpload.tsx] 2.68 KiB {imageUpload} [built]
- [./src/mobile/InkControls.tsx] 15 bytes {inkControls} [built]
- + 1016 hidden modules
-i 「wdm」: Compiled successfully.
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-a user has connected
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -255.0263171264544, 338.7471319592495 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-a user has connected
-calling update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-called update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-calling update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-called update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-calling update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-called update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-calling update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-called update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-calling update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-called update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-calling update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-called update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-calling update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-called update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-calling update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-called update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-calling update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-called update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-calling update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-called update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-calling update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-called update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-calling update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-called update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-calling update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-called update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-calling update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-called update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-calling update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-called update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-calling update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-called update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-calling update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-called update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-calling update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-called update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-calling update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-called update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-calling update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-called update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-calling update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-called update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-calling update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-called update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-calling update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-called update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-calling update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-called update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-calling update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-called update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-calling update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-called update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-calling update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-called update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-calling update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-called update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-calling update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-called update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-calling update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-called update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-calling update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-called update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-calling update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-called update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-calling update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-called update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-calling update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-called update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-calling update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-called update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-calling update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-called update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-calling update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-called update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-calling update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-called update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-calling update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-called update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-calling update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-called update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-calling update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-called update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-calling update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-called update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-calling update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-called update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-Broadcast : 656a768e-c499-426f-b833-e700c9eede64, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-{ _id: '656a768e-c499-426f-b833-e700c9eede64',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 97.6066940435503, 162.00747268125428 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -255.0263171264544, 338.7471319592495 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-Broadcast : 656a768e-c499-426f-b833-e700c9eede64, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-{ _id: '656a768e-c499-426f-b833-e700c9eede64',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 97.6066940435503, 162.00747268125428 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-Broadcast : 656a768e-c499-426f-b833-e700c9eede64, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.6066940435503,162.00747268125428]],"_id":"656a768e-c499-426f-b833-e700c9eede64"}
-{ _id: '656a768e-c499-426f-b833-e700c9eede64',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 97.6066940435503, 162.00747268125428 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -255.0263171264544, 338.7471319592495 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -255.0263171264544, 338.7471319592495 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -255.0263171264544, 338.7471319592495 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -255.0263171264544, 338.7471319592495 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -255.0263171264544, 338.7471319592495 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-255.0263171264544,338.7471319592495]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -255.0263171264544, 338.7471319592495 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -383.72376179844673, -727.3880485418044 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -383.72376179844673, -727.3880485418044 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -383.72376179844673, -727.3880485418044 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-383.72376179844673,-727.3880485418044]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -383.72376179844673, -727.3880485418044 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1108.9108245317918]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- data: 'Prototype',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-Broadcast : 7b71638c-05b8-5573-9aa5-c737c9406a86, sending data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-{ _id: '7b71638c-05b8-5573-9aa5-c737c9406a86',
- data: 'X',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-Broadcast : 13a3cc01-c286-57e1-8746-baa3ced34e76, sending data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1108.9108245317918 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-Broadcast : 911954a3-bebc-5b20-81f3-3091a2e11907, sending data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-{ _id: '911954a3-bebc-5b20-81f3-3091a2e11907',
- data: 'Page',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-Broadcast : 51529209-4838-51c5-a520-0044fddf139c, sending data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-{ _id: '51529209-4838-51c5-a520-0044fddf139c',
- data: 'Title',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-Broadcast : 6c3acd53-3a16-59b2-bc11-62c6d79b2cea, sending data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{ _id: '4cd12c43-3240-58dd-88bf-ce978edb2fde',
- data: 'Author',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-Broadcast : 8efd3b8a-ce6c-5f44-9085-90a8b7cd2202, sending data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-{ _id: '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- data: 'PanX',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-Broadcast : 048d25ac-b841-5728-a599-e3a432137881, sending data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-{ _id: '13a3cc01-c286-57e1-8746-baa3ced34e76',
- data: 'Y',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-Broadcast : f9f69d93-df75-5021-883a-efac00502b09, sending data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-{ _id: 'f9f69d93-df75-5021-883a-efac00502b09',
- data: 'Scale',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-Broadcast : 2e6a5061-4d6c-5895-8022-9b4f4fc7118b, sending data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-{ _id: '2e6a5061-4d6c-5895-8022-9b4f4fc7118b',
- data: 'NativeWidth',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-Broadcast : 4cd12c43-3240-58dd-88bf-ce978edb2fde, sending data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-{ _id: 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- data: 'NativeHeight',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-Broadcast : 5c207bd2-0390-5c35-8972-06d185f387fb, sending data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-{ _id: '5c207bd2-0390-5c35-8972-06d185f387fb',
- data: 'Width',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-Broadcast : 2a238eef-0bbb-5b78-b173-37b574fec97f, sending data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-{ _id: '048d25ac-b841-5728-a599-e3a432137881',
- data: 'PanY',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-Broadcast : 3559ca27-b3fa-5407-b822-07a1c9a0664c, sending data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-{ _id: '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- data: 'ZIndex',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-Broadcast : 530318f9-9b84-5b90-b926-530590cdd5c3, sending data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-{ _id: '530318f9-9b84-5b90-b926-530590cdd5c3',
- data: 'Data',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-Broadcast : ac03e21a-ec21-5402-a1ae-b66a7d8942a1, sending data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-{ _id: 'c4bbea89-4e57-551a-98fc-af3b6dacccb1',
- data: 'Annotations',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-Broadcast : 771c0a88-bd02-5e92-953f-e9042a191928, sending data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-{ _id: '771c0a88-bd02-5e92-953f-e9042a191928',
- data: 'ViewType',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-Broadcast : 32a999d2-06a3-534f-a12e-c2d710adf3e6, sending data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-{ _id: '2a238eef-0bbb-5b78-b173-37b574fec97f',
- data: 'Height',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-Broadcast : bf70b65d-62da-53e6-82b2-1b849418dc2e, sending data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-{ _id: 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- data: 'BackgroundColor',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-Broadcast : 2588a9ff-2129-5018-84c9-7743d470a4cf, sending data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-{ _id: '2588a9ff-2129-5018-84c9-7743d470a4cf',
- data: 'BackgroundLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-Broadcast : c4bbea89-4e57-551a-98fc-af3b6dacccb1, sending data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-{ _id: 'f2b3b5fc-7f38-5783-9218-badc8dcab185',
- data: 'OverlayLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-Broadcast : d0c33158-59b4-5c4a-8a27-b24570e955f0, sending data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-{ _id: 'd0c33158-59b4-5c4a-8a27-b24570e955f0',
- data: 'LayoutKeys',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-Broadcast : eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b, sending data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-{ _id: '32a999d2-06a3-534f-a12e-c2d710adf3e6',
- data: 'Layout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-Broadcast : 249e18fb-d914-5c26-a367-64a52fdd1daa, sending data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-{ _id: '249e18fb-d914-5c26-a367-64a52fdd1daa',
- data: 'SchemaColumns',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-Broadcast : e51646f0-30ef-5838-8371-9a88b0bc2a30, sending data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-{ _id: 'e51646f0-30ef-5838-8371-9a88b0bc2a30',
- data: 'SchemaSplitPercentage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-Broadcast : f2b3b5fc-7f38-5783-9218-badc8dcab185, sending data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-{ _id: '29e3ad9f-39a2-5fe3-9258-08977e55d7ee',
- data: 'Caption',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-Broadcast : 87bcf74b-a9de-5523-a148-39e5f7e35c5f, sending data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-{ _id: '87bcf74b-a9de-5523-a148-39e5f7e35c5f',
- data: 'ActiveFrame',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-Broadcast : 77aeae9e-9bc5-5318-b4cf-219d29204f73, sending data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-{ _id: 'eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b',
- data: 'LayoutFields',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-Broadcast : ebdc0250-58e7-5b19-9061-fd9a60d42e07, sending data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-{ _id: 'ebdc0250-58e7-5b19-9061-fd9a60d42e07',
- data: 'ActiveDB',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-Broadcast : db106646-3e58-5a71-8121-84753b400f96, sending data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-{ _id: 'db106646-3e58-5a71-8121-84753b400f96',
- data: 'DocumentText',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-Broadcast : 29e3ad9f-39a2-5fe3-9258-08977e55d7ee, sending data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-{ _id: '91ed6e52-c6aa-57aa-b98b-04602411c3d3',
- data: 'LinkedToDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-Broadcast : 8b33881b-415d-5c37-9270-f26cc3a7935e, sending data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-{ _id: '8b33881b-415d-5c37-9270-f26cc3a7935e',
- data: 'LinkedFromDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-Broadcast : 0c28246e-1e14-5c7c-897f-916c5e8695b8, sending data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-{ _id: '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- data: 'ActiveWorkspace',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-Broadcast : ae45a701-5adf-5ca2-822a-27127becbb91, sending data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-{ _id: 'ae45a701-5adf-5ca2-822a-27127becbb91',
- data: 'LinkTag',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-Broadcast : 22b8e67b-50b6-5e6e-9f3d-9810b8d07619, sending data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-{ _id: '22b8e67b-50b6-5e6e-9f3d-9810b8d07619',
- data: 'Thumbnail',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-Broadcast : 91ed6e52-c6aa-57aa-b98b-04602411c3d3, sending data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-{ _id: '10fe3599-dd7d-5e3e-9a28-23c624c99140',
- data: 'CurPage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-Broadcast : 7860dbf1-c302-50ac-9f2f-4106c641dd8a, sending data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-{ _id: '7860dbf1-c302-50ac-9f2f-4106c641dd8a',
- data: 'NumPages',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-Broadcast : 59b58624-916f-50a0-8efa-7003a805bfad, sending data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-{ _id: '0c28246e-1e14-5c7c-897f-916c5e8695b8',
- data: 'LinkDescription',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-Broadcast : 43606ee9-0825-51a3-98b2-06d36fdfd153, sending data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-{ _id: '43606ee9-0825-51a3-98b2-06d36fdfd153',
- data: 'Cursors',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-Broadcast : 7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5, sending data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-{ _id: '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- data: 'OptionalRightCollection',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-Broadcast : 10fe3599-dd7d-5e3e-9a28-23c624c99140, sending data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-{ _id: '9cca7b47-80dc-5c45-8090-15f8e9082020',
- data: 'Archives',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-Broadcast : 1daeded7-02d2-50b9-8da8-1f1f36f7cc67, sending data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-{ _id: '1daeded7-02d2-50b9-8da8-1f1f36f7cc67',
- data: 'Updated',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-Broadcast : d5aa5533-2f9b-5ef2-bd26-787dcbccaca2, sending data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{ _id: '59b58624-916f-50a0-8efa-7003a805bfad',
- data: 'Ink',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-Broadcast : 9cca7b47-80dc-5c45-8090-15f8e9082020, sending data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-{ _id: 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- data: 'Workspaces',
- type: 2 }
-a user has connected
-calling update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-called update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-Broadcast : 6c3acd53-3a16-59b2-bc11-62c6d79b2cea, sending data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{ _id: '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- data: 'Prototype',
- type: 2 }
-calling update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-called update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-calling update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-called update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-calling update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-called update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-calling update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-called update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-calling update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-called update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-calling update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-called update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-calling update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-called update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-calling update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-called update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-calling update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-called update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-calling update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-called update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-calling update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-called update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-calling update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-called update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-calling update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-called update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-calling update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-called update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-calling update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-called update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-calling update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-called update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-calling update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-called update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-calling update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-called update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-calling update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-called update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-calling update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-called update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-calling update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-called update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-calling update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-called update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-calling update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-called update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-calling update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-called update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-calling update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-called update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-calling update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-called update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-calling update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-called update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-calling update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-called update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-calling update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-called update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-calling update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-called update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-calling update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-called update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-calling update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-called update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-calling update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-called update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-calling update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-called update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-calling update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-called update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-calling update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-called update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-calling update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-called update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-calling update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-called update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-calling update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-called update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-calling update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-called update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-calling update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-called update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-calling update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-called update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-Broadcast : 7b71638c-05b8-5573-9aa5-c737c9406a86, sending data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-{ _id: '7b71638c-05b8-5573-9aa5-c737c9406a86',
- data: 'X',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-Broadcast : 13a3cc01-c286-57e1-8746-baa3ced34e76, sending data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-{ _id: '13a3cc01-c286-57e1-8746-baa3ced34e76',
- data: 'Y',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-Broadcast : 911954a3-bebc-5b20-81f3-3091a2e11907, sending data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-{ _id: '911954a3-bebc-5b20-81f3-3091a2e11907',
- data: 'Page',
- type: 2 }
-{ _id: '51529209-4838-51c5-a520-0044fddf139c',
- data: 'Title',
- type: 2 }
-{ _id: '4cd12c43-3240-58dd-88bf-ce978edb2fde',
- data: 'Author',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-Broadcast : 51529209-4838-51c5-a520-0044fddf139c, sending data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-Broadcast : 4cd12c43-3240-58dd-88bf-ce978edb2fde, sending data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-Broadcast : 8efd3b8a-ce6c-5f44-9085-90a8b7cd2202, sending data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-Broadcast : 048d25ac-b841-5728-a599-e3a432137881, sending data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-Broadcast : f9f69d93-df75-5021-883a-efac00502b09, sending data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-{ _id: '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- data: 'PanX',
- type: 2 }
-{ _id: '048d25ac-b841-5728-a599-e3a432137881',
- data: 'PanY',
- type: 2 }
-{ _id: 'f9f69d93-df75-5021-883a-efac00502b09',
- data: 'Scale',
- type: 2 }
-{ _id: '2e6a5061-4d6c-5895-8022-9b4f4fc7118b',
- data: 'NativeWidth',
- type: 2 }
-{ _id: 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- data: 'NativeHeight',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-Broadcast : 2e6a5061-4d6c-5895-8022-9b4f4fc7118b, sending data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-Broadcast : ac03e21a-ec21-5402-a1ae-b66a7d8942a1, sending data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-Broadcast : 5c207bd2-0390-5c35-8972-06d185f387fb, sending data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-Broadcast : 2a238eef-0bbb-5b78-b173-37b574fec97f, sending data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-Broadcast : 3559ca27-b3fa-5407-b822-07a1c9a0664c, sending data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-{ _id: '5c207bd2-0390-5c35-8972-06d185f387fb',
- data: 'Width',
- type: 2 }
-{ _id: '2a238eef-0bbb-5b78-b173-37b574fec97f',
- data: 'Height',
- type: 2 }
-{ _id: '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- data: 'ZIndex',
- type: 2 }
-{ _id: '530318f9-9b84-5b90-b926-530590cdd5c3',
- data: 'Data',
- type: 2 }
-{ _id: 'c4bbea89-4e57-551a-98fc-af3b6dacccb1',
- data: 'Annotations',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-Broadcast : 530318f9-9b84-5b90-b926-530590cdd5c3, sending data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-Broadcast : c4bbea89-4e57-551a-98fc-af3b6dacccb1, sending data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-Broadcast : 771c0a88-bd02-5e92-953f-e9042a191928, sending data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-Broadcast : 32a999d2-06a3-534f-a12e-c2d710adf3e6, sending data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-Broadcast : bf70b65d-62da-53e6-82b2-1b849418dc2e, sending data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-{ _id: '771c0a88-bd02-5e92-953f-e9042a191928',
- data: 'ViewType',
- type: 2 }
-{ _id: '32a999d2-06a3-534f-a12e-c2d710adf3e6',
- data: 'Layout',
- type: 2 }
-{ _id: 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- data: 'BackgroundColor',
- type: 2 }
-{ _id: '2588a9ff-2129-5018-84c9-7743d470a4cf',
- data: 'BackgroundLayout',
- type: 2 }
-{ _id: 'f2b3b5fc-7f38-5783-9218-badc8dcab185',
- data: 'OverlayLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-Broadcast : 2588a9ff-2129-5018-84c9-7743d470a4cf, sending data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-Broadcast : f2b3b5fc-7f38-5783-9218-badc8dcab185, sending data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-Broadcast : d0c33158-59b4-5c4a-8a27-b24570e955f0, sending data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-Broadcast : eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b, sending data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-Broadcast : 249e18fb-d914-5c26-a367-64a52fdd1daa, sending data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-{ _id: 'd0c33158-59b4-5c4a-8a27-b24570e955f0',
- data: 'LayoutKeys',
- type: 2 }
-{ _id: 'eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b',
- data: 'LayoutFields',
- type: 2 }
-{ _id: '249e18fb-d914-5c26-a367-64a52fdd1daa',
- data: 'SchemaColumns',
- type: 2 }
-{ _id: 'e51646f0-30ef-5838-8371-9a88b0bc2a30',
- data: 'SchemaSplitPercentage',
- type: 2 }
-{ _id: '29e3ad9f-39a2-5fe3-9258-08977e55d7ee',
- data: 'Caption',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-Broadcast : e51646f0-30ef-5838-8371-9a88b0bc2a30, sending data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-Broadcast : 29e3ad9f-39a2-5fe3-9258-08977e55d7ee, sending data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-Broadcast : 87bcf74b-a9de-5523-a148-39e5f7e35c5f, sending data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-Broadcast : 77aeae9e-9bc5-5318-b4cf-219d29204f73, sending data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-Broadcast : ebdc0250-58e7-5b19-9061-fd9a60d42e07, sending data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-{ _id: '87bcf74b-a9de-5523-a148-39e5f7e35c5f',
- data: 'ActiveFrame',
- type: 2 }
-{ _id: '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- data: 'ActiveWorkspace',
- type: 2 }
-{ _id: 'ebdc0250-58e7-5b19-9061-fd9a60d42e07',
- data: 'ActiveDB',
- type: 2 }
-{ _id: 'db106646-3e58-5a71-8121-84753b400f96',
- data: 'DocumentText',
- type: 2 }
-{ _id: '91ed6e52-c6aa-57aa-b98b-04602411c3d3',
- data: 'LinkedToDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-Broadcast : db106646-3e58-5a71-8121-84753b400f96, sending data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-Broadcast : 91ed6e52-c6aa-57aa-b98b-04602411c3d3, sending data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-Broadcast : 8b33881b-415d-5c37-9270-f26cc3a7935e, sending data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-Broadcast : 0c28246e-1e14-5c7c-897f-916c5e8695b8, sending data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-Broadcast : ae45a701-5adf-5ca2-822a-27127becbb91, sending data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-{ _id: '8b33881b-415d-5c37-9270-f26cc3a7935e',
- data: 'LinkedFromDocs',
- type: 2 }
-{ _id: '0c28246e-1e14-5c7c-897f-916c5e8695b8',
- data: 'LinkDescription',
- type: 2 }
-{ _id: 'ae45a701-5adf-5ca2-822a-27127becbb91',
- data: 'LinkTag',
- type: 2 }
-{ _id: '22b8e67b-50b6-5e6e-9f3d-9810b8d07619',
- data: 'Thumbnail',
- type: 2 }
-{ _id: '10fe3599-dd7d-5e3e-9a28-23c624c99140',
- data: 'CurPage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-Broadcast : 22b8e67b-50b6-5e6e-9f3d-9810b8d07619, sending data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-Broadcast : 10fe3599-dd7d-5e3e-9a28-23c624c99140, sending data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-Broadcast : 7860dbf1-c302-50ac-9f2f-4106c641dd8a, sending data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-Broadcast : 59b58624-916f-50a0-8efa-7003a805bfad, sending data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-Broadcast : 43606ee9-0825-51a3-98b2-06d36fdfd153, sending data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-{ _id: '7860dbf1-c302-50ac-9f2f-4106c641dd8a',
- data: 'NumPages',
- type: 2 }
-{ _id: '59b58624-916f-50a0-8efa-7003a805bfad',
- data: 'Ink',
- type: 2 }
-{ _id: '43606ee9-0825-51a3-98b2-06d36fdfd153',
- data: 'Cursors',
- type: 2 }
-{ _id: '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- data: 'OptionalRightCollection',
- type: 2 }
-{ _id: '9cca7b47-80dc-5c45-8090-15f8e9082020',
- data: 'Archives',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-Broadcast : 7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5, sending data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-Broadcast : 9cca7b47-80dc-5c45-8090-15f8e9082020, sending data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-Broadcast : 1daeded7-02d2-50b9-8da8-1f1f36f7cc67, sending data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-Broadcast : d5aa5533-2f9b-5ef2-bd26-787dcbccaca2, sending data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{ _id: '1daeded7-02d2-50b9-8da8-1f1f36f7cc67',
- data: 'Updated',
- type: 2 }
-{ _id: 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- data: 'Workspaces',
- type: 2 }
-calling update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-called update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-Broadcast : f98e47b3-f8ee-4117-86fb-6948460f5cc9, sending data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{ _id: 'f98e47b3-f8ee-4117-86fb-6948460f5cc9',
- data:
- [ [ 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- 'eec28478-5239-485f-a4ef-f1b9716fab89' ],
- [ '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- 'd9c82294-7b0b-4dd9-9cdc-b5f00bc84408' ],
- [ '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- '66c1ad11-6717-4186-b5bd-ac182f1c4d3e' ] ],
- type: 5 }
-S sending : 52b01269-5377-480c-87c8-1155d86cc5ee, receiving Get Field with data {"_id":"52b01269-5377-480c-87c8-1155d86cc5ee","data":3,"type":0}
-S sending : 8dd0dbc7-bce1-4c1f-9d57-46090545a413, receiving Get Field with data {"_id":"8dd0dbc7-bce1-4c1f-9d57-46090545a413","data":1,"type":0}
-S sending : b8c25898-ab6c-438d-a7e2-85b9c40a4fe6, receiving Get Field with data {"_id":"b8c25898-ab6c-438d-a7e2-85b9c40a4fe6","data":54.69876952997183,"type":0}
-S sending : c968815c-6ac5-43ad-9592-e31f4587bf1e, receiving Get Field with data {"_id":"c968815c-6ac5-43ad-9592-e31f4587bf1e","data":-160.75498241782444,"type":0}
-S sending : 5d676023-b2f3-48c2-924f-487aae09368e, receiving Get Field with data {"_id":"5d676023-b2f3-48c2-924f-487aae09368e","data":0.4782969000000001,"type":0}
-S sending : e170ebeb-643d-4a91-80ae-95e4c3786b2f, receiving Get Field with data {"_id":"e170ebeb-643d-4a91-80ae-95e4c3786b2f","data":-1,"type":0}
-S sending : 1d63a9fb-2526-4ddf-a420-30c27228f4ec, receiving Get Field with data {"_id":"1d63a9fb-2526-4ddf-a420-30c27228f4ec","data":-1,"type":0}
-S sending : 4d03c98c-7b74-4c00-a030-a8040bdccbe2, receiving Get Field with data {"_id":"4d03c98c-7b74-4c00-a030-a8040bdccbe2","data":-844.6275694030213,"type":0}
-S sending : 12d28809-5f97-4bc9-8d4c-f870a6fd9db3, receiving Get Field with data {"_id":"12d28809-5f97-4bc9-8d4c-f870a6fd9db3","data":-625.361798811575,"type":0}
-S sending : 2ce151b5-db68-432e-8997-9f84f5d004ce, receiving Get Field with data {"_id":"2ce151b5-db68-432e-8997-9f84f5d004ce","data":1004.4200579180002,"type":0}
-S sending : 408eef47-1f73-4423-9ae8-ff7ebe09d7f4, receiving Get Field with data {"_id":"408eef47-1f73-4423-9ae8-ff7ebe09d7f4","data":931.2604785855814,"type":0}
-S sending : 1ef8c71c-a64d-4dc0-ad7b-7605413f001e, receiving Get Field with data {"_id":"1ef8c71c-a64d-4dc0-ad7b-7605413f001e","data":1,"type":0}
-S sending : 122c6209-598c-4788-bb63-6093195155ed, receiving Get Field with data {"_id":"122c6209-598c-4788-bb63-6093195155ed","data":-745.1200493877338,"type":0}
-S sending : 9b4bd2ea-db7f-499a-b90e-bdb74a03bed2, receiving Get Field with data {"_id":"9b4bd2ea-db7f-499a-b90e-bdb74a03bed2","data":272.1369339838917,"type":0}
-S sending : 76f85fb5-ee06-4dcc-aa3e-d65d02a09d2f, receiving Get Field with data {"_id":"76f85fb5-ee06-4dcc-aa3e-d65d02a09d2f","data":520.5971437406347,"type":0}
-S sending : fbc78da9-dfff-4d1f-bdce-fd23d624215d, receiving Get Field with data {"_id":"fbc78da9-dfff-4d1f-bdce-fd23d624215d","data":1047.4665422251326,"type":0}
-S sending : fdb34782-566a-4503-b420-aca62aaaf816, receiving Get Field with data {"_id":"fdb34782-566a-4503-b420-aca62aaaf816","data":1,"type":0}
-S sending : df115f93-9b74-4ecc-a19e-b222563ce499, receiving Get Field with data {"_id":"df115f93-9b74-4ecc-a19e-b222563ce499","data":1,"type":0}
-S sending : a7226718-1943-4647-9a31-3dd5e890a132, receiving Get Field with data {"_id":"a7226718-1943-4647-9a31-3dd5e890a132","data":-41.90824879350832,"type":0}
-S sending : d137e66f-dbc3-41d7-92df-1da1a715b915, receiving Get Field with data {"_id":"d137e66f-dbc3-41d7-92df-1da1a715b915","data":-14.049778719754945,"type":0}
-S sending : 548f3f67-7146-475c-bd55-5e90bdf93831, receiving Get Field with data {"_id":"548f3f67-7146-475c-bd55-5e90bdf93831","data":0.5904900000000001,"type":0}
-S sending : ca4b07b2-0a84-45a2-9305-384677ac153b, receiving Get Field with data {"_id":"ca4b07b2-0a84-45a2-9305-384677ac153b","data":0,"type":0}
-S sending : d1f03f74-9f87-49f0-bccc-ba7e6dba4ea6, receiving Get Field with data {"_id":"d1f03f74-9f87-49f0-bccc-ba7e6dba4ea6","data":0,"type":0}
-S sending : ba3184a2-b966-432b-b8bd-83ae68ba1c8f, receiving Get Field with data {"_id":"ba3184a2-b966-432b-b8bd-83ae68ba1c8f","data":1,"type":0}
-S sending : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Get Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","data":0,"type":0}
-S sending : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Get Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","data":0,"type":0}
-S sending : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Get Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","data":0,"type":0}
-S sending : 42373536-4991-4b59-aaf5-34559e43adef, receiving Get Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","data":-229.10791037951532,"type":0}
-S sending : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Get Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","data":144.68358481938736,"type":0}
-S sending : 47f3540c-7ded-4c5a-a35e-67b8770c7564, receiving Get Field with data {"_id":"47f3540c-7ded-4c5a-a35e-67b8770c7564","data":200,"type":0}
-S sending : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Get Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","data":1,"type":0}
-S sending : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Get Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","data":299.5,"type":0}
-S sending : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Get Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","data":23.892089620484683,"type":0}
-S sending : 9c48c01b-ff87-4633-ab32-620bbe191b04, receiving Get Field with data {"_id":"9c48c01b-ff87-4633-ab32-620bbe191b04","data":200,"type":0}
-S sending : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Get Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","data":5.683584819387363,"type":0}
-S sending : 9d04275c-0bc8-4e43-8142-034824b2deae, receiving Get Field with data {"_id":"9d04275c-0bc8-4e43-8142-034824b2deae","data":200,"type":0}
-S sending : f2822f08-9fd6-4816-ba61-0dc0ea45a0c0, receiving Get Field with data {"_id":"f2822f08-9fd6-4816-ba61-0dc0ea45a0c0","data":200,"type":0}
-S sending : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Get Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","data":2,"type":0}
-S sending : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Get Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","data":-576.8937661941777,"type":0}
-S sending : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Get Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","data":-276.63465935070866,"type":0}
-S sending : 4233a5b1-f703-44d8-a4f1-55a230db04e7, receiving Get Field with data {"_id":"4233a5b1-f703-44d8-a4f1-55a230db04e7","data":200,"type":0}
-S sending : 8a50fbb3-768f-4f03-84b5-fc84aaa4f21c, receiving Get Field with data {"_id":"8a50fbb3-768f-4f03-84b5-fc84aaa4f21c","data":200,"type":0}
-S sending : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Get Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","data":9,"type":0}
-S sending : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Get Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","data":299.5,"type":0}
-S sending : 42d06ec3-2f96-4bf0-af73-568f20eb4ec5, receiving Get Field with data {"_id":"42d06ec3-2f96-4bf0-af73-568f20eb4ec5","data":300,"type":0}
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 300,
- type: 0 }
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 300,
- type: 0 }
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 299.5,
- type: 0 }
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 299.5,
- type: 0 }
-calling update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-called update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-Broadcast : 6c3acd53-3a16-59b2-bc11-62c6d79b2cea, sending data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{ _id: '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- data: 'Prototype',
- type: 2 }
-calling update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-called update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-calling update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-called update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-calling update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-called update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-calling update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-called update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-calling update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-called update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-calling update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-called update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-calling update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-called update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-calling update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-called update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-calling update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-called update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-calling update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-called update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-calling update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-called update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-calling update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-called update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-calling update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-called update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-calling update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-called update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-calling update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-called update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-calling update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-called update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-calling update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-called update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-calling update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-called update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-calling update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-called update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-calling update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-called update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-calling update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-called update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-calling update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-called update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-calling update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-called update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-calling update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-called update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-calling update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-called update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-calling update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-called update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-calling update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-called update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-calling update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-called update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-calling update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-called update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-calling update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-called update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-calling update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-called update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-calling update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-called update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-calling update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-called update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-calling update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-called update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-calling update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-called update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-calling update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-called update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-calling update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-called update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-calling update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-called update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-calling update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-called update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-calling update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-called update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-calling update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-called update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-calling update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-called update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-Broadcast : 7b71638c-05b8-5573-9aa5-c737c9406a86, sending data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-{ _id: '7b71638c-05b8-5573-9aa5-c737c9406a86',
- data: 'X',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-Broadcast : 13a3cc01-c286-57e1-8746-baa3ced34e76, sending data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-{ _id: '13a3cc01-c286-57e1-8746-baa3ced34e76',
- data: 'Y',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-Broadcast : 911954a3-bebc-5b20-81f3-3091a2e11907, sending data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-{ _id: '911954a3-bebc-5b20-81f3-3091a2e11907',
- data: 'Page',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-Broadcast : 51529209-4838-51c5-a520-0044fddf139c, sending data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-{ _id: '4cd12c43-3240-58dd-88bf-ce978edb2fde',
- data: 'Author',
- type: 2 }
-{ _id: '51529209-4838-51c5-a520-0044fddf139c',
- data: 'Title',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-Broadcast : 4cd12c43-3240-58dd-88bf-ce978edb2fde, sending data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-Broadcast : 8efd3b8a-ce6c-5f44-9085-90a8b7cd2202, sending data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-{ _id: '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- data: 'PanX',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-Broadcast : f9f69d93-df75-5021-883a-efac00502b09, sending data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-Broadcast : 048d25ac-b841-5728-a599-e3a432137881, sending data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-{ _id: '048d25ac-b841-5728-a599-e3a432137881',
- data: 'PanY',
- type: 2 }
-{ _id: 'f9f69d93-df75-5021-883a-efac00502b09',
- data: 'Scale',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-Broadcast : 2e6a5061-4d6c-5895-8022-9b4f4fc7118b, sending data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-{ _id: 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- data: 'NativeHeight',
- type: 2 }
-{ _id: '2e6a5061-4d6c-5895-8022-9b4f4fc7118b',
- data: 'NativeWidth',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-Broadcast : ac03e21a-ec21-5402-a1ae-b66a7d8942a1, sending data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-Broadcast : 5c207bd2-0390-5c35-8972-06d185f387fb, sending data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-{ _id: '5c207bd2-0390-5c35-8972-06d185f387fb',
- data: 'Width',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-Broadcast : 3559ca27-b3fa-5407-b822-07a1c9a0664c, sending data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-Broadcast : 2a238eef-0bbb-5b78-b173-37b574fec97f, sending data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-{ _id: '2a238eef-0bbb-5b78-b173-37b574fec97f',
- data: 'Height',
- type: 2 }
-{ _id: '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- data: 'ZIndex',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-Broadcast : 530318f9-9b84-5b90-b926-530590cdd5c3, sending data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-{ _id: 'c4bbea89-4e57-551a-98fc-af3b6dacccb1',
- data: 'Annotations',
- type: 2 }
-{ _id: '530318f9-9b84-5b90-b926-530590cdd5c3',
- data: 'Data',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-Broadcast : c4bbea89-4e57-551a-98fc-af3b6dacccb1, sending data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-Broadcast : 771c0a88-bd02-5e92-953f-e9042a191928, sending data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-{ _id: '771c0a88-bd02-5e92-953f-e9042a191928',
- data: 'ViewType',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-Broadcast : bf70b65d-62da-53e6-82b2-1b849418dc2e, sending data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-Broadcast : 32a999d2-06a3-534f-a12e-c2d710adf3e6, sending data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-{ _id: '32a999d2-06a3-534f-a12e-c2d710adf3e6',
- data: 'Layout',
- type: 2 }
-{ _id: 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- data: 'BackgroundColor',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-Broadcast : 2588a9ff-2129-5018-84c9-7743d470a4cf, sending data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-{ _id: 'f2b3b5fc-7f38-5783-9218-badc8dcab185',
- data: 'OverlayLayout',
- type: 2 }
-{ _id: '2588a9ff-2129-5018-84c9-7743d470a4cf',
- data: 'BackgroundLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-Broadcast : f2b3b5fc-7f38-5783-9218-badc8dcab185, sending data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-Broadcast : d0c33158-59b4-5c4a-8a27-b24570e955f0, sending data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-{ _id: 'd0c33158-59b4-5c4a-8a27-b24570e955f0',
- data: 'LayoutKeys',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-Broadcast : 249e18fb-d914-5c26-a367-64a52fdd1daa, sending data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-Broadcast : eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b, sending data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-{ _id: 'eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b',
- data: 'LayoutFields',
- type: 2 }
-{ _id: '249e18fb-d914-5c26-a367-64a52fdd1daa',
- data: 'SchemaColumns',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-Broadcast : e51646f0-30ef-5838-8371-9a88b0bc2a30, sending data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-{ _id: '29e3ad9f-39a2-5fe3-9258-08977e55d7ee',
- data: 'Caption',
- type: 2 }
-{ _id: 'e51646f0-30ef-5838-8371-9a88b0bc2a30',
- data: 'SchemaSplitPercentage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-Broadcast : 29e3ad9f-39a2-5fe3-9258-08977e55d7ee, sending data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-Broadcast : 87bcf74b-a9de-5523-a148-39e5f7e35c5f, sending data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-{ _id: '87bcf74b-a9de-5523-a148-39e5f7e35c5f',
- data: 'ActiveFrame',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-Broadcast : ebdc0250-58e7-5b19-9061-fd9a60d42e07, sending data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-Broadcast : 77aeae9e-9bc5-5318-b4cf-219d29204f73, sending data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-{ _id: '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- data: 'ActiveWorkspace',
- type: 2 }
-{ _id: 'ebdc0250-58e7-5b19-9061-fd9a60d42e07',
- data: 'ActiveDB',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-Broadcast : db106646-3e58-5a71-8121-84753b400f96, sending data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-{ _id: '91ed6e52-c6aa-57aa-b98b-04602411c3d3',
- data: 'LinkedToDocs',
- type: 2 }
-{ _id: 'db106646-3e58-5a71-8121-84753b400f96',
- data: 'DocumentText',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-Broadcast : 91ed6e52-c6aa-57aa-b98b-04602411c3d3, sending data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-Broadcast : 8b33881b-415d-5c37-9270-f26cc3a7935e, sending data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-{ _id: '8b33881b-415d-5c37-9270-f26cc3a7935e',
- data: 'LinkedFromDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-Broadcast : ae45a701-5adf-5ca2-822a-27127becbb91, sending data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-Broadcast : 0c28246e-1e14-5c7c-897f-916c5e8695b8, sending data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-{ _id: '0c28246e-1e14-5c7c-897f-916c5e8695b8',
- data: 'LinkDescription',
- type: 2 }
-{ _id: 'ae45a701-5adf-5ca2-822a-27127becbb91',
- data: 'LinkTag',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-Broadcast : 22b8e67b-50b6-5e6e-9f3d-9810b8d07619, sending data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-{ _id: '10fe3599-dd7d-5e3e-9a28-23c624c99140',
- data: 'CurPage',
- type: 2 }
-{ _id: '22b8e67b-50b6-5e6e-9f3d-9810b8d07619',
- data: 'Thumbnail',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-Broadcast : 10fe3599-dd7d-5e3e-9a28-23c624c99140, sending data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-Broadcast : 7860dbf1-c302-50ac-9f2f-4106c641dd8a, sending data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-{ _id: '7860dbf1-c302-50ac-9f2f-4106c641dd8a',
- data: 'NumPages',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-Broadcast : 43606ee9-0825-51a3-98b2-06d36fdfd153, sending data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-Broadcast : 59b58624-916f-50a0-8efa-7003a805bfad, sending data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-{ _id: '59b58624-916f-50a0-8efa-7003a805bfad',
- data: 'Ink',
- type: 2 }
-{ _id: '43606ee9-0825-51a3-98b2-06d36fdfd153',
- data: 'Cursors',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-Broadcast : 7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5, sending data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-{ _id: '9cca7b47-80dc-5c45-8090-15f8e9082020',
- data: 'Archives',
- type: 2 }
-{ _id: '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- data: 'OptionalRightCollection',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-Broadcast : 9cca7b47-80dc-5c45-8090-15f8e9082020, sending data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-Broadcast : 1daeded7-02d2-50b9-8da8-1f1f36f7cc67, sending data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-{ _id: '1daeded7-02d2-50b9-8da8-1f1f36f7cc67',
- data: 'Updated',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-Broadcast : d5aa5533-2f9b-5ef2-bd26-787dcbccaca2, sending data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{ _id: 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- data: 'Workspaces',
- type: 2 }
-calling update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-called update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-Broadcast : f98e47b3-f8ee-4117-86fb-6948460f5cc9, sending data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{ _id: 'f98e47b3-f8ee-4117-86fb-6948460f5cc9',
- data:
- [ [ 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- 'eec28478-5239-485f-a4ef-f1b9716fab89' ],
- [ '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- 'd9c82294-7b0b-4dd9-9cdc-b5f00bc84408' ],
- [ '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- '66c1ad11-6717-4186-b5bd-ac182f1c4d3e' ] ],
- type: 5 }
-S sending : 52b01269-5377-480c-87c8-1155d86cc5ee, receiving Get Field with data {"_id":"52b01269-5377-480c-87c8-1155d86cc5ee","data":3,"type":0}
-S sending : 8dd0dbc7-bce1-4c1f-9d57-46090545a413, receiving Get Field with data {"_id":"8dd0dbc7-bce1-4c1f-9d57-46090545a413","data":1,"type":0}
-S sending : b8c25898-ab6c-438d-a7e2-85b9c40a4fe6, receiving Get Field with data {"_id":"b8c25898-ab6c-438d-a7e2-85b9c40a4fe6","data":54.69876952997183,"type":0}
-S sending : c968815c-6ac5-43ad-9592-e31f4587bf1e, receiving Get Field with data {"_id":"c968815c-6ac5-43ad-9592-e31f4587bf1e","data":-160.75498241782444,"type":0}
-S sending : 5d676023-b2f3-48c2-924f-487aae09368e, receiving Get Field with data {"_id":"5d676023-b2f3-48c2-924f-487aae09368e","data":0.4782969000000001,"type":0}
-S sending : e170ebeb-643d-4a91-80ae-95e4c3786b2f, receiving Get Field with data {"_id":"e170ebeb-643d-4a91-80ae-95e4c3786b2f","data":-1,"type":0}
-S sending : 1d63a9fb-2526-4ddf-a420-30c27228f4ec, receiving Get Field with data {"_id":"1d63a9fb-2526-4ddf-a420-30c27228f4ec","data":-1,"type":0}
-S sending : 4d03c98c-7b74-4c00-a030-a8040bdccbe2, receiving Get Field with data {"_id":"4d03c98c-7b74-4c00-a030-a8040bdccbe2","data":-844.6275694030213,"type":0}
-S sending : 12d28809-5f97-4bc9-8d4c-f870a6fd9db3, receiving Get Field with data {"_id":"12d28809-5f97-4bc9-8d4c-f870a6fd9db3","data":-625.361798811575,"type":0}
-S sending : 2ce151b5-db68-432e-8997-9f84f5d004ce, receiving Get Field with data {"_id":"2ce151b5-db68-432e-8997-9f84f5d004ce","data":1004.4200579180002,"type":0}
-S sending : 408eef47-1f73-4423-9ae8-ff7ebe09d7f4, receiving Get Field with data {"_id":"408eef47-1f73-4423-9ae8-ff7ebe09d7f4","data":931.2604785855814,"type":0}
-S sending : 122c6209-598c-4788-bb63-6093195155ed, receiving Get Field with data {"_id":"122c6209-598c-4788-bb63-6093195155ed","data":-745.1200493877338,"type":0}
-S sending : 9b4bd2ea-db7f-499a-b90e-bdb74a03bed2, receiving Get Field with data {"_id":"9b4bd2ea-db7f-499a-b90e-bdb74a03bed2","data":272.1369339838917,"type":0}
-S sending : 76f85fb5-ee06-4dcc-aa3e-d65d02a09d2f, receiving Get Field with data {"_id":"76f85fb5-ee06-4dcc-aa3e-d65d02a09d2f","data":520.5971437406347,"type":0}
-S sending : 1ef8c71c-a64d-4dc0-ad7b-7605413f001e, receiving Get Field with data {"_id":"1ef8c71c-a64d-4dc0-ad7b-7605413f001e","data":1,"type":0}
-S sending : fbc78da9-dfff-4d1f-bdce-fd23d624215d, receiving Get Field with data {"_id":"fbc78da9-dfff-4d1f-bdce-fd23d624215d","data":1047.4665422251326,"type":0}
-S sending : fdb34782-566a-4503-b420-aca62aaaf816, receiving Get Field with data {"_id":"fdb34782-566a-4503-b420-aca62aaaf816","data":1,"type":0}
-S sending : df115f93-9b74-4ecc-a19e-b222563ce499, receiving Get Field with data {"_id":"df115f93-9b74-4ecc-a19e-b222563ce499","data":1,"type":0}
-S sending : a7226718-1943-4647-9a31-3dd5e890a132, receiving Get Field with data {"_id":"a7226718-1943-4647-9a31-3dd5e890a132","data":-41.90824879350832,"type":0}
-S sending : d137e66f-dbc3-41d7-92df-1da1a715b915, receiving Get Field with data {"_id":"d137e66f-dbc3-41d7-92df-1da1a715b915","data":-14.049778719754945,"type":0}
-S sending : 548f3f67-7146-475c-bd55-5e90bdf93831, receiving Get Field with data {"_id":"548f3f67-7146-475c-bd55-5e90bdf93831","data":0.5904900000000001,"type":0}
-S sending : ca4b07b2-0a84-45a2-9305-384677ac153b, receiving Get Field with data {"_id":"ca4b07b2-0a84-45a2-9305-384677ac153b","data":0,"type":0}
-S sending : d1f03f74-9f87-49f0-bccc-ba7e6dba4ea6, receiving Get Field with data {"_id":"d1f03f74-9f87-49f0-bccc-ba7e6dba4ea6","data":0,"type":0}
-S sending : ba3184a2-b966-432b-b8bd-83ae68ba1c8f, receiving Get Field with data {"_id":"ba3184a2-b966-432b-b8bd-83ae68ba1c8f","data":1,"type":0}
-S sending : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Get Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","data":0,"type":0}
-S sending : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Get Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","data":0,"type":0}
-S sending : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Get Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","data":0,"type":0}
-S sending : 42373536-4991-4b59-aaf5-34559e43adef, receiving Get Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","data":-229.10791037951532,"type":0}
-S sending : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Get Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","data":144.68358481938736,"type":0}
-S sending : 47f3540c-7ded-4c5a-a35e-67b8770c7564, receiving Get Field with data {"_id":"47f3540c-7ded-4c5a-a35e-67b8770c7564","data":200,"type":0}
-S sending : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Get Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","data":299.5,"type":0}
-S sending : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Get Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","data":23.892089620484683,"type":0}
-S sending : 9c48c01b-ff87-4633-ab32-620bbe191b04, receiving Get Field with data {"_id":"9c48c01b-ff87-4633-ab32-620bbe191b04","data":200,"type":0}
-S sending : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Get Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","data":1,"type":0}
-S sending : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Get Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","data":5.683584819387363,"type":0}
-S sending : 9d04275c-0bc8-4e43-8142-034824b2deae, receiving Get Field with data {"_id":"9d04275c-0bc8-4e43-8142-034824b2deae","data":200,"type":0}
-S sending : f2822f08-9fd6-4816-ba61-0dc0ea45a0c0, receiving Get Field with data {"_id":"f2822f08-9fd6-4816-ba61-0dc0ea45a0c0","data":200,"type":0}
-S sending : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Get Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","data":2,"type":0}
-S sending : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Get Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","data":-576.8937661941777,"type":0}
-S sending : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Get Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","data":-276.63465935070866,"type":0}
-S sending : 4233a5b1-f703-44d8-a4f1-55a230db04e7, receiving Get Field with data {"_id":"4233a5b1-f703-44d8-a4f1-55a230db04e7","data":200,"type":0}
-S sending : 8a50fbb3-768f-4f03-84b5-fc84aaa4f21c, receiving Get Field with data {"_id":"8a50fbb3-768f-4f03-84b5-fc84aaa4f21c","data":200,"type":0}
-S sending : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Get Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","data":9,"type":0}
-S sending : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Get Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","data":299.5,"type":0}
-S sending : 42d06ec3-2f96-4bf0-af73-568f20eb4ec5, receiving Get Field with data {"_id":"42d06ec3-2f96-4bf0-af73-568f20eb4ec5","data":300,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, -1136.0905950885317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[684.0149954975665,-1104.7293213692164]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[684.0149954975665,-1104.7293213692164]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[684.0149954975665,-1104.7293213692164]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[684.0149954975665,-1104.7293213692164]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 684.0149954975665, -1104.7293213692164 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[750.9190460987726,-1085.9125571376271]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[750.9190460987726,-1085.9125571376271]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[750.9190460987726,-1085.9125571376271]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[750.9190460987726,-1085.9125571376271]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 750.9190460987726, -1085.9125571376271 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 763.4635555864987, -1075.4587992311888 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 773.9173134929371, -1065.0050413247502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 776.0080650742249, -1054.5512834183119 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-1035.7345191867225]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-1035.7345191867225]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-1035.7345191867225]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-1035.7345191867225]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 778.0988166555125, -1035.7345191867225 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 778.0988166555125, -1008.5547486299827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 767.6450587490741, -966.7397170042289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 738.3745366110464, -901.9264179843105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 702.8317597291556, -776.4813231070491 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.12746434275437,-382.5621635850033]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.12746434275437,-382.5621635850033]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.12746434275437,-382.5621635850033]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.12746434275437,-382.5621635850033]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 117.12746434275437, -382.5621635850033 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 650.5629701969634, -602.9489418601709 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[106.67370643631602,-169.30550229365906]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[106.67370643631602,-169.30550229365906]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[106.67370643631602,-169.30550229365906]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[106.67370643631602,-169.30550229365906]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 106.67370643631602, -169.30550229365906 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 650.5629701969634, -602.9489418601709 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.8500117813851,121.30896750532986]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.8500117813851,121.30896750532986]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.8500117813851,121.30896750532986]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.8500117813851,121.30896750532986]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 179.8500117813851, 121.30896750532986 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[713.2855176355941,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[713.2855176355941,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[713.2855176355941,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[713.2855176355941,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 713.2855176355941, -99.0778107698377 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-4.99398961189172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-4.99398961189172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-4.99398961189172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-4.99398961189172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 817.8230966999787, -4.99398961189172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1033.1705095726106,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1033.1705095726106,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1033.1705095726106,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1033.1705095726106,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1033.1705095726106, 82.8175768021913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-846.4151620050224,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-846.4151620050224,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-846.4151620050224,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-846.4151620050224,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -846.4151620050224, 118.36035368408193 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-705.9280224924123,472.91134019725405]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-705.9280224924123,472.91134019725405]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-705.9280224924123,472.91134019725405]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-705.9280224924123,472.91134019725405]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -705.9280224924123, 472.91134019725405 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-733.514576615487,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-733.514576615487,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-733.514576615487,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-733.514576615487,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -733.514576615487, 128.8141115905205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-288.1246954386987,483.5334586816707]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-288.1246954386987,483.5334586816707]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-288.1246954386987,483.5334586816707]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-288.1246954386987,483.5334586816707]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -288.1246954386987, 483.5334586816707 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,135.08636633438346]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,135.08636633438346]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,135.08636633438346]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,135.08636633438346]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, 135.08636633438346 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,455.20780938989355]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,455.20780938989355]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,455.20780938989355]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,455.20780938989355]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.4113425215137, 455.20780938989355 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -202.4636749684139, 118.36035368408193 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4650345185296,356.06803686867306]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4650345185296,356.06803686867306]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4650345185296,356.06803686867306]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4650345185296,356.06803686867306]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 763.4650345185296, 356.06803686867306 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,59.819309408026584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,59.819309408026584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,59.819309408026584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,59.819309408026584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 134.1473296189041, 59.819309408026584 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.49393587957616,190.30376968782355]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.49393587957616,190.30376968782355]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.49393587957616,190.30376968782355]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.49393587957616,190.30376968782355]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -81.49393587957616, 190.30376968782355 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 451.9415699746329, -30.08300858734401 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.8534769930559,102.49220327374053]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.8534769930559,102.49220327374053]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.8534769930559,102.49220327374053]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.8534769930559,102.49220327374053]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 133.8534769930559, 102.49220327374053 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-117.89457500142703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-117.89457500142703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-117.89457500142703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-117.89457500142703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 667.288982847265, -117.89457500142703 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[223.7557949884265,52.314165322836175]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[223.7557949884265,52.314165322836175]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[223.7557949884265,52.314165322836175]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[223.7557949884265,52.314165322836175]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 223.7557949884265, 52.314165322836175 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 667.288982847265, -117.89457500142703 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[238.39105605744044,27.22514634738377]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[238.39105605744044,27.22514634738377]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[238.39105605744044,27.22514634738377]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[238.39105605744044,27.22514634738377]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 238.39105605744044, 27.22514634738377 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[771.8265619116495,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[771.8265619116495,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[771.8265619116495,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[771.8265619116495,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 771.8265619116495, -193.1616319277838 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.6650434071389,6.317630534506861]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.6650434071389,6.317630534506861]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.6650434071389,6.317630534506861]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.6650434071389,6.317630534506861]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 221.6650434071389, 6.317630534506861 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[755.100549261348,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[755.100549261348,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[755.100549261348,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[755.100549261348,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 755.100549261348, -214.0691477406607 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.39625387494652,-4.1361273719314795]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.39625387494652,-4.1361273719314795]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.39625387494652,-4.1361273719314795]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.39625387494652,-4.1361273719314795]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 169.39625387494652, -4.1361273719314795 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 702.8317597291556, -224.52290564709904 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[87.85694220472669,-20.862140022233007]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[87.85694220472669,-20.862140022233007]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[87.85694220472669,-20.862140022233007]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[87.85694220472669,-20.862140022233007]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 87.85694220472669, -20.862140022233007 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 621.2924480589357, -241.24891829740056 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-20.862140022233007]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-20.862140022233007]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-20.862140022233007]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-20.862140022233007]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 69.04017797313759, -20.862140022233007 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 621.2924480589357, -241.24891829740056 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[66.94942639184978,-22.952891603520698]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[66.94942639184978,-22.952891603520698]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[66.94942639184978,-22.952891603520698]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[66.94942639184978,-22.952891603520698]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 66.94942639184978, -22.952891603520698 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, -243.33966987868826 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[64.8586748105622,-25.04364318480839]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[64.8586748105622,-25.04364318480839]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[64.8586748105622,-25.04364318480839]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[64.8586748105622,-25.04364318480839]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 64.8586748105622, -25.04364318480839 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 598.2941806647713, -245.43042145997595 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.7679232292744,-33.40664950995915]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.7679232292744,-33.40664950995915]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.7679232292744,-33.40664950995915]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.7679232292744,-33.40664950995915]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[596.2034290834835,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[596.2034290834835,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[596.2034290834835,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[596.2034290834835,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 62.7679232292744, -33.40664950995915 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 596.2034290834835, -253.7934277851267 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548256,-43.86040741639761]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548256,-43.86040741639761]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548256,-43.86040741639761]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548256,-43.86040741639761]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 50.223413741548256, -43.86040741639761 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 583.6589195957573, -264.24718569156516 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.67890425382211,-56.40491690412375]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.67890425382211,-56.40491690412375]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.67890425382211,-56.40491690412375]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.67890425382211,-56.40491690412375]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 37.67890425382211, -56.40491690412375 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 583.6589195957573, -264.24718569156516 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671347,-62.677171647986825]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671347,-62.677171647986825]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671347,-62.677171647986825]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671347,-62.677171647986825]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671347, -62.677171647986825 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 562.7514037828804, -283.0639499231544 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[23.04364318480839,-66.8586748105622]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[23.04364318480839,-66.8586748105622]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[23.04364318480839,-66.8586748105622]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[23.04364318480839,-66.8586748105622]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 23.04364318480839, -66.8586748105622 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 556.4791490390174, -287.24545308572976 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[20.952891603520584,-68.9494263918499]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[20.952891603520584,-68.9494263918499]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[20.952891603520584,-68.9494263918499]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[20.952891603520584,-68.9494263918499]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 20.952891603520584, -68.9494263918499 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[554.3883974577296,-289.33620466701745]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[554.3883974577296,-289.33620466701745]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[554.3883974577296,-289.33620466701745]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[554.3883974577296,-289.33620466701745]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 554.3883974577296, -289.33620466701745 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-71.04017797313759]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-71.04017797313759]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-71.04017797313759]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-71.04017797313759]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 18.862140022233007, -71.04017797313759 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 552.2976458764421, -291.42695624830515 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[14.680636859657625,-75.22168113571297]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[14.680636859657625,-75.22168113571297]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[14.680636859657625,-75.22168113571297]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[14.680636859657625,-75.22168113571297]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 14.680636859657625, -75.22168113571297 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 548.1161427138667, -295.6084594108805 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.499133697082243,-81.49393587957604]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.499133697082243,-81.49393587957604]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.499133697082243,-81.49393587957604]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.499133697082243,-81.49393587957604]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 10.499133697082243, -81.49393587957604 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 543.9346395512913, -301.8807141547436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.408382115794439,-83.58468746086373]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.408382115794439,-83.58468746086373]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.408382115794439,-83.58468746086373]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.408382115794439,-83.58468746086373]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 8.408382115794439, -83.58468746086373 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-303.9714657360313]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-303.9714657360313]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-303.9714657360313]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-303.9714657360313]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 541.8438879700035, -303.9714657360313 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.1361273719314795,-91.9476937860145]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.1361273719314795,-91.9476937860145]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.1361273719314795,-91.9476937860145]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.1361273719314795,-91.9476937860145]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 2.1361273719314795, -91.9476937860145 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, -312.33447206118205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-8.317630534507089,-108.67370643631602]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-8.317630534507089,-108.67370643631602]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-8.317630534507089,-108.67370643631602]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-8.317630534507089,-108.67370643631602]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -8.317630534507089, -108.67370643631602 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 525.117875319702, -329.0604847114836 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.49913369708247,-119.12746434275448]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.49913369708247,-119.12746434275448]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.49913369708247,-119.12746434275448]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.49913369708247,-119.12746434275448]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -12.49913369708247, -119.12746434275448 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[520.9363721571266,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[520.9363721571266,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[520.9363721571266,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[520.9363721571266,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 520.9363721571266, -339.51424261792204 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,-129.58122224919293]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,-129.58122224919293]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,-129.58122224919293]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,-129.58122224919293]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -22.95289160352081, -129.58122224919293 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 510.48261425068824, -349.9680005243605 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-27.134394766096193,-140.0349801556314]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-27.134394766096193,-140.0349801556314]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-27.134394766096193,-140.0349801556314]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-27.134394766096193,-140.0349801556314]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -27.134394766096193, -140.0349801556314 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 506.30111108811286, -360.42175843079895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.315897928671575,-146.30723489949446]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.315897928671575,-146.30723489949446]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.315897928671575,-146.30723489949446]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.315897928671575,-146.30723489949446]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -31.315897928671575, -146.30723489949446 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 502.1196079255375, -366.694013174662 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995938,-148.39798648078215]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995938,-148.39798648078215]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995938,-148.39798648078215]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995938,-148.39798648078215]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -33.40664950995938, -148.39798648078215 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 500.0288563442497, -368.7847647559497 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995938,-148.39798648078215]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995938,-148.39798648078215]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995938,-148.39798648078215]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-Broadcast : 7a7aea92-cb93-4425-9eea-80a42bd4e0a1, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995938,-148.39798648078215]],"_id":"7a7aea92-cb93-4425-9eea-80a42bd4e0a1"}
-{ _id: '7a7aea92-cb93-4425-9eea-80a42bd4e0a1',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -33.40664950995938, -148.39798648078215 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 500.0288563442497, -368.7847647559497 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data: [ 'eff68660-351e-44d1-974f-f984cb56f652' ],
- type: 1 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,369.25054343860484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,369.25054343860484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,369.25054343860484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,369.25054343860484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 523.0271237384144, 369.25054343860484 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[520.9363721571266,367.15979185731703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[520.9363721571266,367.15979185731703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[520.9363721571266,367.15979185731703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[520.9363721571266,367.15979185731703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 520.9363721571266, 367.15979185731703 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,362.97828869474165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,362.97828869474165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,362.97828869474165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,362.97828869474165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 518.845620575839, 362.97828869474165 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,335.7985181380018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,335.7985181380018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,335.7985181380018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,335.7985181380018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 489.57509843781133, 335.7985181380018 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,283.5297286058094]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,283.5297286058094]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,283.5297286058094]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,283.5297286058094]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 433.1248057430438, 283.5297286058094 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[349.49474249153616,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[349.49474249153616,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[349.49474249153616,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[349.49474249153616,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 349.49474249153616, 220.8071811671789 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[257.50167291487776,158.08463372854817]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[257.50167291487776,158.08463372854817]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[257.50167291487776,158.08463372854817]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[257.50167291487776,158.08463372854817]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 257.50167291487776, 158.08463372854817 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[770.5464468414739,395.0158046448669]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[770.5464468414739,395.0158046448669]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[770.5464468414739,395.0158046448669]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[770.5464468414739,395.0158046448669]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 770.5464468414739, 395.0158046448669 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, 82.8175768021913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[582.88902028345,260.46897050892517]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[582.88902028345,260.46897050892517]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[582.88902028345,260.46897050892517]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[582.88902028345,260.46897050892517]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 582.88902028345, 260.46897050892517 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,3.369016713259043]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,3.369016713259043]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,3.369016713259043]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,3.369016713259043]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 27.518998973231987, 3.369016713259043 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[377.5280629180654,111.75931172709488]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[377.5280629180654,111.75931172709488]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[377.5280629180654,111.75931172709488]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[377.5280629180654,111.75931172709488]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 377.5280629180654, 111.75931172709488 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-93.74459274145408,-84.44254970082397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-93.74459274145408,-84.44254970082397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-93.74459274145408,-84.44254970082397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-93.74459274145408,-84.44254970082397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -93.74459274145408, -84.44254970082397 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[278.38829039684515,-1.543285440013733]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[278.38829039684515,-1.543285440013733]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[278.38829039684515,-1.543285440013733]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[278.38829039684515,-1.543285440013733]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 278.38829039684515, -1.543285440013733 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-151.34660030202986]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-151.34660030202986]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-151.34660030202986]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-151.34660030202986]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -152.28563701750932, -151.34660030202986 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.73699181329084,-97.14235179976185]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.73699181329084,-97.14235179976185]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.73699181329084,-97.14235179976185]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.73699181329084,-97.14235179976185]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 221.73699181329084, -97.14235179976185 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-185.73766231811237,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-185.73766231811237,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-185.73766231811237,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-185.73766231811237,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -185.73766231811237, -207.79689299679762 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,-238.77059825864785]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,-238.77059825864785]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,-238.77059825864785]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,-238.77059825864785]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.4113425215137, -238.77059825864785 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -185.73766231811237, -207.79689299679762 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,-274.1776598733693]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,-274.1776598733693]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,-274.1776598733693]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4113425215137,-274.1776598733693]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.4113425215137, -274.1776598733693 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -202.4636749684139, -312.33447206118205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.95204868298583,-334.36966461839575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.95204868298583,-334.36966461839575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.95204868298583,-334.36966461839575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.95204868298583,-334.36966461839575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 196.95204868298583, -334.36966461839575 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -200.3729233871262, -347.8772489430728 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[200.49275484445798,-337.9103707798679]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[200.49275484445798,-337.9103707798679]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[200.49275484445798,-337.9103707798679]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[200.49275484445798,-337.9103707798679]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 200.49275484445798, -337.9103707798679 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-198.28217180583852,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-198.28217180583852,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-198.28217180583852,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-198.28217180583852,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -198.28217180583852, -349.9680005243605 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.95204868298583,-344.9917831028122]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.95204868298583,-344.9917831028122]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.95204868298583,-344.9917831028122]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.95204868298583,-344.9917831028122]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 196.95204868298583, -344.9917831028122 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -200.3729233871262, -354.1495036869359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.2485178756251,-334.36966461839575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.2485178756251,-334.36966461839575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.2485178756251,-334.36966461839575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.2485178756251,-334.36966461839575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 179.2485178756251, -334.36966461839575 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -210.82668129356466, -347.8772489430728 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.00428090679202,-309.58472148809074]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.00428090679202,-309.58472148809074]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.00428090679202,-309.58472148809074]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.00428090679202,-309.58472148809074]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 158.00428090679202, -309.58472148809074 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-223.3711907812908,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-223.3711907812908,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-223.3711907812908,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-223.3711907812908,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -223.3711907812908, -333.24198787405896 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[136.76004393795915,-288.34048451925787]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[136.76004393795915,-288.34048451925787]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[136.76004393795915,-288.34048451925787]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[136.76004393795915,-288.34048451925787]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 136.76004393795915, -288.34048451925787 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.91570026901695,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.91570026901695,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.91570026901695,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.91570026901695,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -235.91570026901695, -320.6974783863328 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,-267.096247550425]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,-267.096247550425]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,-267.096247550425]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,-267.096247550425]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.05651313059843, -267.096247550425 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -246.3694581754554, -308.1529688986067 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.97510080765414,-252.93342290453643]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.97510080765414,-252.93342290453643]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.97510080765414,-252.93342290453643]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.97510080765414,-252.93342290453643]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 111.97510080765414, -252.93342290453643 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-299.7899625734559]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-299.7899625734559]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-299.7899625734559]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-299.7899625734559]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -250.5509613380308, -299.7899625734559 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.97510080765414,-242.31130442012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.97510080765414,-242.31130442012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.97510080765414,-242.31130442012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.97510080765414,-242.31130442012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 111.97510080765414, -242.31130442012 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -250.5509613380308, -299.7899625734559 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.434394646182,-238.77059825864785]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.434394646182,-238.77059825864785]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.434394646182,-238.77059825864785]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.434394646182,-238.77059825864785]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 108.434394646182, -238.77059825864785 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -252.64171291931848, -291.42695624830515 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.35298232323771,-228.14847977423142]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.35298232323771,-228.14847977423142]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.35298232323771,-228.14847977423142]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.35298232323771,-228.14847977423142]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 101.35298232323771, -228.14847977423142 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -256.82321608189386, -285.1547015044421 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.73086383882128,-224.60777361275927]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.73086383882128,-224.60777361275927]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.73086383882128,-224.60777361275927]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.73086383882128,-224.60777361275927]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 90.73086383882128, -224.60777361275927 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.09547082575693,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.09547082575693,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.09547082575693,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.09547082575693,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -263.09547082575693, -283.0639499231544 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[80.10874535440485,-221.06706745128713]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[80.10874535440485,-221.06706745128713]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[80.10874535440485,-221.06706745128713]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[80.10874535440485,-221.06706745128713]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 80.10874535440485, -221.06706745128713 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-269.36772556962,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-269.36772556962,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-269.36772556962,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-269.36772556962,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -269.36772556962, -280.9731983418667 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.405214547044125,-206.90424280539833]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.405214547044125,-206.90424280539833]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.405214547044125,-206.90424280539833]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.405214547044125,-206.90424280539833]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 62.405214547044125, -206.90424280539833 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -279.82148347605846, -272.6101920167159 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.538859093794827,-203.36353664392618]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.538859093794827,-203.36353664392618]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.538859093794827,-203.36353664392618]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.538859093794827,-203.36353664392618]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 30.538859093794827, -203.36353664392618 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -298.6382477076477, -270.51944043542824 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-29.653145651231853,-185.66000583656546]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-29.653145651231853,-185.66000583656546]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-29.653145651231853,-185.66000583656546]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-29.653145651231853,-185.66000583656546]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -29.653145651231853, -185.66000583656546 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-260.0656825289898]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-260.0656825289898]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-260.0656825289898]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-260.0656825289898]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -334.1810245895383, -260.0656825289898 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-57.97879494300901,-178.57859351362117]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-57.97879494300901,-178.57859351362117]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-57.97879494300901,-178.57859351362117]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-57.97879494300901,-178.57859351362117]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -57.97879494300901, -178.57859351362117 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -350.90703723983984, -255.8841793664144 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.68232575036973,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.68232575036973,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.68232575036973,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.68232575036973,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -75.68232575036973, -171.49718119067688 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -361.3607951462783, -251.70267620383902 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.00797504214688,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.00797504214688,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.00797504214688,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.00797504214688,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -104.00797504214688, -160.87506270626045 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -378.0868077965798, -245.43042145997595 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -128.792918172452, -157.3343565447883 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -392.72206886559366, -243.33966987868826 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.6592736257013,-139.63082573742759]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.6592736257013,-139.63082573742759]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.6592736257013,-139.63082573742759]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.6592736257013,-139.63082573742759]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -160.6592736257013, -139.63082573742759 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -411.5388330971829, -232.8859119722498 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.06633524042275,-125.46800109153901]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.06633524042275,-125.46800109153901]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.06633524042275,-125.46800109153901]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.06633524042275,-125.46800109153901]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -196.06633524042275, -125.46800109153901 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -432.4463489100598, -224.52290564709904 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.4733968551443,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.4733968551443,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.4733968551443,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.4733968551443,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -231.4733968551443, -111.30517644565043 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -453.3538647229367, -216.1598993219484 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.3397523083936,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.3397523083936,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.3397523083936,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.3397523083936,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -263.3397523083936, -111.30517644565043 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.17062895452585,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.17062895452585,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.5025769542822,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.5025769542822,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.5025769542822,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.5025769542822,-111.30517644565043]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -277.5025769542822, -111.30517644565043 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-480.5336352796766,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-480.5336352796766,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-480.5336352796766,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-480.5336352796766,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-281.0432831157543,-114.84588260712258]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-281.0432831157543,-114.84588260712258]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -480.5336352796766, -216.1598993219484 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.17062895452585,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.17062895452585,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -472.17062895452585, -216.1598993219484 ] ],
- type: 14 }
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -277.5025769542822, -111.30517644565043 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-281.0432831157543,-114.84588260712258]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-281.0432831157543,-114.84588260712258]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.206107761643,-121.92729493006686]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.206107761643,-121.92729493006686]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.98739318611507,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.98739318611507,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.2875200845873,-129.00870725301115]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.2875200845873,-129.00870725301115]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-495.16889634869045,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-495.16889634869045,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -281.0432831157543, -114.84588260712258 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.98739318611507,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.98739318611507,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.206107761643,-121.92729493006686]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.206107761643,-121.92729493006686]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -490.98739318611507, -222.43215406581135 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -490.98739318611507, -222.43215406581135 ] ],
- type: 14 }
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -295.206107761643, -121.92729493006686 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-495.16889634869045,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-495.16889634869045,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -495.16889634869045, -226.61365722838673 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.2875200845873,-129.00870725301115]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.2875200845873,-129.00870725301115]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1538755378366,-150.25294422184402]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1538755378366,-150.25294422184402]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1538755378366,-150.25294422184402]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1538755378366,-150.25294422184402]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -334.1538755378366, -150.25294422184402 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -495.16889634869045, -226.61365722838673 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.3167001837252,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.3167001837252,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.3167001837252,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.3167001837252,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -348.3167001837252, -157.3343565447883 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -522.3486669054305, -243.33966987868826 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.8218288669718,156.70621724004786]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.8218288669718,156.70621724004786]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.8218288669718,156.70621724004786]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.8218288669718,156.70621724004786]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 272.8218288669718, 156.70621724004786 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.34588028286316,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.34588028286316,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.34588028286316,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.34588028286316,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -394.34588028286316, -171.49718119067688 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -522.3486669054305, -243.33966987868826 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[240.95547341372253,156.70621724004786]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[240.95547341372253,156.70621724004786]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[240.95547341372253,156.70621724004786]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[240.95547341372253,156.70621724004786]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 240.95547341372253, 156.70621724004786 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.59011725169603,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.59011725169603,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.59011725169603,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.59011725169603,-171.49718119067688]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -415.59011725169603, -171.49718119067688 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-562.0729469498965,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-562.0729469498965,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-562.0729469498965,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-562.0729469498965,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -562.0729469498965, -251.70267620383902 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[235.6444141715143,162.01727648225597]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[235.6444141715143,162.01727648225597]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[235.6444141715143,162.01727648225597]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[235.6444141715143,162.01727648225597]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 235.6444141715143, 162.01727648225597 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.1308234131682,-167.95647502920474]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.1308234131682,-167.95647502920474]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.1308234131682,-167.95647502920474]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.1308234131682,-167.95647502920474]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -419.1308234131682, -167.95647502920474 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-249.61192462255133]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-249.61192462255133]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-249.61192462255133]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-249.61192462255133]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -564.1636985311842, -249.61192462255133 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.08911796047312,172.63939496667263]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.08911796047312,172.63939496667263]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.08911796047312,172.63939496667263]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.08911796047312,172.63939496667263]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 209.08911796047312, 172.63939496667263 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-436.8343542205289,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-436.8343542205289,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-436.8343542205289,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-436.8343542205289,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -436.8343542205289, -160.87506270626045 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-574.6174564376226,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-574.6174564376226,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-574.6174564376226,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-574.6174564376226,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -574.6174564376226, -245.43042145997595 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[198.46699947605669,172.63939496667263]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[198.46699947605669,172.63939496667263]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[198.46699947605669,172.63939496667263]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[198.46699947605669,172.63939496667263]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 198.46699947605669, 172.63939496667263 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-443.9157665434732,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-443.9157665434732,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-443.9157665434732,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-443.9157665434732,-160.87506270626045]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -443.9157665434732, -160.87506270626045 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.798959600198,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.798959600198,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.798959600198,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.798959600198,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -578.798959600198, -245.43042145997595 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.22276250722382,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.22276250722382,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.22276250722382,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.22276250722382,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 177.22276250722382, 183.26151345108883 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-458.0785911893619,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-458.0785911893619,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-458.0785911893619,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-458.0785911893619,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -458.0785911893619, -153.79365038331616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-587.1619659253488,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-587.1619659253488,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -578.798959600198, -245.43042145997595 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-587.1619659253488,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-587.1619659253488,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[166.6006440228074,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[166.6006440228074,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[166.6006440228074,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[166.6006440228074,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 166.6006440228074, 183.26151345108883 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.16000351230616,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.16000351230616,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.16000351230616,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.16000351230616,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-591.3434690879242,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-591.3434690879242,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -587.1619659253488, -241.24891829740056 ] ],
- type: 14 }
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -465.16000351230616, -153.79365038331616 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-591.3434690879242,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-591.3434690879242,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.28958478059917,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.28958478059917,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.28958478059917,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.28958478059917,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 161.28958478059917, 183.26151345108883 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-468.7007096737783,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-468.7007096737783,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-468.7007096737783,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-468.7007096737783,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -468.7007096737783, -153.79365038331616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-593.4342206692119,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-593.4342206692119,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-593.4342206692119,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-593.4342206692119,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -593.4342206692119, -241.24891829740056 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.97852553839095,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.97852553839095,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.97852553839095,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.97852553839095,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.97852553839095, 183.26151345108883 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.24141583525045,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.24141583525045,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.24141583525045,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.24141583525045,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -472.24141583525045, -153.79365038331616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-595.5249722504996,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-595.5249722504996,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -593.4342206692119, -241.24891829740056 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-595.5249722504996,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-595.5249722504996,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.66746629618262,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.66746629618262,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.66746629618262,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.66746629618262,183.26151345108883]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 150.66746629618262, 183.26151345108883 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-475.7821219967226,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-475.7821219967226,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-475.7821219967226,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-475.7821219967226,-153.79365038331616]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -475.7821219967226, -153.79365038331616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-597.6157238317872,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-597.6157238317872,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-597.6157238317872,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-597.6157238317872,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.97852553839095,177.95045420888073]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.97852553839095,177.95045420888073]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 150.66746629618262, 183.26151345108883 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -597.6157238317872, -241.24891829740056 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.97852553839095,177.95045420888073]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.97852553839095,177.95045420888073]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.24141583525045,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.24141583525045,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.24141583525045,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.24141583525045,-157.3343565447883]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -472.24141583525045, -157.3343565447883 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-595.5249722504996,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-595.5249722504996,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-595.5249722504996,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-595.5249722504996,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -595.5249722504996, -243.33966987868826 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.15594023384847,167.32833572446407]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.15594023384847,167.32833572446407]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.15594023384847,167.32833572446407]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.15594023384847,167.32833572446407]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.15594023384847, 167.32833572446407 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-447.4564727049453,-164.4157688677326]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-447.4564727049453,-164.4157688677326]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-447.4564727049453,-164.4157688677326]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-447.4564727049453,-164.4157688677326]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -447.4564727049453, -164.4157688677326 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-580.8897111814857,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-580.8897111814857,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-580.8897111814857,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-580.8897111814857,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -580.8897111814857, -247.52117304126364 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-Broadcast : 4148a220-4c31-4bf3-98be-b79e1a6a0a79, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-{ _id: '4148a220-4c31-4bf3-98be-b79e1a6a0a79',
- data:
- [ '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Set Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-calling update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-called update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-Broadcast : 672c99e2-ba2a-419b-9f06-903d9aeba563, sending data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{ _id: '672c99e2-ba2a-419b-9f06-903d9aeba563',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Set Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":369.2378877983132}
-calling update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":369.2378877983132}
-called update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":369.2378877983132}
-Incoming : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Set Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-460.1379163726946}
-calling update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-460.1379163726946}
-called update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-460.1379163726946}
-{ _id: '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19',
- data: -276.63465935070866,
- type: 0 }
-Incoming : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Set Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-calling update on data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-called update on data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.64714114868502,98.39619896193904]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.64714114868502,98.39619896193904]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[445.66931523076994,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[445.66931523076994,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-460.1379163726946}
-Broadcast : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, sending data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-460.1379163726946}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'eff68660-351e-44d1-974f-f984cb56f652',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480' ],
- type: 1 }
-{ _id: 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9',
- data: -576.8937661941777,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":369.2378877983132}
-Broadcast : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, sending data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":369.2378877983132}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-Broadcast : cc496f45-ce13-4ce5-859c-215d8634bc61, sending data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-{ _id: 'cc496f45-ce13-4ce5-859c-215d8634bc61', data: 2, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.64714114868502,98.39619896193904]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.64714114868502,98.39619896193904]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -580.8897111814857, -247.52117304126364 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[445.66931523076994,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[445.66931523076994,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.64714114868502, 98.39619896193904 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.64714114868502,101.53232633387051]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.64714114868502,101.53232633387051]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.64714114868502,101.53232633387051]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.64714114868502,101.53232633387051]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.64714114868502, 101.53232633387051 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[445.66931523076994,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[445.66931523076994,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 445.66931523076994, -393.873783731402 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[445.66931523076994,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[445.66931523076994,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[110.51101377675377,101.53232633387051]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[110.51101377675377,101.53232633387051]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[110.51101377675377,101.53232633387051]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[110.51101377675377,101.53232633387051]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 110.51101377675377, 101.53232633387051 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 443.57856364948213, -391.7830321501143 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.9665042890274,104.668453705802]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.9665042890274,104.668453705802]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.9665042890274,104.668453705802]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.9665042890274,104.668453705802]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 97.9665042890274, 104.668453705802 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[435.21555732433137,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[435.21555732433137,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[435.21555732433137,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[435.21555732433137,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 435.21555732433137, -389.6922805688266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.01361268550681,110.94070844966518]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.01361268550681,110.94070844966518]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.01361268550681,110.94070844966518]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.01361268550681,110.94070844966518]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 76.01361268550681, 110.94070844966518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-385.51077740625124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-385.51077740625124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-385.51077740625124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-385.51077740625124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 420.58029625531765, -385.51077740625124 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.060721081986,126.6213453093228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.060721081986,126.6213453093228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.060721081986,126.6213453093228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.060721081986,126.6213453093228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 54.060721081986, 126.6213453093228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[405.9450351863037,-375.0570194998128]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[405.9450351863037,-375.0570194998128]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[405.9450351863037,-375.0570194998128]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[405.9450351863037,-375.0570194998128]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 405.9450351863037, -375.0570194998128 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[22.699447362670753,132.89360005318576]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[22.699447362670753,132.89360005318576]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[22.699447362670753,132.89360005318576]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[22.699447362670753,132.89360005318576]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 22.699447362670753, 132.89360005318576 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 385.0375193734268, -370.8755163372374 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[347.40399091024835,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[347.40399091024835,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[347.40399091024835,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[347.40399091024835,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 347.40399091024835, -360.42175843079895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 282.59069189033005, -343.6957457804974 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 175.96236124465793, -322.7882299676205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[519.1563093769514,-284.7997783577857]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[519.1563093769514,-284.7997783577857]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[519.1563093769514,-284.7997783577857]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[519.1563093769514,-284.7997783577857]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 519.1563093769514, -284.7997783577857 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -10.114529489946449, -318.6067268050451 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.13792545354272,-267.096247550425]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.13792545354272,-267.096247550425]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.13792545354272,-267.096247550425]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.13792545354272,-267.096247550425]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 126.13792545354272, -267.096247550425 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -242.18795501288002, -308.1529688986067 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.7016837396834,-270.63695371189715]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.7016837396834,-270.63695371189715]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.7016837396834,-270.63695371189715]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.7016837396834,-270.63695371189715]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 44.7016837396834, -270.63695371189715 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -290.2752413824969, -310.24372047989436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.60091342742544,-295.42189684220216]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.60091342742544,-295.42189684220216]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.60091342742544,-295.42189684220216]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.60091342742544,-295.42189684220216]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -68.60091342742544, -295.42189684220216 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-357.1792919837029,-324.8789815489082]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-357.1792919837029,-324.8789815489082]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-357.1792919837029,-324.8789815489082]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-357.1792919837029,-324.8789815489082]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -357.1792919837029, -324.8789815489082 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.68232575036973,-298.9626030036743]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.68232575036973,-298.9626030036743]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.68232575036973,-298.9626030036743]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.68232575036973,-298.9626030036743]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -75.68232575036973, -298.9626030036743 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-326.9697331301959]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-326.9697331301959]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-326.9697331301959]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-326.9697331301959]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -361.3607951462783, -326.9697331301959 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.14161958889758,-298.9626030036743]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.14161958889758,-298.9626030036743]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.14161958889758,-298.9626030036743]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.14161958889758,-298.9626030036743]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -72.14161958889758, -298.9626030036743 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-326.9697331301959]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-326.9697331301959]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-326.9697331301959]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-326.9697331301959]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -359.2700435649906, -326.9697331301959 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.0602072659533,-288.34048451925787]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.0602072659533,-288.34048451925787]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.0602072659533,-288.34048451925787]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.0602072659533,-288.34048451925787]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -65.0602072659533, -288.34048451925787 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -320.6974783863328 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-57.97879494300901,-263.55554138895286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-57.97879494300901,-263.55554138895286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-57.97879494300901,-263.55554138895286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-57.97879494300901,-263.55554138895286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -57.97879494300901, -263.55554138895286 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -350.90703723983984, -306.062217317319 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-29.653145651231853,-206.90424280539833]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-29.653145651231853,-206.90424280539833]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-29.653145651231853,-206.90424280539833]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-29.653145651231853,-206.90424280539833]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -29.653145651231853, -206.90424280539833 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -350.90703723983984, -306.062217317319 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.2132098020176727,-139.63082573742759]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.2132098020176727,-139.63082573742759]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.2132098020176727,-139.63082573742759]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.2132098020176727,-139.63082573742759]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 2.2132098020176727, -139.63082573742759 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -315.3642603579492, -232.8859119722498 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.538859093794827,-86.52023331534542]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.538859093794827,-86.52023331534542]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.538859093794827,-86.52023331534542]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.538859093794827,-86.52023331534542]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 30.538859093794827, -86.52023331534542 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -298.6382477076477, -201.52463825293455 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.405214547044125,-36.950347054735175]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.405214547044125,-36.950347054735175]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.405214547044125,-36.950347054735175]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.405214547044125,-36.950347054735175]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 62.405214547044125, -36.950347054735175 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -279.82148347605846, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.02733303146056,-12.165403924430166]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.02733303146056,-12.165403924430166]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.02733303146056,-12.165403924430166]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.02733303146056,-12.165403924430166]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 73.02733303146056, -12.165403924430166 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-273.5492287321954,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-273.5492287321954,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-273.5492287321954,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-273.5492287321954,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -273.5492287321954, -157.61885504589304 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.64945151587699,5.538126882930555]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.64945151587699,5.538126882930555]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.64945151587699,5.538126882930555]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.64945151587699,5.538126882930555]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 83.64945151587699, 5.538126882930555 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -273.5492287321954, -157.61885504589304 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[87.19015767734913,9.0788330444027]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[87.19015767734913,9.0788330444027]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[87.19015767734913,9.0788330444027]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[87.19015767734913,9.0788330444027]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 87.19015767734913, 9.0788330444027 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -265.1862224070446, -145.0743455581669 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.27157000029342,16.160245367346988]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.27157000029342,16.160245367346988]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.27157000029342,16.160245367346988]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.27157000029342,16.160245367346988]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 94.27157000029342, 16.160245367346988 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -261.00471924446924, -140.89284239559152 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.35298232323771,23.241657690291277]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.35298232323771,23.241657690291277]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.35298232323771,23.241657690291277]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.35298232323771,23.241657690291277]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 101.35298232323771, 23.241657690291277 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-136.71133923301613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-136.71133923301613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-136.71133923301613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-136.71133923301613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -256.82321608189386, -136.71133923301613 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.89368848470986,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.89368848470986,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.89368848470986,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.89368848470986,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 104.89368848470986, 33.86377617470771 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-254.73246450060617,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-254.73246450060617,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-254.73246450060617,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-254.73246450060617,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -254.73246450060617, -130.43908448915317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.434394646182,40.945188497652]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.434394646182,40.945188497652]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.434394646182,40.945188497652]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.434394646182,40.945188497652]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 108.434394646182, 40.945188497652 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -254.73246450060617, -130.43908448915317 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.51580696912629,48.026600820596286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.51580696912629,48.026600820596286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.51580696912629,48.026600820596286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.51580696912629,48.026600820596286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 115.51580696912629, 48.026600820596286 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -248.4602097567431, -122.07607816400241 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.51580696912629,51.56730698206843]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.51580696912629,51.56730698206843]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.51580696912629,51.56730698206843]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.51580696912629,51.56730698206843]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 115.51580696912629, 51.56730698206843 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-119.9853265827146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-119.9853265827146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-119.9853265827146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-119.9853265827146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -248.4602097567431, -119.9853265827146 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,58.64871930501272]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,58.64871930501272]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,58.64871930501272]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,58.64871930501272]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.05651313059843, 58.64871930501272 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -246.3694581754554, -115.80382342013922 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,69.27083778942915]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,69.27083778942915]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,69.27083778942915]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,69.27083778942915]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.05651313059843, 69.27083778942915 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -246.3694581754554, -109.53156867627627 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,108.21860556562274]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,108.21860556562274]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,108.21860556562274]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.05651313059843,108.21860556562274]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.05651313059843, 108.21860556562274 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -246.3694581754554, -109.53156867627627 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.59721929207058,133.00354869592798]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.59721929207058,133.00354869592798]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.59721929207058,133.00354869592798]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.59721929207058,133.00354869592798]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 122.59721929207058, 133.00354869592798 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -244.27870659416772, -71.89804021309783 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.13792545354272,136.54425485740012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.13792545354272,136.54425485740012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.13792545354272,136.54425485740012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.13792545354272,136.54425485740012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 126.13792545354272, 136.54425485740012 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -242.18795501288002, -69.80728863181002 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.219337776487,136.54425485740012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.219337776487,136.54425485740012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.219337776487,136.54425485740012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.219337776487,136.54425485740012]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 133.219337776487, 136.54425485740012 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -238.00645185030464, -69.80728863181002 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.0856932297363,125.92213637298369]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.0856932297363,125.92213637298369]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.0856932297363,125.92213637298369]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.0856932297363,125.92213637298369]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 165.0856932297363, 125.92213637298369 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-76.07954337567321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-76.07954337567321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-76.07954337567321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-76.07954337567321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -219.18968761871542, -76.07954337567321 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-Broadcast : 4148a220-4c31-4bf3-98be-b79e1a6a0a79, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-{ _id: '4148a220-4c31-4bf3-98be-b79e1a6a0a79',
- data: [ '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-Incoming : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Set Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-calling update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-called update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-Broadcast : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, sending data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{ _id: '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Set Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":456.3797253934889}
-calling update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":456.3797253934889}
-called update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":456.3797253934889}
-{ _id: '9ffe2a20-7fcb-4460-aa91-922b69f91e24',
- data: 23.892089620484683,
- type: 0 }
-Incoming : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Set Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-142.89770251998084}
-calling update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-142.89770251998084}
-called update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-142.89770251998084}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-142.89770251998084}
-Broadcast : d7d79305-cd6b-4653-a173-1284f76f5773, sending data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-142.89770251998084}
-Incoming : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Set Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-calling update on data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-called update on data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[539.7531363887159,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[539.7531363887159,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'eff68660-351e-44d1-974f-f984cb56f652',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-{ _id: 'd7d79305-cd6b-4653-a173-1284f76f5773',
- data: -142.89770251998084,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":456.3797253934889}
-Broadcast : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, sending data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":456.3797253934889}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-Broadcast : a59882d7-3daf-4574-b38e-4673bbac7db8, sending data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-{ _id: 'a59882d7-3daf-4574-b38e-4673bbac7db8', data: 3, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[539.7531363887159,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[539.7531363887159,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 539.7531363887159, -71.89804021309783 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-73.9887917943854]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-73.9887917943854]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-73.9887917943854]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-73.9887917943854]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, -73.9887917943854 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-73.9887917943854]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-73.9887917943854]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-73.9887917943854]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-73.9887917943854]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 531.3901300635652, -73.9887917943854 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-80.26104653824859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-80.26104653824859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-80.26104653824859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-80.26104653824859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 502.1196079255375, -80.26104653824859 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 433.1248057430438, -90.71480444468693 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.1317361663854,-94.89630760726232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.1317361663854,-94.89630760726232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.1317361663854,-94.89630760726232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.1317361663854,-94.89630760726232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 341.1317361663854, -94.89630760726232 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-94.89630760726232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-94.89630760726232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-94.89630760726232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-94.89630760726232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 230.3219023581379, -94.89630760726232 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[728.0579729038081,72.8115439509013]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[728.0579729038081,72.8115439509013]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[728.0579729038081,72.8115439509013]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[728.0579729038081,72.8115439509013]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 728.0579729038081, 72.8115439509013 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-107.44081709498846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-107.44081709498846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-107.44081709498846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-107.44081709498846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.2398138060272, -107.44081709498846 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.534190892535,65.73013162795701]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.534190892535,65.73013162795701]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.534190892535,65.73013162795701]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.534190892535,65.73013162795701]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 508.534190892535, 65.73013162795701 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-16.38678423380952,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-16.38678423380952,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-16.38678423380952,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-16.38678423380952,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -16.38678423380952, -111.62232025756384 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[289.0104088812616,65.73013162795701]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[289.0104088812616,65.73013162795701]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[289.0104088812616,65.73013162795701]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[289.0104088812616,65.73013162795701]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 289.0104088812616, 65.73013162795701 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-146.01338227364624,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-146.01338227364624,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -16.38678423380952, -111.62232025756384 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-146.01338227364624,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-146.01338227364624,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.67863161501487,58.64871930501272]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.67863161501487,58.64871930501272]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.67863161501487,58.64871930501272]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.67863161501487,58.64871930501272]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 129.67863161501487, 58.64871930501272 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -146.01338227364624, -111.62232025756384 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.7016837396834,48.026600820596286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.7016837396834,48.026600820596286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.7016837396834,48.026600820596286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.7016837396834,48.026600820596286]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 44.7016837396834, 48.026600820596286 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -290.2752413824969, -122.07607816400241 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.835328286434105,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.835328286434105,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.835328286434105,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.835328286434105,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 12.835328286434105, 33.86377617470771 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -309.09200561408613, -130.43908448915317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[5.753915963489817,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[5.753915963489817,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[5.753915963489817,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[5.753915963489817,33.86377617470771]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 5.753915963489817, 33.86377617470771 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -313.2735087766615, -130.43908448915317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-15.490321005343276,55.108013143540575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-15.490321005343276,55.108013143540575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-15.490321005343276,55.108013143540575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-15.490321005343276,55.108013143540575]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -15.490321005343276, 55.108013143540575 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-117.89457500142703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-117.89457500142703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -313.2735087766615, -130.43908448915317 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-117.89457500142703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-117.89457500142703]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.356676458592574,101.13719324267845]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.356676458592574,101.13719324267845]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.356676458592574,101.13719324267845]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.356676458592574,101.13719324267845]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -47.356676458592574, 101.13719324267845 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -325.81801826438755, -117.89457500142703 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.0602072659533,143.6256671803444]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.0602072659533,143.6256671803444]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.0602072659533,143.6256671803444]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.0602072659533,143.6256671803444]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -65.0602072659533, 143.6256671803444 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -65.62578546923464 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.51625845930175,45.212656721309486]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.51625845930175,45.212656721309486]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.51625845930175,45.212656721309486]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.51625845930175,45.212656721309486]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 218.51625845930175, 45.212656721309486 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-82.76373807331402,175.4920226335937]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-82.76373807331402,175.4920226335937]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-82.76373807331402,175.4920226335937]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-82.76373807331402,175.4920226335937]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -82.76373807331402, 175.4920226335937 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-46.80902123764554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-46.80902123764554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-46.80902123764554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-46.80902123764554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -365.5422983088537, -46.80902123764554 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[191.96096224826078,77.07901217455856]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[191.96096224826078,77.07901217455856]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-100.46726888067474,196.73625960242657]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-100.46726888067474,196.73625960242657]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-100.46726888067474,196.73625960242657]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-100.46726888067474,196.73625960242657]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,-34.26451174991939]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,-34.26451174991939]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4056660372196,114.25642687001618]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4056660372196,114.25642687001618]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 218.51625845930175, 45.212656721309486 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[191.96096224826078,77.07901217455856]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[191.96096224826078,77.07901217455856]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -365.5422983088537, -46.80902123764554 ] ],
- type: 14 }
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -100.46726888067474, 196.73625960242657 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.17079968803546,221.52120273273158]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.17079968803546,221.52120273273158]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,-34.26451174991939]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,-34.26451174991939]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4056660372196,114.25642687001618]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4056660372196,114.25642687001618]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -100.46726888067474, 196.73625960242657 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.17079968803546,221.52120273273158]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.17079968803546,221.52120273273158]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 165.4056660372196, 114.25642687001618 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,-19.629250680905443]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,-19.629250680905443]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,-19.629250680905443]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,-19.629250680905443]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -386.4498141217306, -19.629250680905443 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.47248831059483,146.1227823232657]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.47248831059483,146.1227823232657]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.47248831059483,146.1227823232657]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.47248831059483,146.1227823232657]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 149.47248831059483, 146.1227823232657 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,242.76543970156445]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,242.76543970156445]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,242.76543970156445]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,242.76543970156445]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,156.74490080768192]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,156.74490080768192]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,249.84685202450873]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,249.84685202450873]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-2.903238030603916]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-2.903238030603916]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -128.792918172452, 242.76543970156445 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -392.72206886559366, -7.084741193179298 ] ],
- type: 14 }
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 149.47248831059483, 146.1227823232657 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,156.74490080768192]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,156.74490080768192]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,249.84685202450873]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,249.84685202450873]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,162.05596004989047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,162.05596004989047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -392.72206886559366, -7.084741193179298 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-2.903238030603916]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-2.903238030603916]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -132.33362433392415, 249.84685202450873 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,162.05596004989047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,162.05596004989047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 144.16142906838672, 162.05596004989047 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,253.38755818598088]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,253.38755818598088]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-0.8124864493163386]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-0.8124864493163386]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -132.33362433392415, 249.84685202450873 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,253.38755818598088]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,253.38755818598088]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -394.81282044688135, -2.903238030603916 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-0.8124864493163386]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-0.8124864493163386]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,177.98913777651524]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,177.98913777651524]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,177.98913777651524]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,177.98913777651524]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 144.16142906838672, 177.98913777651524 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,264.0096766703973]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,264.0096766703973]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,264.0096766703973]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,264.0096766703973]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -132.33362433392415, 264.0096766703973 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,5.459768294546848]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,5.459768294546848]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,5.459768294546848]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,5.459768294546848]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -394.81282044688135, 5.459768294546848 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,193.92231550313954]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,193.92231550313954]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,193.92231550313954]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,193.92231550313954]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 144.16142906838672, 193.92231550313954 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,274.631795154814]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,274.631795154814]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,274.631795154814]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,274.631795154814]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -132.33362433392415, 274.631795154814 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -394.81282044688135, 11.732023038409807 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,204.5444339875562]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,204.5444339875562]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,204.5444339875562]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.16142906838672,204.5444339875562]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 144.16142906838672, 204.5444339875562 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,281.71320747775826]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,281.71320747775826]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -132.33362433392415, 274.631795154814 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,15.913526200985189]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,15.913526200985189]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -394.81282044688135, 11.732023038409807 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,15.913526200985189]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,15.913526200985189]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,281.71320747775826]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-132.33362433392415,281.71320747775826]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.47248831059483,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.47248831059483,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.47248831059483,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.47248831059483,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 149.47248831059483, 209.8554932297643 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.792918172452,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -128.792918172452, 285.2539136392302 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -392.72206886559366, 18.004277782272993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[154.78354755280316,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[154.78354755280316,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[154.78354755280316,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[154.78354755280316,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 154.78354755280316, 209.8554932297643 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.25221201097986,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.25221201097986,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.25221201097986,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.25221201097986,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -125.25221201097986, 285.2539136392302 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -390.63131728430596, 18.004277782272993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.09460679501126,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.09460679501126,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.09460679501126,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.09460679501126,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 160.09460679501126, 209.8554932297643 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-121.7115058495076,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-121.7115058495076,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-121.7115058495076,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-121.7115058495076,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -121.7115058495076, 285.2539136392302 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-388.5405657030183,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-388.5405657030183,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -390.63131728430596, 18.004277782272993 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-388.5405657030183,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-388.5405657030183,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4056660372196,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4056660372196,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4056660372196,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4056660372196,209.8554932297643]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 165.4056660372196, 209.8554932297643 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.17079968803546,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.17079968803546,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.17079968803546,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.17079968803546,285.2539136392302]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -118.17079968803546, 285.2539136392302 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -386.4498141217306, 18.004277782272993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[191.96096224826078,193.92231550313954]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[191.96096224826078,193.92231550313954]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[191.96096224826078,193.92231550313954]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[191.96096224826078,193.92231550313954]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 191.96096224826078, 193.92231550313954 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-100.46726888067474,274.631795154814]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-100.46726888067474,274.631795154814]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-100.46726888067474,274.631795154814]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-100.46726888067474,274.631795154814]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -100.46726888067474, 274.631795154814 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -375.9960562152921, 11.732023038409807 ] ],
- type: 14 }
-calling update on data {"type":1,"data":[],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-called update on data {"type":1,"data":[],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":[],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-Broadcast : 4148a220-4c31-4bf3-98be-b79e1a6a0a79, sending data {"type":1,"data":[],"_id":"4148a220-4c31-4bf3-98be-b79e1a6a0a79"}
-{ _id: '4148a220-4c31-4bf3-98be-b79e1a6a0a79',
- data: [],
- type: 1 }
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'eff68660-351e-44d1-974f-f984cb56f652',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":367.61755125083175}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":367.61755125083175}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":367.61755125083175}
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":114.80354030818512}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":114.80354030818512}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":114.80354030818512}
-Incoming : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Set Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":4}
-calling update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":4}
-called update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":4}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":4}
-Broadcast : e3b590f8-23f0-4feb-831d-cbc9a516828a, sending data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":4}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,114.09967808144893]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,114.09967808144893]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: 144.68358481938736,
- type: 0 }
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: -229.10791037951532,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":114.80354030818512}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":114.80354030818512}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":367.61755125083175}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":367.61755125083175}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,114.09967808144893]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,114.09967808144893]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 112.94151859797603, 114.09967808144893 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: 'e3b590f8-23f0-4feb-831d-cbc9a516828a', data: 4, type: 0 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 443.57856364948213, 191.53665902915122 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,110.96355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,110.96355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,110.96355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,110.96355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 112.94151859797603, 110.96355070951768 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,189.44590744786342]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,189.44590744786342]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,189.44590744786342]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,189.44590744786342]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 443.57856364948213, 189.44590744786342 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,104.69129596565426]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,104.69129596565426]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,104.69129596565426]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,104.69129596565426]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 112.94151859797603, 104.69129596565426 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 443.57856364948213, 185.26440428528804 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,98.4190412217913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,98.4190412217913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,98.4190412217913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.94151859797603,98.4190412217913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 112.94151859797603, 98.4190412217913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 443.57856364948213, 185.26440428528804 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[443.57856364948213,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.80539122604432,76.46614961827072]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.80539122604432,76.46614961827072]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.80539122604432,76.46614961827072]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.80539122604432,76.46614961827072]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 109.80539122604432, 76.46614961827072 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 441.48781206819456, 166.44764005369893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.2608817383184,57.64938538668139]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.2608817383184,57.64938538668139]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.2608817383184,57.64938538668139]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.2608817383184,57.64938538668139]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 97.2608817383184, 57.64938538668139 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,153.9031305659728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,153.9031305659728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,153.9031305659728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,153.9031305659728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 433.1248057430438, 153.9031305659728 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17186276286589,13.743602179639993]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17186276286589,13.743602179639993]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17186276286589,13.743602179639993]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17186276286589,13.743602179639993]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 72.17186276286589, 13.743602179639993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[416.39879309274227,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[416.39879309274227,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[416.39879309274227,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[416.39879309274227,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 416.39879309274227, 124.63260842794512 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 395.49127727986536, 80.72682522090349 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[374.58376146698845,24.276532526135952]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[374.58376146698845,24.276532526135952]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[374.58376146698845,24.276532526135952]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[374.58376146698845,24.276532526135952]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 374.58376146698845, 24.276532526135952 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[359.9485003979745,-32.17376016863159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[359.9485003979745,-32.17376016863159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[359.9485003979745,-32.17376016863159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[359.9485003979745,-32.17376016863159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 359.9485003979745, -32.17376016863159 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 353.67624565411154, -78.17029495696079 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[349.49474249153616,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[349.49474249153616,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[349.49474249153616,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[349.49474249153616,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 349.49474249153616, -126.25758132657779 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.222487747673,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.222487747673,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.222487747673,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.222487747673,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 343.222487747673, -186.88937718392071 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[339.0409845850976,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[339.0409845850976,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[339.0409845850976,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[339.0409845850976,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 339.0409845850976, -262.1564341102775 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 324.40572351608387, -352.0587521056482 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -456.5963311700326 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -487.957604889348 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-506.7743691209372]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-506.7743691209372]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-506.7743691209372]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-506.7743691209372]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -506.7743691209372 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-517.2281270273756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-517.2281270273756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-517.2281270273756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-517.2281270273756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -517.2281270273756 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -531.8633880963895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -548.589400746691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -579.9506744660063 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -594.5859355350201 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-598.7674386975955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-598.7674386975955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-598.7674386975955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-598.7674386975955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -598.7674386975955 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -600.8581902788832 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -602.9489418601709 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-611.3119481853216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-611.3119481853216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-611.3119481853216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-611.3119481853216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -611.3119481853216 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 295.1352013780562, -615.493451347897 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 295.1352013780562, -619.6749545104724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 290.9536982154808, -621.7657060917601 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 290.9536982154808, -619.6749545104724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 290.9536982154808, -617.5842029291847 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-609.2211966040339]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-609.2211966040339]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-609.2211966040339]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-609.2211966040339]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 290.9536982154808, -609.2211966040339 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -579.9506744660063 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 324.40572351608387, -531.8633880963895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 353.67624565411154, -462.8685859138957 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.7465557591499419,85.85168947421289]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.7465557591499419,85.85168947421289]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.7465557591499419,85.85168947421289]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.7465557591499419,85.85168947421289]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 0.7465557591499419, 85.85168947421289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,-402.23679005655265]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,-402.23679005655265]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,-402.23679005655265]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,-402.23679005655265]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 370.40225830441307, -402.23679005655265 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.65233896619134,189.34389274795353]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.65233896619134,189.34389274795353]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.65233896619134,189.34389274795353]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.65233896619134,189.34389274795353]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 44.65233896619134, 189.34389274795353 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 399.67278044244074, -333.24198787405896 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 433.1248057430438, -257.9749309477021 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 495.8473531816743, -140.89284239559152 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 592.0219259209081, 11.732023038409807 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[692.3780018227172,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[692.3780018227172,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[692.3780018227172,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[692.3780018227172,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 692.3780018227172, 166.44764005369893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,310.7094991625495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,310.7094991625495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,310.7094991625495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,310.7094991625495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 786.4618229806632, 310.7094991625495 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 851.2751220005815, 411.0655750643584 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,425.7008361333724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,425.7008361333724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,425.7008361333724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,425.7008361333724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 863.8196314883077, 425.7008361333724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,444.5176003649615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,444.5176003649615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,444.5176003649615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,444.5176003649615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 872.1826378134584, 444.5176003649615 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,448.69910352753686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,448.69910352753686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,448.69910352753686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,448.69910352753686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 872.1826378134584, 448.69910352753686 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,444.5176003649615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,444.5176003649615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,444.5176003649615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,444.5176003649615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 872.1826378134584, 444.5176003649615 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,442.4268487836739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,442.4268487836739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,442.4268487836739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,442.4268487836739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 868.001134650883, 442.4268487836739 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,440.3360972023861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,440.3360972023861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,440.3360972023861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,440.3360972023861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 865.9103830695955, 440.3360972023861 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,438.2453456210985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,438.2453456210985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,438.2453456210985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,438.2453456210985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 861.7288799070201, 438.2453456210985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,434.06384245852314]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,434.06384245852314]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,434.06384245852314]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,434.06384245852314]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 857.5473767444447, 434.06384245852314 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[847.0936188380061,429.88233929594776]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[847.0936188380061,429.88233929594776]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[847.0936188380061,429.88233929594776]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[847.0936188380061,429.88233929594776]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 847.0936188380061, 429.88233929594776 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[840.8213640941432,425.7008361333724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[840.8213640941432,425.7008361333724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[840.8213640941432,425.7008361333724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[840.8213640941432,425.7008361333724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 840.8213640941432, 425.7008361333724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,423.6100845520846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,423.6100845520846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,423.6100845520846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,423.6100845520846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 838.7306125128554, 423.6100845520846 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,421.519332970797]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,421.519332970797]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,421.519332970797]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,421.519332970797]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 834.5491093502802, 421.519332970797 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[830.3676061877048,419.4285813895092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[830.3676061877048,419.4285813895092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[830.3676061877048,419.4285813895092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[830.3676061877048,419.4285813895092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 830.3676061877048, 419.4285813895092 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,417.3378298082216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,417.3378298082216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,417.3378298082216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,417.3378298082216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 826.1861030251295, 417.3378298082216 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 824.0953514438417, 415.2470782269338 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 822.0045998625541, 415.2470782269338 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,415.2470782269338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 819.9138482812663, 415.2470782269338 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,413.15632664564623]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,413.15632664564623]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,413.15632664564623]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,413.15632664564623]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 813.6415935374033, 413.15632664564623 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,413.15632664564623]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,413.15632664564623]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,413.15632664564623]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,413.15632664564623]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 811.5508419561155, 413.15632664564623 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[807.3693387935401,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[807.3693387935401,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[807.3693387935401,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[807.3693387935401,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 807.3693387935401, 411.0655750643584 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 803.1878356309647, 411.0655750643584 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'eff68660-351e-44d1-974f-f984cb56f652',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-Incoming : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Set Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-177.8328791249096}
-calling update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-177.8328791249096}
-called update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-177.8328791249096}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-177.8328791249096}
-Broadcast : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, sending data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-177.8328791249096}
-{ _id: 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9',
- data: -177.8328791249096,
- type: 0 }
-Incoming : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Set Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-361.0601056028569}
-calling update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-361.0601056028569}
-called update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-361.0601056028569}
-Incoming : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Set Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-calling update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-called update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-Broadcast : 672c99e2-ba2a-419b-9f06-903d9aeba563, sending data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-{ _id: '672c99e2-ba2a-419b-9f06-903d9aeba563', data: 0, type: 0 }
-calling update on data {"type":6,"data":"200 200","_id":"556ff045-29eb-4227-93c1-f320df3da3b3"}
-called update on data {"type":6,"data":"200 200","_id":"556ff045-29eb-4227-93c1-f320df3da3b3"}
-undefined
-null
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","8af1e1a7-3da5-4c53-a314-f0b6c892d9a6"],["5c207bd2-0390-5c35-8972-06d185f387fb","4233a5b1-f703-44d8-a4f1-55a230db04e7"],["2a238eef-0bbb-5b78-b173-37b574fec97f","8a50fbb3-768f-4f03-84b5-fc84aaa4f21c"],["911954a3-bebc-5b20-81f3-3091a2e11907","672c99e2-ba2a-419b-9f06-903d9aeba563"],["7b71638c-05b8-5573-9aa5-c737c9406a86","e45192a6-2f99-48aa-ac1f-06cc5fd219f9"],["13a3cc01-c286-57e1-8746-baa3ced34e76","82d314ed-e4d4-46e4-ab5c-6fdd8002ea19"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","cc496f45-ce13-4ce5-859c-215d8634bc61"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3a9af79b-cca5-4901-bf0a-1a657e5fdb98"],["43606ee9-0825-51a3-98b2-06d36fdfd153","026d1b3e-debe-4e63-8a93-54ebd635b78e"],["51529209-4838-51c5-a520-0044fddf139c","556ff045-29eb-4227-93c1-f320df3da3b3"]],"_id":"3f886fd6-7d94-445f-88ab-0e1077dbf480"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","8af1e1a7-3da5-4c53-a314-f0b6c892d9a6"],["5c207bd2-0390-5c35-8972-06d185f387fb","4233a5b1-f703-44d8-a4f1-55a230db04e7"],["2a238eef-0bbb-5b78-b173-37b574fec97f","8a50fbb3-768f-4f03-84b5-fc84aaa4f21c"],["911954a3-bebc-5b20-81f3-3091a2e11907","672c99e2-ba2a-419b-9f06-903d9aeba563"],["7b71638c-05b8-5573-9aa5-c737c9406a86","e45192a6-2f99-48aa-ac1f-06cc5fd219f9"],["13a3cc01-c286-57e1-8746-baa3ced34e76","82d314ed-e4d4-46e4-ab5c-6fdd8002ea19"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","cc496f45-ce13-4ce5-859c-215d8634bc61"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3a9af79b-cca5-4901-bf0a-1a657e5fdb98"],["43606ee9-0825-51a3-98b2-06d36fdfd153","026d1b3e-debe-4e63-8a93-54ebd635b78e"],["51529209-4838-51c5-a520-0044fddf139c","556ff045-29eb-4227-93c1-f320df3da3b3"]],"_id":"3f886fd6-7d94-445f-88ab-0e1077dbf480"}
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Set Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":-90.69104152973387}
-calling update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":-90.69104152973387}
-called update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":-90.69104152973387}
-Incoming : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Set Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-43.81989175014314}
-calling update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-43.81989175014314}
-called update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-43.81989175014314}
-Incoming : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Set Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-calling update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-called update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-calling update on data {"type":6,"data":"200 200","_id":"255415d7-52dd-4a1f-8b8f-4503a6f56771"}
-called update on data {"type":6,"data":"200 200","_id":"255415d7-52dd-4a1f-8b8f-4503a6f56771"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","571ecd75-8263-47fc-9741-f9f876a4b2da"],["5c207bd2-0390-5c35-8972-06d185f387fb","9d04275c-0bc8-4e43-8142-034824b2deae"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f2822f08-9fd6-4816-ba61-0dc0ea45a0c0"],["911954a3-bebc-5b20-81f3-3091a2e11907","78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b"],["7b71638c-05b8-5573-9aa5-c737c9406a86","9ffe2a20-7fcb-4460-aa91-922b69f91e24"],["13a3cc01-c286-57e1-8746-baa3ced34e76","d7d79305-cd6b-4653-a173-1284f76f5773"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","a59882d7-3daf-4574-b38e-4673bbac7db8"],["51529209-4838-51c5-a520-0044fddf139c","255415d7-52dd-4a1f-8b8f-4503a6f56771"]],"_id":"80586583-40b0-4d17-9f6f-12c4bf633d3a"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","571ecd75-8263-47fc-9741-f9f876a4b2da"],["5c207bd2-0390-5c35-8972-06d185f387fb","9d04275c-0bc8-4e43-8142-034824b2deae"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f2822f08-9fd6-4816-ba61-0dc0ea45a0c0"],["911954a3-bebc-5b20-81f3-3091a2e11907","78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b"],["7b71638c-05b8-5573-9aa5-c737c9406a86","9ffe2a20-7fcb-4460-aa91-922b69f91e24"],["13a3cc01-c286-57e1-8746-baa3ced34e76","d7d79305-cd6b-4653-a173-1284f76f5773"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","a59882d7-3daf-4574-b38e-4673bbac7db8"],["51529209-4838-51c5-a520-0044fddf139c","255415d7-52dd-4a1f-8b8f-4503a6f56771"]],"_id":"80586583-40b0-4d17-9f6f-12c4bf633d3a"}
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-179.45321567239102}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-179.45321567239102}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-179.45321567239102}
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":213.88135107802282}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":213.88135107802282}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":213.88135107802282}
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-calling update on data {"type":6,"data":"200 200","_id":"6dfbd194-3fc7-406f-afdf-4da660582c3f"}
-called update on data {"type":6,"data":"200 200","_id":"6dfbd194-3fc7-406f-afdf-4da660582c3f"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","b681f3b1-5d7b-40e8-bc74-ab179b8cae4d"],["5c207bd2-0390-5c35-8972-06d185f387fb","47f3540c-7ded-4c5a-a35e-67b8770c7564"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9c48c01b-ff87-4633-ab32-620bbe191b04"],["911954a3-bebc-5b20-81f3-3091a2e11907","7d5ef008-d5df-4ce3-9755-0c11310c5830"],["7b71638c-05b8-5573-9aa5-c737c9406a86","42373536-4991-4b59-aaf5-34559e43adef"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9a0e2341-8c47-4d60-84ec-5fa6158164b1"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e3b590f8-23f0-4feb-831d-cbc9a516828a"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3585fbf3-f32c-497f-aae6-9afcba185724"],["43606ee9-0825-51a3-98b2-06d36fdfd153","77d74b99-31c4-47b2-9d57-1138275216b7"],["51529209-4838-51c5-a520-0044fddf139c","6dfbd194-3fc7-406f-afdf-4da660582c3f"]],"_id":"6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","b681f3b1-5d7b-40e8-bc74-ab179b8cae4d"],["5c207bd2-0390-5c35-8972-06d185f387fb","47f3540c-7ded-4c5a-a35e-67b8770c7564"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9c48c01b-ff87-4633-ab32-620bbe191b04"],["911954a3-bebc-5b20-81f3-3091a2e11907","7d5ef008-d5df-4ce3-9755-0c11310c5830"],["7b71638c-05b8-5573-9aa5-c737c9406a86","42373536-4991-4b59-aaf5-34559e43adef"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9a0e2341-8c47-4d60-84ec-5fa6158164b1"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e3b590f8-23f0-4feb-831d-cbc9a516828a"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3585fbf3-f32c-497f-aae6-9afcba185724"],["43606ee9-0825-51a3-98b2-06d36fdfd153","77d74b99-31c4-47b2-9d57-1138275216b7"],["51529209-4838-51c5-a520-0044fddf139c","6dfbd194-3fc7-406f-afdf-4da660582c3f"]],"_id":"6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"}
-calling update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-called update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-calling update on data {"type":5,"data":[],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-called update on data {"type":5,"data":[],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-calling update on data {"type":1,"data":[],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-called update on data {"type":1,"data":[],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-calling update on data {"type":6,"data":"a nested collection","_id":"3e1524fe-0745-4105-b122-a9681eefb5c7"}
-called update on data {"type":6,"data":"a nested collection","_id":"3e1524fe-0745-4105-b122-a9681eefb5c7"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-Incoming : 43636484-5d3d-4eea-a347-161c47d23692, receiving Set Field with data {"_id":"43636484-5d3d-4eea-a347-161c47d23692","type":0,"data":1}
-calling update on data {"_id":"43636484-5d3d-4eea-a347-161c47d23692","type":0,"data":1}
-called update on data {"_id":"43636484-5d3d-4eea-a347-161c47d23692","type":0,"data":1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-calling update on data {"type":6,"data":"Transparent","_id":"66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"}
-called update on data {"type":6,"data":"Transparent","_id":"66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-calling update on data {"type":12,"data":{},"_id":"1f54d151-88ac-4e79-9053-1e656f25428a"}
-called update on data {"type":12,"data":{},"_id":"1f54d151-88ac-4e79-9053-1e656f25428a"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"],["59b58624-916f-50a0-8efa-7003a805bfad","1f54d151-88ac-4e79-9053-1e656f25428a"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"],["59b58624-916f-50a0-8efa-7003a805bfad","1f54d151-88ac-4e79-9053-1e656f25428a"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-calling update on data {"type":5,"data":[],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Incoming : 7533f60b-3a1d-4529-8b59-6e030277ca70, receiving Set Field with data {"_id":"7533f60b-3a1d-4529-8b59-6e030277ca70","type":0,"data":290.9536982154808}
-calling update on data {"_id":"7533f60b-3a1d-4529-8b59-6e030277ca70","type":0,"data":290.9536982154808}
-called update on data {"_id":"7533f60b-3a1d-4529-8b59-6e030277ca70","type":0,"data":290.9536982154808}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Incoming : 7f7d3044-52af-4af8-9745-175eff2ac608, receiving Set Field with data {"_id":"7f7d3044-52af-4af8-9745-175eff2ac608","type":0,"data":-609.2211966040339}
-calling update on data {"_id":"7f7d3044-52af-4af8-9745-175eff2ac608","type":0,"data":-609.2211966040339}
-called update on data {"_id":"7f7d3044-52af-4af8-9745-175eff2ac608","type":0,"data":-609.2211966040339}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Incoming : bae0c4d9-0d4d-49fe-8200-83479aaf807a, receiving Set Field with data {"_id":"bae0c4d9-0d4d-49fe-8200-83479aaf807a","type":0,"data":512.2341374154839}
-calling update on data {"_id":"bae0c4d9-0d4d-49fe-8200-83479aaf807a","type":0,"data":512.2341374154839}
-called update on data {"_id":"bae0c4d9-0d4d-49fe-8200-83479aaf807a","type":0,"data":512.2341374154839}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Incoming : f97d59e2-5f74-4ad2-a851-8c048690c3b1, receiving Set Field with data {"_id":"f97d59e2-5f74-4ad2-a851-8c048690c3b1","type":0,"data":1020.2867716683925}
-calling update on data {"_id":"f97d59e2-5f74-4ad2-a851-8c048690c3b1","type":0,"data":1020.2867716683925}
-called update on data {"_id":"f97d59e2-5f74-4ad2-a851-8c048690c3b1","type":0,"data":1020.2867716683925}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Incoming : 73837ad4-e23b-488a-a4c9-efa84099a4a0, receiving Set Field with data {"_id":"73837ad4-e23b-488a-a4c9-efa84099a4a0","type":0,"data":0}
-calling update on data {"_id":"73837ad4-e23b-488a-a4c9-efa84099a4a0","type":0,"data":0}
-called update on data {"_id":"73837ad4-e23b-488a-a4c9-efa84099a4a0","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Incoming : c57f1577-c377-4dba-9b89-db6763c17fee, receiving Set Field with data {"_id":"c57f1577-c377-4dba-9b89-db6763c17fee","type":0,"data":0}
-calling update on data {"_id":"c57f1577-c377-4dba-9b89-db6763c17fee","type":0,"data":0}
-called update on data {"_id":"c57f1577-c377-4dba-9b89-db6763c17fee","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Incoming : 24c48da4-b92d-48b0-bdec-36a464c6cfbe, receiving Set Field with data {"_id":"24c48da4-b92d-48b0-bdec-36a464c6cfbe","type":0,"data":-1}
-calling update on data {"_id":"24c48da4-b92d-48b0-bdec-36a464c6cfbe","type":0,"data":-1}
-called update on data {"_id":"24c48da4-b92d-48b0-bdec-36a464c6cfbe","type":0,"data":-1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19',
- data: -460.1379163726946,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-361.0601056028569}
-Broadcast : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, sending data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-361.0601056028569}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"556ff045-29eb-4227-93c1-f320df3da3b3"}],"ok":1}
-Wrote {"type":6,"data":"200 200","_id":"556ff045-29eb-4227-93c1-f320df3da3b3"}
-Broadcast : 556ff045-29eb-4227-93c1-f320df3da3b3, sending data {"type":6,"data":"200 200","_id":"556ff045-29eb-4227-93c1-f320df3da3b3"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","8af1e1a7-3da5-4c53-a314-f0b6c892d9a6"],["5c207bd2-0390-5c35-8972-06d185f387fb","4233a5b1-f703-44d8-a4f1-55a230db04e7"],["2a238eef-0bbb-5b78-b173-37b574fec97f","8a50fbb3-768f-4f03-84b5-fc84aaa4f21c"],["911954a3-bebc-5b20-81f3-3091a2e11907","672c99e2-ba2a-419b-9f06-903d9aeba563"],["7b71638c-05b8-5573-9aa5-c737c9406a86","e45192a6-2f99-48aa-ac1f-06cc5fd219f9"],["13a3cc01-c286-57e1-8746-baa3ced34e76","82d314ed-e4d4-46e4-ab5c-6fdd8002ea19"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","cc496f45-ce13-4ce5-859c-215d8634bc61"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3a9af79b-cca5-4901-bf0a-1a657e5fdb98"],["43606ee9-0825-51a3-98b2-06d36fdfd153","026d1b3e-debe-4e63-8a93-54ebd635b78e"],["51529209-4838-51c5-a520-0044fddf139c","556ff045-29eb-4227-93c1-f320df3da3b3"]],"_id":"3f886fd6-7d94-445f-88ab-0e1077dbf480"}
-Broadcast : 3f886fd6-7d94-445f-88ab-0e1077dbf480, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","8af1e1a7-3da5-4c53-a314-f0b6c892d9a6"],["5c207bd2-0390-5c35-8972-06d185f387fb","4233a5b1-f703-44d8-a4f1-55a230db04e7"],["2a238eef-0bbb-5b78-b173-37b574fec97f","8a50fbb3-768f-4f03-84b5-fc84aaa4f21c"],["911954a3-bebc-5b20-81f3-3091a2e11907","672c99e2-ba2a-419b-9f06-903d9aeba563"],["7b71638c-05b8-5573-9aa5-c737c9406a86","e45192a6-2f99-48aa-ac1f-06cc5fd219f9"],["13a3cc01-c286-57e1-8746-baa3ced34e76","82d314ed-e4d4-46e4-ab5c-6fdd8002ea19"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","cc496f45-ce13-4ce5-859c-215d8634bc61"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3a9af79b-cca5-4901-bf0a-1a657e5fdb98"],["43606ee9-0825-51a3-98b2-06d36fdfd153","026d1b3e-debe-4e63-8a93-54ebd635b78e"],["51529209-4838-51c5-a520-0044fddf139c","556ff045-29eb-4227-93c1-f320df3da3b3"]],"_id":"3f886fd6-7d94-445f-88ab-0e1077dbf480"}
-{ _id: '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '8af1e1a7-3da5-4c53-a314-f0b6c892d9a6' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '4233a5b1-f703-44d8-a4f1-55a230db04e7' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '8a50fbb3-768f-4f03-84b5-fc84aaa4f21c' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '672c99e2-ba2a-419b-9f06-903d9aeba563' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- 'cc496f45-ce13-4ce5-859c-215d8634bc61' ],
- [ 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- '3a9af79b-cca5-4901-bf0a-1a657e5fdb98' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- '026d1b3e-debe-4e63-8a93-54ebd635b78e' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '556ff045-29eb-4227-93c1-f320df3da3b3' ] ],
- type: 5 }
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'eff68660-351e-44d1-974f-f984cb56f652',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-{ _id: '9ffe2a20-7fcb-4460-aa91-922b69f91e24',
- data: 456.3797253934889,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":-90.69104152973387}
-Broadcast : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, sending data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":-90.69104152973387}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-43.81989175014314}
-Broadcast : d7d79305-cd6b-4653-a173-1284f76f5773, sending data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-43.81989175014314}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-Broadcast : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, sending data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-{ _id: '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b', data: 0, type: 0 }
-{ _id: 'd7d79305-cd6b-4653-a173-1284f76f5773',
- data: -43.81989175014314,
- type: 0 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"255415d7-52dd-4a1f-8b8f-4503a6f56771"}],"ok":1}
-Wrote {"type":6,"data":"200 200","_id":"255415d7-52dd-4a1f-8b8f-4503a6f56771"}
-Broadcast : 255415d7-52dd-4a1f-8b8f-4503a6f56771, sending data {"type":6,"data":"200 200","_id":"255415d7-52dd-4a1f-8b8f-4503a6f56771"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","571ecd75-8263-47fc-9741-f9f876a4b2da"],["5c207bd2-0390-5c35-8972-06d185f387fb","9d04275c-0bc8-4e43-8142-034824b2deae"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f2822f08-9fd6-4816-ba61-0dc0ea45a0c0"],["911954a3-bebc-5b20-81f3-3091a2e11907","78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b"],["7b71638c-05b8-5573-9aa5-c737c9406a86","9ffe2a20-7fcb-4460-aa91-922b69f91e24"],["13a3cc01-c286-57e1-8746-baa3ced34e76","d7d79305-cd6b-4653-a173-1284f76f5773"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","a59882d7-3daf-4574-b38e-4673bbac7db8"],["51529209-4838-51c5-a520-0044fddf139c","255415d7-52dd-4a1f-8b8f-4503a6f56771"]],"_id":"80586583-40b0-4d17-9f6f-12c4bf633d3a"}
-Broadcast : 80586583-40b0-4d17-9f6f-12c4bf633d3a, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","571ecd75-8263-47fc-9741-f9f876a4b2da"],["5c207bd2-0390-5c35-8972-06d185f387fb","9d04275c-0bc8-4e43-8142-034824b2deae"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f2822f08-9fd6-4816-ba61-0dc0ea45a0c0"],["911954a3-bebc-5b20-81f3-3091a2e11907","78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b"],["7b71638c-05b8-5573-9aa5-c737c9406a86","9ffe2a20-7fcb-4460-aa91-922b69f91e24"],["13a3cc01-c286-57e1-8746-baa3ced34e76","d7d79305-cd6b-4653-a173-1284f76f5773"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","a59882d7-3daf-4574-b38e-4673bbac7db8"],["51529209-4838-51c5-a520-0044fddf139c","255415d7-52dd-4a1f-8b8f-4503a6f56771"]],"_id":"80586583-40b0-4d17-9f6f-12c4bf633d3a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '571ecd75-8263-47fc-9741-f9f876a4b2da' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '9d04275c-0bc8-4e43-8142-034824b2deae' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f2822f08-9fd6-4816-ba61-0dc0ea45a0c0' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '9ffe2a20-7fcb-4460-aa91-922b69f91e24' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- 'd7d79305-cd6b-4653-a173-1284f76f5773' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- 'a59882d7-3daf-4574-b38e-4673bbac7db8' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '255415d7-52dd-4a1f-8b8f-4503a6f56771' ] ],
- type: 5 }
-{ _id: '255415d7-52dd-4a1f-8b8f-4503a6f56771',
- data: '200 200',
- type: 6 }
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data: [ 'eff68660-351e-44d1-974f-f984cb56f652' ],
- type: 1 }
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: 367.61755125083175,
- type: 0 }
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: 114.80354030818512,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":213.88135107802282}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":213.88135107802282}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-179.45321567239102}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-179.45321567239102}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"6dfbd194-3fc7-406f-afdf-4da660582c3f"}],"ok":1}
-Wrote {"type":6,"data":"200 200","_id":"6dfbd194-3fc7-406f-afdf-4da660582c3f"}
-Broadcast : 6dfbd194-3fc7-406f-afdf-4da660582c3f, sending data {"type":6,"data":"200 200","_id":"6dfbd194-3fc7-406f-afdf-4da660582c3f"}
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830', data: 0, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","b681f3b1-5d7b-40e8-bc74-ab179b8cae4d"],["5c207bd2-0390-5c35-8972-06d185f387fb","47f3540c-7ded-4c5a-a35e-67b8770c7564"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9c48c01b-ff87-4633-ab32-620bbe191b04"],["911954a3-bebc-5b20-81f3-3091a2e11907","7d5ef008-d5df-4ce3-9755-0c11310c5830"],["7b71638c-05b8-5573-9aa5-c737c9406a86","42373536-4991-4b59-aaf5-34559e43adef"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9a0e2341-8c47-4d60-84ec-5fa6158164b1"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e3b590f8-23f0-4feb-831d-cbc9a516828a"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3585fbf3-f32c-497f-aae6-9afcba185724"],["43606ee9-0825-51a3-98b2-06d36fdfd153","77d74b99-31c4-47b2-9d57-1138275216b7"],["51529209-4838-51c5-a520-0044fddf139c","6dfbd194-3fc7-406f-afdf-4da660582c3f"]],"_id":"6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"}
-Broadcast : 6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","b681f3b1-5d7b-40e8-bc74-ab179b8cae4d"],["5c207bd2-0390-5c35-8972-06d185f387fb","47f3540c-7ded-4c5a-a35e-67b8770c7564"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9c48c01b-ff87-4633-ab32-620bbe191b04"],["911954a3-bebc-5b20-81f3-3091a2e11907","7d5ef008-d5df-4ce3-9755-0c11310c5830"],["7b71638c-05b8-5573-9aa5-c737c9406a86","42373536-4991-4b59-aaf5-34559e43adef"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9a0e2341-8c47-4d60-84ec-5fa6158164b1"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e3b590f8-23f0-4feb-831d-cbc9a516828a"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3585fbf3-f32c-497f-aae6-9afcba185724"],["43606ee9-0825-51a3-98b2-06d36fdfd153","77d74b99-31c4-47b2-9d57-1138275216b7"],["51529209-4838-51c5-a520-0044fddf139c","6dfbd194-3fc7-406f-afdf-4da660582c3f"]],"_id":"6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-Broadcast : 0dc04257-8187-4391-a1bf-a63c30a9e922, sending data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-Broadcast : 377fa87a-6cfd-45e1-b24c-4ba286971304, sending data {"type":5,"data":[],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-{ _id: '0dc04257-8187-4391-a1bf-a63c30a9e922',
- data: {},
- type: 12 }
-{ _id: '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'b681f3b1-5d7b-40e8-bc74-ab179b8cae4d' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '47f3540c-7ded-4c5a-a35e-67b8770c7564' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '9c48c01b-ff87-4633-ab32-620bbe191b04' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '7d5ef008-d5df-4ce3-9755-0c11310c5830' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '42373536-4991-4b59-aaf5-34559e43adef' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '9a0e2341-8c47-4d60-84ec-5fa6158164b1' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- 'e3b590f8-23f0-4feb-831d-cbc9a516828a' ],
- [ 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- '3585fbf3-f32c-497f-aae6-9afcba185724' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- '77d74b99-31c4-47b2-9d57-1138275216b7' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '6dfbd194-3fc7-406f-afdf-4da660582c3f' ] ],
- type: 5 }
-{ _id: '377fa87a-6cfd-45e1-b24c-4ba286971304',
- data: [],
- type: 5 }
-{ _id: '377fa87a-6cfd-45e1-b24c-4ba286971304',
- data: [],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}],"ok":1}
-Wrote {"type":1,"data":[],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-Broadcast : de45525d-8038-4a2d-b9e6-215889896c7f, sending data {"type":1,"data":[],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-Broadcast : 377fa87a-6cfd-45e1-b24c-4ba286971304, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-Broadcast : de45525d-8038-4a2d-b9e6-215889896c7f, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-Broadcast : 377fa87a-6cfd-45e1-b24c-4ba286971304, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"3e1524fe-0745-4105-b122-a9681eefb5c7"}],"ok":1}
-Wrote {"type":6,"data":"a nested collection","_id":"3e1524fe-0745-4105-b122-a9681eefb5c7"}
-Broadcast : 3e1524fe-0745-4105-b122-a9681eefb5c7, sending data {"type":6,"data":"a nested collection","_id":"3e1524fe-0745-4105-b122-a9681eefb5c7"}
-{ _id: '377fa87a-6cfd-45e1-b24c-4ba286971304',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'de45525d-8038-4a2d-b9e6-215889896c7f' ] ],
- type: 5 }
-{ _id: 'de45525d-8038-4a2d-b9e6-215889896c7f',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-{ _id: '3e1524fe-0745-4105-b122-a9681eefb5c7',
- data: 'a nested collection',
- type: 6 }
-{ _id: '377fa87a-6cfd-45e1-b24c-4ba286971304',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'de45525d-8038-4a2d-b9e6-215889896c7f' ] ],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"43636484-5d3d-4eea-a347-161c47d23692"}],"ok":1}
-Wrote {"_id":"43636484-5d3d-4eea-a347-161c47d23692","type":0,"data":1}
-Broadcast : 43636484-5d3d-4eea-a347-161c47d23692, sending data {"_id":"43636484-5d3d-4eea-a347-161c47d23692","type":0,"data":1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-Broadcast : 377fa87a-6cfd-45e1-b24c-4ba286971304, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-Broadcast : 377fa87a-6cfd-45e1-b24c-4ba286971304, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"}],"ok":1}
-Wrote {"type":6,"data":"Transparent","_id":"66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"}
-Broadcast : 66f8dc12-4cb2-45a2-9d66-e86681ff3bdf, sending data {"type":6,"data":"Transparent","_id":"66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-Broadcast : 377fa87a-6cfd-45e1-b24c-4ba286971304, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-{ _id: '66f8dc12-4cb2-45a2-9d66-e86681ff3bdf',
- data: 'Transparent',
- type: 6 }
-{ _id: '377fa87a-6cfd-45e1-b24c-4ba286971304',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'de45525d-8038-4a2d-b9e6-215889896c7f' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '3e1524fe-0745-4105-b122-a9681eefb5c7' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '43636484-5d3d-4eea-a347-161c47d23692' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- '66f8dc12-4cb2-45a2-9d66-e86681ff3bdf' ] ],
- type: 5 }
-{ _id: '377fa87a-6cfd-45e1-b24c-4ba286971304',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'de45525d-8038-4a2d-b9e6-215889896c7f' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '3e1524fe-0745-4105-b122-a9681eefb5c7' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '43636484-5d3d-4eea-a347-161c47d23692' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- '66f8dc12-4cb2-45a2-9d66-e86681ff3bdf' ] ],
- type: 5 }
-undefined
-null
-{ _id: '377fa87a-6cfd-45e1-b24c-4ba286971304',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'de45525d-8038-4a2d-b9e6-215889896c7f' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '3e1524fe-0745-4105-b122-a9681eefb5c7' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '43636484-5d3d-4eea-a347-161c47d23692' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- '66f8dc12-4cb2-45a2-9d66-e86681ff3bdf' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"],["59b58624-916f-50a0-8efa-7003a805bfad","1f54d151-88ac-4e79-9053-1e656f25428a"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-Broadcast : 377fa87a-6cfd-45e1-b24c-4ba286971304, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","de45525d-8038-4a2d-b9e6-215889896c7f"],["51529209-4838-51c5-a520-0044fddf139c","3e1524fe-0745-4105-b122-a9681eefb5c7"],["771c0a88-bd02-5e92-953f-e9042a191928","43636484-5d3d-4eea-a347-161c47d23692"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","66f8dc12-4cb2-45a2-9d66-e86681ff3bdf"],["59b58624-916f-50a0-8efa-7003a805bfad","1f54d151-88ac-4e79-9053-1e656f25428a"]],"_id":"377fa87a-6cfd-45e1-b24c-4ba286971304"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"1f54d151-88ac-4e79-9053-1e656f25428a"}],"ok":1}
-Wrote {"type":12,"data":{},"_id":"1f54d151-88ac-4e79-9053-1e656f25428a"}
-Broadcast : 1f54d151-88ac-4e79-9053-1e656f25428a, sending data {"type":12,"data":{},"_id":"1f54d151-88ac-4e79-9053-1e656f25428a"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"7533f60b-3a1d-4529-8b59-6e030277ca70"}],"ok":1}
-Wrote {"_id":"7533f60b-3a1d-4529-8b59-6e030277ca70","type":0,"data":290.9536982154808}
-Broadcast : 7533f60b-3a1d-4529-8b59-6e030277ca70, sending data {"_id":"7533f60b-3a1d-4529-8b59-6e030277ca70","type":0,"data":290.9536982154808}
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ] ],
- type: 5 }
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ] ],
- type: 5 }
-{ _id: '7533f60b-3a1d-4529-8b59-6e030277ca70',
- data: 290.9536982154808,
- type: 0 }
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ] ],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"7f7d3044-52af-4af8-9745-175eff2ac608"}],"ok":1}
-Wrote {"_id":"7f7d3044-52af-4af8-9745-175eff2ac608","type":0,"data":-609.2211966040339}
-Broadcast : 7f7d3044-52af-4af8-9745-175eff2ac608, sending data {"_id":"7f7d3044-52af-4af8-9745-175eff2ac608","type":0,"data":-609.2211966040339}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"bae0c4d9-0d4d-49fe-8200-83479aaf807a"}],"ok":1}
-Wrote {"_id":"bae0c4d9-0d4d-49fe-8200-83479aaf807a","type":0,"data":512.2341374154839}
-Broadcast : bae0c4d9-0d4d-49fe-8200-83479aaf807a, sending data {"_id":"bae0c4d9-0d4d-49fe-8200-83479aaf807a","type":0,"data":512.2341374154839}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{ _id: 'bae0c4d9-0d4d-49fe-8200-83479aaf807a',
- data: 512.2341374154839,
- type: 0 }
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '7533f60b-3a1d-4529-8b59-6e030277ca70' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '7f7d3044-52af-4af8-9745-175eff2ac608' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- 'bae0c4d9-0d4d-49fe-8200-83479aaf807a' ] ],
- type: 5 }
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '7533f60b-3a1d-4529-8b59-6e030277ca70' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '7f7d3044-52af-4af8-9745-175eff2ac608' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- 'bae0c4d9-0d4d-49fe-8200-83479aaf807a' ] ],
- type: 5 }
-undefined
-null
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '7533f60b-3a1d-4529-8b59-6e030277ca70' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '7f7d3044-52af-4af8-9745-175eff2ac608' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- 'bae0c4d9-0d4d-49fe-8200-83479aaf807a' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"f97d59e2-5f74-4ad2-a851-8c048690c3b1"}],"ok":1}
-Wrote {"_id":"f97d59e2-5f74-4ad2-a851-8c048690c3b1","type":0,"data":1020.2867716683925}
-Broadcast : f97d59e2-5f74-4ad2-a851-8c048690c3b1, sending data {"_id":"f97d59e2-5f74-4ad2-a851-8c048690c3b1","type":0,"data":1020.2867716683925}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"73837ad4-e23b-488a-a4c9-efa84099a4a0"}],"ok":1}
-Wrote {"_id":"73837ad4-e23b-488a-a4c9-efa84099a4a0","type":0,"data":0}
-Broadcast : 73837ad4-e23b-488a-a4c9-efa84099a4a0, sending data {"_id":"73837ad4-e23b-488a-a4c9-efa84099a4a0","type":0,"data":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"c57f1577-c377-4dba-9b89-db6763c17fee"}],"ok":1}
-Wrote {"_id":"c57f1577-c377-4dba-9b89-db6763c17fee","type":0,"data":0}
-Broadcast : c57f1577-c377-4dba-9b89-db6763c17fee, sending data {"_id":"c57f1577-c377-4dba-9b89-db6763c17fee","type":0,"data":0}
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '7533f60b-3a1d-4529-8b59-6e030277ca70' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '7f7d3044-52af-4af8-9745-175eff2ac608' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- 'bae0c4d9-0d4d-49fe-8200-83479aaf807a' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f97d59e2-5f74-4ad2-a851-8c048690c3b1' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '73837ad4-e23b-488a-a4c9-efa84099a4a0' ] ],
- type: 5 }
-{ _id: '73837ad4-e23b-488a-a4c9-efa84099a4a0', data: 0, type: 0 }
-{ _id: 'c57f1577-c377-4dba-9b89-db6763c17fee', data: 0, type: 0 }
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '7533f60b-3a1d-4529-8b59-6e030277ca70' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '7f7d3044-52af-4af8-9745-175eff2ac608' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- 'bae0c4d9-0d4d-49fe-8200-83479aaf807a' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f97d59e2-5f74-4ad2-a851-8c048690c3b1' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '73837ad4-e23b-488a-a4c9-efa84099a4a0' ] ],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"24c48da4-b92d-48b0-bdec-36a464c6cfbe"}],"ok":1}
-Wrote {"_id":"24c48da4-b92d-48b0-bdec-36a464c6cfbe","type":0,"data":-1}
-Broadcast : 24c48da4-b92d-48b0-bdec-36a464c6cfbe, sending data {"_id":"24c48da4-b92d-48b0-bdec-36a464c6cfbe","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'eff68660-351e-44d1-974f-f984cb56f652',
- '8ae9adfb-f612-47f5-85d8-a345666ba66b' ],
- type: 1 }
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '7533f60b-3a1d-4529-8b59-6e030277ca70' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '7f7d3044-52af-4af8-9745-175eff2ac608' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- 'bae0c4d9-0d4d-49fe-8200-83479aaf807a' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f97d59e2-5f74-4ad2-a851-8c048690c3b1' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '73837ad4-e23b-488a-a4c9-efa84099a4a0' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- 'c57f1577-c377-4dba-9b89-db6763c17fee' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '24c48da4-b92d-48b0-bdec-36a464c6cfbe' ] ],
- type: 5 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,411.0655750643584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 803.1878356309647, 411.0655750643584 ] ],
- type: 14 }
-calling update on data {"type":1,"data":[],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-called update on data {"type":1,"data":[],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}],"ok":1}
-Wrote {"type":1,"data":[],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-Broadcast : 16efd95d-6944-4771-be9b-c925a7f96bfd, sending data {"type":1,"data":[],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-{ _id: '16efd95d-6944-4771-be9b-c925a7f96bfd',
- data: [],
- type: 1 }
-calling update on data {"type":1,"data":[],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-called update on data {"type":1,"data":[],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":1,"data":[],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-Broadcast : 16efd95d-6944-4771-be9b-c925a7f96bfd, sending data {"type":1,"data":[],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-{ _id: '16efd95d-6944-4771-be9b-c925a7f96bfd',
- data: [],
- type: 1 }
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"],["43606ee9-0825-51a3-98b2-06d36fdfd153","16efd95d-6944-4771-be9b-c925a7f96bfd"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"],["43606ee9-0825-51a3-98b2-06d36fdfd153","16efd95d-6944-4771-be9b-c925a7f96bfd"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"],["43606ee9-0825-51a3-98b2-06d36fdfd153","16efd95d-6944-4771-be9b-c925a7f96bfd"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"],["43606ee9-0825-51a3-98b2-06d36fdfd153","16efd95d-6944-4771-be9b-c925a7f96bfd"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '7533f60b-3a1d-4529-8b59-6e030277ca70' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '7f7d3044-52af-4af8-9745-175eff2ac608' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- 'bae0c4d9-0d4d-49fe-8200-83479aaf807a' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f97d59e2-5f74-4ad2-a851-8c048690c3b1' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '73837ad4-e23b-488a-a4c9-efa84099a4a0' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- 'c57f1577-c377-4dba-9b89-db6763c17fee' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '24c48da4-b92d-48b0-bdec-36a464c6cfbe' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- '16efd95d-6944-4771-be9b-c925a7f96bfd' ] ],
- type: 5 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.0263171264544,507.05263425290855]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.0263171264544,507.05263425290855]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}],"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.0263171264544,507.05263425290855]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.0263171264544,507.05263425290855]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.0263171264544,507.05263425290855]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.0263171264544,507.05263425290855]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":1,"data":["19228090-c099-41b1-bbc0-eb68ac81e816"],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-called update on data {"type":1,"data":["19228090-c099-41b1-bbc0-eb68ac81e816"],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,408.97482348307085]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,408.97482348307085]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.0263171264544,507.05263425290855]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.0263171264544,507.05263425290855]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 253.0263171264544, 507.05263425290855 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["19228090-c099-41b1-bbc0-eb68ac81e816"],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-Broadcast : 16efd95d-6944-4771-be9b-c925a7f96bfd, sending data {"type":1,"data":["19228090-c099-41b1-bbc0-eb68ac81e816"],"_id":"16efd95d-6944-4771-be9b-c925a7f96bfd"}
-{ _id: '16efd95d-6944-4771-be9b-c925a7f96bfd',
- data: [ '19228090-c099-41b1-bbc0-eb68ac81e816' ],
- type: 1 }
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 253.0263171264544, 507.05263425290855 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,408.97482348307085]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,408.97482348307085]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 801.0970840496772, 408.97482348307085 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[807.3693387935401,383.88580450761856]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[807.3693387935401,383.88580450761856]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[807.3693387935401,383.88580450761856]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[807.3693387935401,383.88580450761856]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 807.3693387935401, 383.88580450761856 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,362.97828869474165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,362.97828869474165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,362.97828869474165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,362.97828869474165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 817.8230966999787, 362.97828869474165 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[840.8213640941432,319.07250548770025]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[840.8213640941432,319.07250548770025]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[840.8213640941432,319.07250548770025]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[840.8213640941432,319.07250548770025]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 840.8213640941432, 319.07250548770025 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,266.80371595550787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,266.80371595550787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,266.80371595550787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,266.80371595550787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 861.7288799070201, 266.80371595550787 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,216.62567800460351]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,216.62567800460351]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,216.62567800460351]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,216.62567800460351]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 872.1826378134584, 216.62567800460351 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 863.8196314883077, 143.44937265953422 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 838.7306125128554, 82.8175768021913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.66331080130362,111.90058538953531]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.66331080130362,111.90058538953531]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.66331080130362,111.90058538953531]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.66331080130362,111.90058538953531]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 244.66331080130362, 111.90058538953531 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 792.7340777245264, 13.822774619697611 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.39278866327595,80.53931167021983]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.39278866327595,80.53931167021983]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.39278866327595,80.53931167021983]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.39278866327595,80.53931167021983]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 215.39278866327595, 80.53931167021983 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-17.538499099617866]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-17.538499099617866]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-17.538499099617866]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-17.538499099617866]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 763.4635555864987, -17.538499099617866 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.03151494396047,47.08728636961678]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.03151494396047,47.08728636961678]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.03151494396047,47.08728636961678]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.03151494396047,47.08728636961678]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 184.03151494396047, 47.08728636961678 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[732.1022818671833,-50.99052440022092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[732.1022818671833,-50.99052440022092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 763.4635555864987, -17.538499099617866 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[732.1022818671833,-50.99052440022092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[732.1022818671833,-50.99052440022092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.39798648078204,19.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.39798648078204,19.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.39798648078204,19.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.39798648078204,19.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 146.39798648078204, 19.90751581287691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 694.4687534040048, -78.17029495696079 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.21821592404217,-1]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.21821592404217,-1]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.21821592404217,-1]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.21821592404217,-1]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.21821592404217, -1 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 667.288982847265, -99.0778107698377 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.21994852987768,-21.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.21994852987768,-21.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.21994852987768,-21.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.21994852987768,-21.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 96.21994852987768, -21.90751581287691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-119.9853265827146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-119.9853265827146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-119.9853265827146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-119.9853265827146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 644.2907154531005, -119.9853265827146 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.67543904215154,-34.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.67543904215154,-34.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.67543904215154,-34.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.67543904215154,-34.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 83.67543904215154, -34.452025300603054 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[631.7462059653743,-132.52983607044075]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[631.7462059653743,-132.52983607044075]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[631.7462059653743,-132.52983607044075]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[631.7462059653743,-132.52983607044075]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 631.7462059653743, -132.52983607044075 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-49.08728636961678]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-49.08728636961678]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-49.08728636961678]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-49.08728636961678]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 73.22168113571297, -49.08728636961678 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 631.7462059653743, -132.52983607044075 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.76792322927463,-65.8132990199183]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.76792322927463,-65.8132990199183]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.76792322927463,-65.8132990199183]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.76792322927463,-65.8132990199183]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 62.76792322927463, -65.8132990199183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 610.8386901524974, -163.891109789756 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548484,-84.63006325150764]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548484,-84.63006325150764]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548484,-84.63006325150764]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548484,-84.63006325150764]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 50.223413741548484, -84.63006325150764 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 598.2941806647713, -182.70787402134533 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,-107.62833064567224]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,-107.62833064567224]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,-107.62833064567224]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,-107.62833064567224]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, -107.62833064567224 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -205.70614141550993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[14.680636859657625,-124.35434329597365]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[14.680636859657625,-124.35434329597365]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[14.680636859657625,-124.35434329597365]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[14.680636859657625,-124.35434329597365]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 14.680636859657625, -124.35434329597365 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 562.7514037828804, -222.43215406581135 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-2.0453757906439023,-126.44509487726134]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-2.0453757906439023,-126.44509487726134]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-2.0453757906439023,-126.44509487726134]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-2.0453757906439023,-126.44509487726134]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -2.0453757906439023, -126.44509487726134 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 546.0253911325789, -224.52290564709904 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.499133697082243,-130.62659803983672]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.499133697082243,-130.62659803983672]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.499133697082243,-130.62659803983672]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.499133697082243,-130.62659803983672]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -12.499133697082243, -130.62659803983672 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-228.70440880967442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-228.70440880967442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-228.70440880967442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-228.70440880967442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, -228.70440880967442 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-132.7173496211244]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-132.7173496211244]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-132.7173496211244]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-132.7173496211244]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -14.589885278370048, -132.7173496211244 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 533.4808816448527, -230.7951603909621 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-134.8081012024121]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-134.8081012024121]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-134.8081012024121]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-134.8081012024121]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -14.589885278370048, -134.8081012024121 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 533.4808816448527, -232.8859119722498 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-4.1361273719314795,-143.17110752756287]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-4.1361273719314795,-143.17110752756287]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-4.1361273719314795,-143.17110752756287]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-4.1361273719314795,-143.17110752756287]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -4.1361273719314795, -143.17110752756287 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 543.9346395512913, -241.24891829740056 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[41.86040741639772,-180.8046359907413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[41.86040741639772,-180.8046359907413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[41.86040741639772,-180.8046359907413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[41.86040741639772,-180.8046359907413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 41.86040741639772, -180.8046359907413 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[589.9311743396205,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[589.9311743396205,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[589.9311743396205,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[589.9311743396205,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 589.9311743396205, -278.882446760579 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-210.07515812876898]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-210.07515812876898]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-210.07515812876898]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-210.07515812876898]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 73.22168113571297, -210.07515812876898 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 621.2924480589357, -308.1529688986067 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.58295485502845,-224.7104191977828]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.58295485502845,-224.7104191977828]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.58295485502845,-224.7104191977828]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.58295485502845,-224.7104191977828]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 104.58295485502845, -224.7104191977828 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[652.6537217782512,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[652.6537217782512,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[652.6537217782512,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[652.6537217782512,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 652.6537217782512, -322.7882299676205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.57948964335742,-241.43643184808434]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.57948964335742,-241.43643184808434]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.57948964335742,-241.43643184808434]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.57948964335742,-241.43643184808434]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 150.57948964335742, -241.43643184808434 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 698.6502565665802, -339.51424261792204 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-241.43643184808434]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-241.43643184808434]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-241.43643184808434]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-241.43643184808434]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 173.57775703752213, -241.43643184808434 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 721.6485239607449, -339.51424261792204 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.48527285039904,-237.25492868550896]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.48527285039904,-237.25492868550896]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.48527285039904,-237.25492868550896]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.48527285039904,-237.25492868550896]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 194.48527285039904, -237.25492868550896 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[742.5560397736218,-335.33273945534665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[742.5560397736218,-335.33273945534665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 721.6485239607449, -339.51424261792204 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[742.5560397736218,-335.33273945534665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[742.5560397736218,-335.33273945534665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[204.93903075683738,-233.07342552293358]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[204.93903075683738,-233.07342552293358]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[204.93903075683738,-233.07342552293358]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[204.93903075683738,-233.07342552293358]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 204.93903075683738, -233.07342552293358 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[753.0097976800602,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[753.0097976800602,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[753.0097976800602,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[753.0097976800602,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 753.0097976800602, -331.1512362927713 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.39278866327595,-224.7104191977828]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.39278866327595,-224.7104191977828]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.39278866327595,-224.7104191977828]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.39278866327595,-224.7104191977828]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 215.39278866327595, -224.7104191977828 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 763.4635555864987, -322.7882299676205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[227.9372981510021,-212.16590971005667]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[227.9372981510021,-212.16590971005667]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[227.9372981510021,-212.16590971005667]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[227.9372981510021,-212.16590971005667]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 227.9372981510021, -212.16590971005667 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 776.0080650742249, -310.24372047989436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.11880131357748,-207.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.11880131357748,-207.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.11880131357748,-207.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.11880131357748,-207.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 232.11880131357748, -207.98440654748129 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 776.0080650742249, -310.24372047989436 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.30030447615286,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.30030447615286,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.30030447615286,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.30030447615286,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 236.30030447615286, -199.62140022233052 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[784.3710713993756,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[784.3710713993756,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 780.1895682368003, -306.062217317319 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[784.3710713993756,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[784.3710713993756,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.11880131357748,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.11880131357748,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.11880131357748,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.11880131357748,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 232.11880131357748, -195.43989705975514 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 780.1895682368003, -293.51770782959284 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.30203708198815,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.30203708198815,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.30203708198815,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.30203708198815,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 213.30203708198815, -195.43989705975514 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 761.3728040052109, -293.51770782959284 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.8500117813851,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.8500117813851,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.8500117813851,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[179.8500117813851,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 179.8500117813851, -199.62140022233052 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 727.9207787046079, -297.6992109921682 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.6685086188097,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.6685086188097,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.6685086188097,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.6685086188097,-199.62140022233052]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 175.6685086188097, -199.62140022233052 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[723.7392755420325,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[723.7392755420325,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 727.9207787046079, -297.6992109921682 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[723.7392755420325,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[723.7392755420325,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.6685086188097,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.6685086188097,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.6685086188097,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.6685086188097,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 175.6685086188097, -197.53064864104283 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[723.7392755420325,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[723.7392755420325,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 723.7392755420325, -297.6992109921682 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[723.7392755420325,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[723.7392755420325,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 173.57775703752213, -197.53064864104283 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 721.6485239607449, -295.6084594108805 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.30550229365895,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.30550229365895,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.30550229365895,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.30550229365895,-195.43989705975514]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 167.30550229365895, -195.43989705975514 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[715.3762692168817,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[715.3762692168817,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[715.3762692168817,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[715.3762692168817,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 715.3762692168817, -293.51770782959284 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.48700545623433,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.48700545623433,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.48700545623433,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.48700545623433,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.48700545623433, -197.53064864104283 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[719.5577723794571,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[719.5577723794571,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[719.5577723794571,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[719.5577723794571,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 719.5577723794571, -295.6084594108805 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[200.757527594262,-207.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[200.757527594262,-207.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[200.757527594262,-207.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[200.757527594262,-207.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 200.757527594262, -207.98440654748129 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[748.8282945174848,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[748.8282945174848,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 719.5577723794571, -295.6084594108805 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[748.8282945174848,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[748.8282945174848,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[884.7271473011846,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[884.7271473011846,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[884.7271473011846,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[884.7271473011846,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 884.7271473011846, -322.7882299676205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[987.1739747842815,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[987.1739747842815,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[987.1739747842815,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[987.1739747842815,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 987.1739747842815, -333.24198787405896 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1012.2629937597338,569.9626952422229]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1012.2629937597338,569.9626952422229]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1012.2629937597338,569.9626952422229]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1012.2629937597338,569.9626952422229]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1012.2629937597338, 569.9626952422229 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[688.1964986601419,710.0430511884981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[688.1964986601419,710.0430511884981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[688.1964986601419,710.0430511884981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[688.1964986601419,710.0430511884981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 688.1964986601419, 710.0430511884981 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,768.5840954645535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,768.5840954645535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,768.5840954645535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,768.5840954645535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 531.3901300635652, 768.5840954645535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,797.8546176025811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,797.8546176025811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,797.8546176025811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,797.8546176025811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 8.70223474164277, 797.8546176025811 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,795.7638660212933]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,795.7638660212933]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,795.7638660212933]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,795.7638660212933]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 12.883737904218151, 795.7638660212933 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,787.4008596961426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,787.4008596961426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,787.4008596961426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,787.4008596961426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 33.791253717094946, 787.4008596961426 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,756.0395859768273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,756.0395859768273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,756.0395859768273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,756.0395859768273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 77.69703692413657, 756.0395859768273 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-70.74632534728948,705.8615480259227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-70.74632534728948,705.8615480259227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-70.74632534728948,705.8615480259227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-70.74632534728948,705.8615480259227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -70.74632534728948, 705.8615480259227 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.09547082575693,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.09547082575693,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.09547082575693,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-263.09547082575693,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -263.09547082575693, 697.498541700772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-449.1723615603613,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-449.1723615603613,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-449.1723615603613,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-449.1723615603613,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -449.1723615603613, 697.498541700772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -616.4324880633765, 701.6800448633473 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-754.422092428364,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-754.422092428364,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-754.422092428364,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-754.422092428364,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -754.422092428364, 701.6800448633473 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-907.0469578623653,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-907.0469578623653,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-907.0469578623653,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-907.0469578623653,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -907.0469578623653, 695.4077901194844 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-911.2284610249407,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-911.2284610249407,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-911.2284610249407,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-911.2284610249407,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -911.2284610249407, 695.4077901194844 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-913.3192126062283,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-913.3192126062283,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-913.3192126062283,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-913.3192126062283,695.4077901194844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -913.3192126062283, 695.4077901194844 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-917.5007157688037,699.5892932820598]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-917.5007157688037,699.5892932820598]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-917.5007157688037,699.5892932820598]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-917.5007157688037,699.5892932820598]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -917.5007157688037, 699.5892932820598 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-921.6822189313791,703.7707964446352]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-921.6822189313791,703.7707964446352]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-921.6822189313791,703.7707964446352]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-921.6822189313791,703.7707964446352]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -921.6822189313791, 703.7707964446352 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-927.9544736752422,716.3153059323613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-927.9544736752422,716.3153059323613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-927.9544736752422,716.3153059323613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-927.9544736752422,716.3153059323613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -927.9544736752422, 716.3153059323613 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,722.5875606762243]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,722.5875606762243]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,722.5875606762243]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,722.5875606762243]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -930.0452252565299, 722.5875606762243 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,718.4060575136489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,718.4060575136489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-909.137709443653,703.7707964446352]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-909.137709443653,703.7707964446352]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-909.137709443653,703.7707964446352]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-909.137709443653,703.7707964446352]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -909.137709443653, 703.7707964446352 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -930.0452252565299, 701.6800448633473 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,718.4060575136489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-930.0452252565299,718.4060575136489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -930.0452252565299, 718.4060575136489 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-917.5007157688037,645.2297521685798]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-917.5007157688037,645.2297521685798]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-917.5007157688037,645.2297521685798]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-917.5007157688037,645.2297521685798]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -917.5007157688037, 645.2297521685798 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-635.2492522949657,609.686975286689]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-635.2492522949657,609.686975286689]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-635.2492522949657,609.686975286689]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-635.2492522949657,609.686975286689]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -635.2492522949657, 609.686975286689 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,565.7811920796476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,565.7811920796476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,565.7811920796476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,565.7811920796476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -359.2700435649906, 565.7811920796476 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,446.6083519462493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,446.6083519462493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,446.6083519462493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,446.6083519462493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 610.8386901524974, 446.6083519462493 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[941.1774399959523,394.3395624140571]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[941.1774399959523,394.3395624140571]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[941.1774399959523,394.3395624140571]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[941.1774399959523,394.3395624140571]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 941.1774399959523, 394.3395624140571 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-287.43296663641354]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-287.43296663641354]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-287.43296663641354]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.57775703752213,-287.43296663641354]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 173.57775703752213, -287.43296663641354 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-385.51077740625124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-385.51077740625124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-385.51077740625124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[721.6485239607449,-385.51077740625124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 721.6485239607449, -385.51077740625124 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-206.93903075683738,-410.7873099323872]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-206.93903075683738,-410.7873099323872]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-206.93903075683738,-410.7873099323872]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-206.93903075683738,-410.7873099323872]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -206.93903075683738, -410.7873099323872 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.1317361663854,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.1317361663854,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.1317361663854,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.1317361663854,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 341.1317361663854, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -346.72553407726446, -761.8460620380354 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-838.0521556798716,-937.4691948662012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-838.0521556798716,-937.4691948662012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-838.0521556798716,-937.4691948662012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-838.0521556798716,-937.4691948662012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -838.0521556798716, -937.4691948662012 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-844.3244104237347,-939.559946447489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-844.3244104237347,-939.559946447489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-844.3244104237347,-939.559946447489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-844.3244104237347,-939.559946447489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -844.3244104237347, -939.559946447489 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-808.7816335418439,-956.2859590977905]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-808.7816335418439,-956.2859590977905]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-808.7816335418439,-956.2859590977905]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-808.7816335418439,-956.2859590977905]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -808.7816335418439, -956.2859590977905 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-777.4203598225286,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-777.4203598225286,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-777.4203598225286,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-777.4203598225286,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -777.4203598225286, -962.5582138416535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-773.2388566599532,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-773.2388566599532,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-773.2388566599532,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-773.2388566599532,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -773.2388566599532, -962.5582138416535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-766.9666019160901,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-766.9666019160901,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-766.9666019160901,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-766.9666019160901,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -766.9666019160901, -962.5582138416535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-758.6035955909393,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-758.6035955909393,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-758.6035955909393,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-758.6035955909393,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -758.6035955909393, -964.6489654229412 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-750.2405892657886,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-750.2405892657886,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-750.2405892657886,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-750.2405892657886,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -750.2405892657886, -973.0119717480919 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-777.4203598225286,-1004.3732454674073]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-777.4203598225286,-1004.3732454674073]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-777.4203598225286,-1004.3732454674073]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-777.4203598225286,-1004.3732454674073]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -777.4203598225286, -1004.3732454674073 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-904.9562062810776,-1039.9160223492981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-904.9562062810776,-1039.9160223492981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-904.9562062810776,-1039.9160223492981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-904.9562062810776,-1039.9160223492981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -904.9562062810776, -1039.9160223492981 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-898.6839515372145,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-898.6839515372145,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-898.6839515372145,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-898.6839515372145,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -898.6839515372145, -998.1009907235442 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-591.3434690879242,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-591.3434690879242,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-591.3434690879242,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-591.3434690879242,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -591.3434690879242, -901.9264179843105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -275.6399803134831, -809.9333484076521 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 380.8560162108514, -653.1269798110754 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[995.5369811094323,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[995.5369811094323,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[995.5369811094323,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[995.5369811094323,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 995.5369811094323, -548.589400746691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 953.7219494836785, -703.30501776198 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 451.9415699746329, -745.1200493877338 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.10586646076945,-826.6593610579537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.10586646076945,-826.6593610579537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.10586646076945,-826.6593610579537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.10586646076945,-826.6593610579537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -125.10586646076945, -826.6593610579537 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-704.2440544774594,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-704.2440544774594,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-704.2440544774594,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-704.2440544774594,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -704.2440544774594, -906.1079211468859 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-612.2509849008011,-1048.2790286744487]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-612.2509849008011,-1048.2790286744487]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-612.2509849008011,-1048.2790286744487]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-612.2509849008011,-1048.2790286744487]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -612.2509849008011, -1048.2790286744487 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-1004.3732454674073]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-1004.3732454674073]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-1004.3732454674073]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-1004.3732454674073]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -275.6399803134831, -1004.3732454674073 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 46.33576320482109, -943.7414496100644 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 385.0375193734268, -906.1079211468859 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1008.0814905971584,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1008.0814905971584,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1008.0814905971584,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1008.0814905971584,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1008.0814905971584, -809.9333484076521 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[740.465288192334,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[740.465288192334,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[740.465288192334,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[740.465288192334,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 740.465288192334, -933.2876917036258 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[907.7254146953493,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[907.7254146953493,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[907.7254146953493,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[907.7254146953493,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 907.7254146953493, -945.8322011913519 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[924.4514273456508,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[924.4514273456508,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[924.4514273456508,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[924.4514273456508,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 924.4514273456508, -966.7397170042289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[711.1947660543063,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[711.1947660543063,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[711.1947660543063,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[711.1947660543063,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 711.1947660543063, -933.2876917036258 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1022.7167516661722, -983.4657296545304 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -781.6018629851039, -929.1061885410504 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -781.6018629851039, -968.8304685855165 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-781.6018629851039,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -781.6018629851039, -1008.5547486299827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 6.611483160355078, -920.7431822158997 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.933026327371067,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.933026327371067,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.933026327371067,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.933026327371067,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -5.933026327371067, -945.8322011913519 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -10.114529489946449, -962.5582138416535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.477535815097212,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.477535815097212,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.477535815097212,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.477535815097212,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -18.477535815097212, -968.8304685855165 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -22.659038977672594, -966.7397170042289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -24.749790558960285, -964.6489654229412 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -26.840542140247976, -962.5582138416535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-954.1952075165027]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-954.1952075165027]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-954.1952075165027]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-954.1952075165027]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -26.840542140247976, -954.1952075165027 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -24.749790558960285, -952.1044559352151 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -22.659038977672594, -950.0137043539273 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -22.659038977672594, -943.7414496100644 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -22.659038977672594, -933.2876917036258 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -26.840542140247976, -924.924685378475 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -31.022045302823358, -922.8339337971875 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -24.749790558960285, -922.8339337971875 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-927.0154369597628]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-927.0154369597628]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-927.0154369597628]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.114529489946449,-927.0154369597628]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -10.114529489946449, -927.0154369597628 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[23.337495810656605,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[23.337495810656605,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[23.337495810656605,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[23.337495810656605,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 23.337495810656605, -964.6489654229412 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.06177585512262,-1023.1900096989965]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.06177585512262,-1023.1900096989965]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.06177585512262,-1023.1900096989965]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.06177585512262,-1023.1900096989965]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 63.06177585512262, -1023.1900096989965 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.24154641186271,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.24154641186271,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.24154641186271,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.24154641186271,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 90.24154641186271, -1079.6403023937642 ] ],
- type: 14 }
-a user has connected
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[224.0496476142747,-1123.5460856008056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[224.0496476142747,-1123.5460856008056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[224.0496476142747,-1123.5460856008056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[224.0496476142747,-1123.5460856008056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 224.0496476142747, -1123.5460856008056 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-1090.0940603002025]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-1090.0940603002025]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-1090.0940603002025]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-1090.0940603002025]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 232.41265393942547, -1090.0940603002025 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[257.50167291487776,-1023.1900096989965]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[257.50167291487776,-1023.1900096989965]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[257.50167291487776,-1023.1900096989965]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[257.50167291487776,-1023.1900096989965]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 257.50167291487776, -1023.1900096989965 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[274.2276855651793,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[274.2276855651793,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[274.2276855651793,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[274.2276855651793,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 274.2276855651793, -962.5582138416535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 293.0444497967686, -901.9264179843105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[322.31497193479606,-832.9316158018167]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[322.31497193479606,-832.9316158018167]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[322.31497193479606,-832.9316158018167]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[322.31497193479606,-832.9316158018167]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 322.31497193479606, -832.9316158018167 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[357.8577488166869,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[357.8577488166869,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[357.8577488166869,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[357.8577488166869,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 357.8577488166869, -768.1183167818983 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 399.67278044244074, -686.5790051116785 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 451.9415699746329, -617.5842029291847 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-52.223413741548484,-456.7838447207164]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-52.223413741548484,-456.7838447207164]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-52.223413741548484,-456.7838447207164]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-52.223413741548484,-456.7838447207164]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -52.223413741548484, -456.7838447207164 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 451.9415699746329, -617.5842029291847 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-16.680636859657625,-410.7873099323872]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-16.680636859657625,-410.7873099323872]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-16.680636859657625,-410.7873099323872]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-16.680636859657625,-410.7873099323872]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -16.680636859657625, -410.7873099323872 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 531.3901300635652, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.408382115794666,-383.6075393756472]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.408382115794666,-383.6075393756472]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.408382115794666,-383.6075393756472]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.408382115794666,-383.6075393756472]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 8.408382115794666, -383.6075393756472 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 556.4791490390174, -481.6853501454849 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.042528720714,5.948505175924538]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.042528720714,5.948505175924538]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.042528720714,5.948505175924538]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.042528720714,5.948505175924538]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 294.042528720714, 5.948505175924538 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-356.4277688189072]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-356.4277688189072]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-356.4277688189072]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-356.4277688189072]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 18.862140022233007, -356.4277688189072 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[566.9329069454558,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[566.9329069454558,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[566.9329069454558,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[566.9329069454558,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 566.9329069454558, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-295.7959729615643]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-295.7959729615643]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-295.7959729615643]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-295.7959729615643]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 31.406649509959152, -295.7959729615643 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 579.4774164331819, -393.873783731402 ] ],
- type: 14 }
-calling update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-called update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-Broadcast : 6c3acd53-3a16-59b2-bc11-62c6d79b2cea, sending data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{ _id: '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- data: 'Prototype',
- type: 2 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.31416532283606,-239.34568026679665]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.31416532283606,-239.34568026679665]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.31416532283606,-239.34568026679665]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.31416532283606,-239.34568026679665]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-337.42349103663435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-337.42349103663435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 579.4774164331819, -393.873783731402 ] ],
- type: 14 }
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.31416532283606, -239.34568026679665 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-337.42349103663435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-337.42349103663435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[64.8586748105622,-180.8046359907413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[64.8586748105622,-180.8046359907413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[64.8586748105622,-180.8046359907413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[64.8586748105622,-180.8046359907413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-called update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-calling update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-called update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-calling update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-called update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-calling update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-called update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-calling update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-called update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-calling update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-called update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-calling update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-called update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-calling update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-called update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-calling update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-called update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-calling update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-called update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-calling update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-called update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-calling update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-called update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-calling update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-called update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-calling update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-called update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-calling update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-called update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-calling update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-called update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-calling update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-called update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-calling update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-called update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-calling update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-called update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-calling update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-called update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-calling update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-called update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-calling update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-called update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-calling update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-called update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-calling update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-called update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-calling update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-called update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-calling update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-called update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-calling update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-called update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-calling update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-called update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-calling update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-called update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-calling update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-called update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-calling update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-called update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-calling update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-called update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-calling update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-called update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-calling update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-called update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-calling update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-called update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-calling update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-called update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-calling update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-called update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-calling update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-called update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-calling update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-called update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-calling update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-called update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-calling update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-called update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-calling update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-called update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-Broadcast : 13a3cc01-c286-57e1-8746-baa3ced34e76, sending data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-{ _id: '13a3cc01-c286-57e1-8746-baa3ced34e76',
- data: 'Y',
- type: 2 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[612.929441733785,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[612.929441733785,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-155.715617015289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-155.715617015289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-143.17110752756287]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-143.17110752756287]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '7b71638c-05b8-5573-9aa5-c737c9406a86',
- data: 'X',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-Broadcast : 51529209-4838-51c5-a520-0044fddf139c, sending data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-{ _id: '911954a3-bebc-5b20-81f3-3091a2e11907',
- data: 'Page',
- type: 2 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-147.35261069013825]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-147.35261069013825]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-155.715617015289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-155.715617015289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 64.8586748105622, -180.8046359907413 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-Broadcast : 7b71638c-05b8-5573-9aa5-c737c9406a86, sending data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-Broadcast : 4cd12c43-3240-58dd-88bf-ce978edb2fde, sending data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- data: 'PanX',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-Broadcast : 8efd3b8a-ce6c-5f44-9085-90a8b7cd2202, sending data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.49566848541144,-230.98267394164588]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.49566848541144,-230.98267394164588]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '51529209-4838-51c5-a520-0044fddf139c',
- data: 'Title',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-Broadcast : 911954a3-bebc-5b20-81f3-3091a2e11907, sending data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-{ _id: '048d25ac-b841-5728-a599-e3a432137881',
- data: 'PanY',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-Broadcast : 2e6a5061-4d6c-5895-8022-9b4f4fc7118b, sending data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-{ _id: 'f9f69d93-df75-5021-883a-efac00502b09',
- data: 'Scale',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-Broadcast : 048d25ac-b841-5728-a599-e3a432137881, sending data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-{ _id: '4cd12c43-3240-58dd-88bf-ce978edb2fde',
- data: 'Author',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-Broadcast : ac03e21a-ec21-5402-a1ae-b66a7d8942a1, sending data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-{ _id: '5c207bd2-0390-5c35-8972-06d185f387fb',
- data: 'Width',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-Broadcast : 5c207bd2-0390-5c35-8972-06d185f387fb, sending data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-{ _id: '2e6a5061-4d6c-5895-8022-9b4f4fc7118b',
- data: 'NativeWidth',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-Broadcast : f9f69d93-df75-5021-883a-efac00502b09, sending data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-{ _id: '2a238eef-0bbb-5b78-b173-37b574fec97f',
- data: 'Height',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-Broadcast : 530318f9-9b84-5b90-b926-530590cdd5c3, sending data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.404916904123866,-256.0716929170982]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.404916904123866,-256.0716929170982]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- data: 'ZIndex',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-Broadcast : 2a238eef-0bbb-5b78-b173-37b574fec97f, sending data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-{ _id: 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- data: 'NativeHeight',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-Broadcast : c4bbea89-4e57-551a-98fc-af3b6dacccb1, sending data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-{ _id: '771c0a88-bd02-5e92-953f-e9042a191928',
- data: 'ViewType',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-Broadcast : 771c0a88-bd02-5e92-953f-e9042a191928, sending data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-{ _id: '530318f9-9b84-5b90-b926-530590cdd5c3',
- data: 'Data',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-Broadcast : 3559ca27-b3fa-5407-b822-07a1c9a0664c, sending data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.404916904123866,-274.8884571486874]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.404916904123866,-274.8884571486874]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '32a999d2-06a3-534f-a12e-c2d710adf3e6',
- data: 'Layout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-Broadcast : 2588a9ff-2129-5018-84c9-7743d470a4cf, sending data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-{ _id: 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- data: 'BackgroundColor',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-Broadcast : 32a999d2-06a3-534f-a12e-c2d710adf3e6, sending data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-{ _id: 'c4bbea89-4e57-551a-98fc-af3b6dacccb1',
- data: 'Annotations',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-Broadcast : f2b3b5fc-7f38-5783-9218-badc8dcab185, sending data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-{ _id: 'd0c33158-59b4-5c4a-8a27-b24570e955f0',
- data: 'LayoutKeys',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-Broadcast : d0c33158-59b4-5c4a-8a27-b24570e955f0, sending data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-{ _id: '2588a9ff-2129-5018-84c9-7743d470a4cf',
- data: 'BackgroundLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-Broadcast : bf70b65d-62da-53e6-82b2-1b849418dc2e, sending data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-{ _id: 'eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b',
- data: 'LayoutFields',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-Broadcast : e51646f0-30ef-5838-8371-9a88b0bc2a30, sending data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-{ _id: '249e18fb-d914-5c26-a367-64a52fdd1daa',
- data: 'SchemaColumns',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-Broadcast : eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b, sending data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-{ _id: 'f2b3b5fc-7f38-5783-9218-badc8dcab185',
- data: 'OverlayLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-Broadcast : 29e3ad9f-39a2-5fe3-9258-08977e55d7ee, sending data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-{ _id: '87bcf74b-a9de-5523-a148-39e5f7e35c5f',
- data: 'ActiveFrame',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-Broadcast : 87bcf74b-a9de-5523-a148-39e5f7e35c5f, sending data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-{ _id: 'e51646f0-30ef-5838-8371-9a88b0bc2a30',
- data: 'SchemaSplitPercentage',
- type: 2 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.76792322927463,-293.7052213802766]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.76792322927463,-293.7052213802766]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-Broadcast : 249e18fb-d914-5c26-a367-64a52fdd1daa, sending data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-{ _id: '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- data: 'ActiveWorkspace',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-Broadcast : db106646-3e58-5a71-8121-84753b400f96, sending data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-{ _id: 'ebdc0250-58e7-5b19-9061-fd9a60d42e07',
- data: 'ActiveDB',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-Broadcast : 77aeae9e-9bc5-5318-b4cf-219d29204f73, sending data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-{ _id: '29e3ad9f-39a2-5fe3-9258-08977e55d7ee',
- data: 'Caption',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-Broadcast : 91ed6e52-c6aa-57aa-b98b-04602411c3d3, sending data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-{ _id: '8b33881b-415d-5c37-9270-f26cc3a7935e',
- data: 'LinkedFromDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-Broadcast : 8b33881b-415d-5c37-9270-f26cc3a7935e, sending data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-{ _id: 'db106646-3e58-5a71-8121-84753b400f96',
- data: 'DocumentText',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-Broadcast : ebdc0250-58e7-5b19-9061-fd9a60d42e07, sending data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-{ _id: '0c28246e-1e14-5c7c-897f-916c5e8695b8',
- data: 'LinkDescription',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-Broadcast : 22b8e67b-50b6-5e6e-9f3d-9810b8d07619, sending data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-{ _id: 'ae45a701-5adf-5ca2-822a-27127becbb91',
- data: 'LinkTag',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-Broadcast : 0c28246e-1e14-5c7c-897f-916c5e8695b8, sending data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-{ _id: '91ed6e52-c6aa-57aa-b98b-04602411c3d3',
- data: 'LinkedToDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-Broadcast : 10fe3599-dd7d-5e3e-9a28-23c624c99140, sending data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-{ _id: '7860dbf1-c302-50ac-9f2f-4106c641dd8a',
- data: 'NumPages',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-Broadcast : 7860dbf1-c302-50ac-9f2f-4106c641dd8a, sending data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-{ _id: '22b8e67b-50b6-5e6e-9f3d-9810b8d07619',
- data: 'Thumbnail',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-Broadcast : ae45a701-5adf-5ca2-822a-27127becbb91, sending data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-312.5219856118657]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-312.5219856118657]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '59b58624-916f-50a0-8efa-7003a805bfad',
- data: 'Ink',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-Broadcast : 7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5, sending data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-{ _id: '43606ee9-0825-51a3-98b2-06d36fdfd153',
- data: 'Cursors',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-Broadcast : 59b58624-916f-50a0-8efa-7003a805bfad, sending data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-410.5997963817034]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-410.5997963817034]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '10fe3599-dd7d-5e3e-9a28-23c624c99140',
- data: 'CurPage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-Broadcast : 9cca7b47-80dc-5c45-8090-15f8e9082020, sending data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-{ _id: '1daeded7-02d2-50b9-8da8-1f1f36f7cc67',
- data: 'Updated',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-Broadcast : 1daeded7-02d2-50b9-8da8-1f1f36f7cc67, sending data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-{ _id: '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- data: 'OptionalRightCollection',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-Broadcast : 43606ee9-0825-51a3-98b2-06d36fdfd153, sending data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-{ _id: 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- data: 'Workspaces',
- type: 2 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, -337.42349103663435 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[612.929441733785,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[612.929441733785,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-Broadcast : d5aa5533-2f9b-5ef2-bd26-787dcbccaca2, sending data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-327.15724668087955]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-327.15724668087955]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-335.5202530060303]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-335.5202530060303]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '9cca7b47-80dc-5c45-8090-15f8e9082020',
- data: 'Archives',
- type: 2 }
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 64.8586748105622, -180.8046359907413 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-143.17110752756287]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-143.17110752756287]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 612.929441733785, -278.882446760579 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-155.715617015289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-155.715617015289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-241.24891829740056]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 69.04017797313759, -155.715617015289 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-147.35261069013825]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-147.35261069013825]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-343.8832593311811]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-343.8832593311811]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.31243271700077, -147.35261069013825 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -253.7934277851267 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.31243271700077, -147.35261069013825 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-245.43042145997595]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -245.43042145997595 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -245.43042145997595 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -285.1547015044421 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-155.715617015289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.22168113571297,-155.715617015289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 73.22168113571297, -155.715617015289 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.404916904123866,-256.0716929170982]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.404916904123866,-256.0716929170982]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -285.1547015044421 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.49566848541144,-230.98267394164588]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.49566848541144,-230.98267394164588]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 56.49566848541144, -230.98267394164588 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 56.49566848541144, -230.98267394164588 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.404916904123866,-274.8884571486874]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.404916904123866,-274.8884571486874]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-356.4277688189072]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-356.4277688189072]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 54.404916904123866, -274.8884571486874 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 604.5664354086342, -329.0604847114836 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 54.404916904123866, -274.8884571486874 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 602.4756838273466, -372.9662679185251 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-312.5219856118657]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-312.5219856118657]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 602.4756838273466, -372.9662679185251 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-410.5997963817034]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-410.5997963817034]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -410.5997963817034 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.76792322927463,-293.7052213802766]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[62.76792322927463,-293.7052213802766]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 62.76792322927463, -293.7052213802766 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-335.5202530060303]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-335.5202530060303]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -410.5997963817034 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-327.15724668087955]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-327.15724668087955]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-360.6092719814826]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-360.6092719814826]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.31243271700077, -327.15724668087955 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.31243271700077, -327.15724668087955 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-343.8832593311811]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-343.8832593311811]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 77.40318429828835, -343.8832593311811 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -425.23505745071725 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 77.40318429828835, -343.8832593311811 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 625.4739512215111, -441.9610701010188 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-360.6092719814826]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-360.6092719814826]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 625.4739512215111, -441.9610701010188 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 625.4739512215111, -458.6870827513203 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-356.4277688189072]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.40318429828835,-356.4277688189072]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 77.40318429828835, -356.4277688189072 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-366.8815267253457]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-366.8815267253457]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-366.8815267253457]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-366.8815267253457]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 79.49393587957616, -366.8815267253457 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 625.4739512215111, -458.6870827513203 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-375.24453305049644]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-375.24453305049644]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-375.24453305049644]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-375.24453305049644]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 81.58468746086373, -375.24453305049644 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-473.32234382033414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-473.32234382033414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-473.32234382033414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-473.32234382033414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 629.6554543840865, -473.32234382033414 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-377.33528463178413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-377.33528463178413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-377.33528463178413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-377.33528463178413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 81.58468746086373, -377.33528463178413 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 629.6554543840865, -475.41309540162183 ] ],
- type: 14 }
-calling update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-called update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-Broadcast : f98e47b3-f8ee-4117-86fb-6948460f5cc9, sending data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{ _id: 'f98e47b3-f8ee-4117-86fb-6948460f5cc9',
- data:
- [ [ 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- 'eec28478-5239-485f-a4ef-f1b9716fab89' ],
- [ '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- 'd9c82294-7b0b-4dd9-9cdc-b5f00bc84408' ],
- [ '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- '66c1ad11-6717-4186-b5bd-ac182f1c4d3e' ] ],
- type: 5 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-381.5167877943595]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-381.5167877943595]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-381.5167877943595]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.58468746086373,-381.5167877943595]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 81.58468746086373, -381.5167877943595 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 629.6554543840865, -475.41309540162183 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-377.33528463178413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-377.33528463178413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-377.33528463178413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-377.33528463178413]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 79.49393587957616, -377.33528463178413 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 627.5647028027989, -475.41309540162183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-358.5185204001949]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-358.5185204001949]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-358.5185204001949]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-358.5185204001949]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 69.04017797313759, -358.5185204001949 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -456.5963311700326 ] ],
- type: 14 }
-S sending : 52b01269-5377-480c-87c8-1155d86cc5ee, receiving Get Field with data {"_id":"52b01269-5377-480c-87c8-1155d86cc5ee","data":3,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.31416532283606,-329.24799826216724]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.31416532283606,-329.24799826216724]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.31416532283606,-329.24799826216724]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.31416532283606,-329.24799826216724]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.31416532283606, -329.24799826216724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-427.32580903200494]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-427.32580903200494]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-427.32580903200494]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-427.32580903200494]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, -427.32580903200494 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.49740109124696,-297.886724542852]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.49740109124696,-297.886724542852]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.49740109124696,-297.886724542852]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.49740109124696,-297.886724542852]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 33.49740109124696, -297.886724542852 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,-395.9645353126897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,-395.9645353126897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, -427.32580903200494 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,-395.9645353126897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,-395.9645353126897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.042528720714,128.25747268125428]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.042528720714,128.25747268125428]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.042528720714,128.25747268125428]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.042528720714,128.25747268125428]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 294.042528720714, 128.25747268125428 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-274.8884571486874]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-274.8884571486874]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-274.8884571486874]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[18.862140022233007,-274.8884571486874]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 18.862140022233007, -274.8884571486874 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[566.9329069454558,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[566.9329069454558,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[566.9329069454558,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[566.9329069454558,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 566.9329069454558, -372.9662679185251 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.08963711719343,150.2103642847751]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.08963711719343,150.2103642847751]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.08963711719343,150.2103642847751]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.08963711719343,150.2103642847751]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 272.08963711719343, 150.2103642847751 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.226878953219284,-260.25319607967356]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.226878953219284,-260.25319607967356]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.226878953219284,-260.25319607967356]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.226878953219284,-260.25319607967356]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 4.226878953219284, -260.25319607967356 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 552.2976458764421, -358.33100684951125 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[250.13674551367285,162.75487377250124]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[250.13674551367285,162.75487377250124]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[250.13674551367285,162.75487377250124]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[250.13674551367285,162.75487377250124]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 250.13674551367285, 162.75487377250124 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.408382115794666,-251.8901897545228]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.408382115794666,-251.8901897545228]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.408382115794666,-251.8901897545228]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-10.408382115794666,-251.8901897545228]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -10.408382115794666, -251.8901897545228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 552.2976458764421, -358.33100684951125 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[237.59223602594648,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[237.59223602594648,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[237.59223602594648,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[237.59223602594648,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 237.59223602594648, 169.0271285163642 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.77138844094543,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.77138844094543,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.77138844094543,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.77138844094543,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -18.77138844094543, -247.7086865919474 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 529.2993784822773, -345.7864973617851 ] ],
- type: 14 }
-S sending : 8dd0dbc7-bce1-4c1f-9d57-46090545a413, receiving Get Field with data {"_id":"8dd0dbc7-bce1-4c1f-9d57-46090545a413","data":1,"type":0}
-S sending : b8c25898-ab6c-438d-a7e2-85b9c40a4fe6, receiving Get Field with data {"_id":"b8c25898-ab6c-438d-a7e2-85b9c40a4fe6","data":54.69876952997183,"type":0}
-S sending : c968815c-6ac5-43ad-9592-e31f4587bf1e, receiving Get Field with data {"_id":"c968815c-6ac5-43ad-9592-e31f4587bf1e","data":-160.75498241782444,"type":0}
-S sending : 5d676023-b2f3-48c2-924f-487aae09368e, receiving Get Field with data {"_id":"5d676023-b2f3-48c2-924f-487aae09368e","data":0.4782969000000001,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[231.31998128208352,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[231.31998128208352,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[231.31998128208352,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[231.31998128208352,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 231.31998128208352, 169.0271285163642 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -18.77138844094543, -247.7086865919474 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 525.117875319702, -345.7864973617851 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.1838539101518,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.1838539101518,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.1838539101518,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.1838539101518,169.0271285163642]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 228.1838539101518, 169.0271285163642 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-25.04364318480839,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-25.04364318480839,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-25.04364318480839,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-25.04364318480839,-247.7086865919474]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -25.04364318480839, -247.7086865919474 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 523.0271237384144, -345.7864973617851 ] ],
- type: 14 }
-S sending : e170ebeb-643d-4a91-80ae-95e4c3786b2f, receiving Get Field with data {"_id":"e170ebeb-643d-4a91-80ae-95e4c3786b2f","data":-1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.95870756276827,165.89100114443272]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.95870756276827,165.89100114443272]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.95870756276827,165.89100114443272]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.95870756276827,165.89100114443272]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.95870756276827, 165.89100114443272 ] ],
- type: 14 }
-S sending : 24c48da4-b92d-48b0-bdec-36a464c6cfbe, receiving Get Field with data {"_id":"24c48da4-b92d-48b0-bdec-36a464c6cfbe","data":-1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,-249.7994381732351]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,-249.7994381732351]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,-249.7994381732351]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,-249.7994381732351]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -43.86040741639772, -249.7994381732351 ] ],
- type: 14 }
-S sending : 4d03c98c-7b74-4c00-a030-a8040bdccbe2, receiving Get Field with data {"_id":"4d03c98c-7b74-4c00-a030-a8040bdccbe2","data":-844.6275694030213,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-S sending : 2ce151b5-db68-432e-8997-9f84f5d004ce, receiving Get Field with data {"_id":"2ce151b5-db68-432e-8997-9f84f5d004ce","data":1004.4200579180002,"type":0}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 504.21035950682506, -347.8772489430728 ] ],
- type: 14 }
-S sending : 12d28809-5f97-4bc9-8d4c-f870a6fd9db3, receiving Get Field with data {"_id":"12d28809-5f97-4bc9-8d4c-f870a6fd9db3","data":-625.361798811575,"type":0}
-S sending : 408eef47-1f73-4423-9ae8-ff7ebe09d7f4, receiving Get Field with data {"_id":"408eef47-1f73-4423-9ae8-ff7ebe09d7f4","data":931.2604785855814,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[187.4141980750419,162.75487377250124]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[187.4141980750419,162.75487377250124]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-52.223413741548484,-251.8901897545228]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-52.223413741548484,-251.8901897545228]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-S sending : 1ef8c71c-a64d-4dc0-ad7b-7605413f001e, receiving Get Field with data {"_id":"1ef8c71c-a64d-4dc0-ad7b-7605413f001e","data":1,"type":0}
-S sending : 7533f60b-3a1d-4529-8b59-6e030277ca70, receiving Get Field with data {"_id":"7533f60b-3a1d-4529-8b59-6e030277ca70","data":290.9536982154808,"type":0}
-S sending : 7f7d3044-52af-4af8-9745-175eff2ac608, receiving Get Field with data {"_id":"7f7d3044-52af-4af8-9745-175eff2ac608","data":-609.2211966040339,"type":0}
-S sending : bae0c4d9-0d4d-49fe-8200-83479aaf807a, receiving Get Field with data {"_id":"bae0c4d9-0d4d-49fe-8200-83479aaf807a","data":512.2341374154839,"type":0}
-S sending : f97d59e2-5f74-4ad2-a851-8c048690c3b1, receiving Get Field with data {"_id":"f97d59e2-5f74-4ad2-a851-8c048690c3b1","data":1020.2867716683925,"type":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[187.4141980750419,162.75487377250124]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[187.4141980750419,162.75487377250124]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 187.4141980750419, 162.75487377250124 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-52.223413741548484,-251.8901897545228]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-52.223413741548484,-251.8901897545228]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -52.223413741548484, -251.8901897545228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[178.00581595924723,159.61874640056976]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[178.00581595924723,159.61874640056976]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 495.8473531816743, -349.9680005243605 ] ],
- type: 14 }
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 187.4141980750419, 162.75487377250124 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[178.00581595924723,159.61874640056976]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[178.00581595924723,159.61874640056976]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-58.49566848541144,-253.98094133581048]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-58.49566848541144,-253.98094133581048]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-58.49566848541144,-253.98094133581048]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-58.49566848541144,-253.98094133581048]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -58.49566848541144, -253.98094133581048 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 495.8473531816743, -349.9680005243605 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[174.86968858731598,150.2103642847751]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[174.86968858731598,150.2103642847751]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[174.86968858731598,150.2103642847751]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[174.86968858731598,150.2103642847751]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 174.86968858731598, 150.2103642847751 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.58642006669925,-260.25319607967356]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.58642006669925,-260.25319607967356]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.58642006669925,-260.25319607967356]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.58642006669925,-260.25319607967356]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -60.58642006669925, -260.25319607967356 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 487.48434685652353, -358.33100684951125 ] ],
- type: 14 }
-S sending : fdb34782-566a-4503-b420-aca62aaaf816, receiving Get Field with data {"_id":"fdb34782-566a-4503-b420-aca62aaaf816","data":1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4613064715213,147.07423691284362]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4613064715213,147.07423691284362]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4613064715213,147.07423691284362]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.4613064715213,147.07423691284362]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 165.4613064715213, 147.07423691284362 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.8586748105622,-262.34394766096125]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.8586748105622,-262.34394766096125]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.8586748105622,-262.34394766096125]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.8586748105622,-262.34394766096125]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -66.8586748105622, -262.34394766096125 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-360.42175843079895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 481.21209211266057, -360.42175843079895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[162.3251790995896,143.9381095409119]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[162.3251790995896,143.9381095409119]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[162.3251790995896,143.9381095409119]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[162.3251790995896,143.9381095409119]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 162.3251790995896, 143.9381095409119 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.94942639185001,-264.43469924224894]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.94942639185001,-264.43469924224894]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.94942639185001,-264.43469924224894]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.94942639185001,-264.43469924224894]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -68.94942639185001, -264.43469924224894 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 481.21209211266057, -360.42175843079895 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.18905172765835,137.66585479704895]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.18905172765835,137.66585479704895]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.18905172765835,137.66585479704895]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.18905172765835,137.66585479704895]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 159.18905172765835, 137.66585479704895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-71.04017797313759,-268.6162024048243]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-71.04017797313759,-268.6162024048243]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-71.04017797313759,-268.6162024048243]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-71.04017797313759,-268.6162024048243]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -71.04017797313759, -268.6162024048243 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 477.0305889500852, -366.694013174662 ] ],
- type: 14 }
-S sending : a7226718-1943-4647-9a31-3dd5e890a132, receiving Get Field with data {"_id":"a7226718-1943-4647-9a31-3dd5e890a132","data":-41.90824879350832,"type":0}
-S sending : d137e66f-dbc3-41d7-92df-1da1a715b915, receiving Get Field with data {"_id":"d137e66f-dbc3-41d7-92df-1da1a715b915","data":-14.049778719754945,"type":0}
-S sending : 548f3f67-7146-475c-bd55-5e90bdf93831, receiving Get Field with data {"_id":"548f3f67-7146-475c-bd55-5e90bdf93831","data":0.5904900000000001,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[156.05292435572665,134.52972742511747]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[156.05292435572665,134.52972742511747]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[156.05292435572665,134.52972742511747]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[156.05292435572665,134.52972742511747]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 156.05292435572665, 134.52972742511747 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-73.13092955442517,-270.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-73.13092955442517,-270.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-73.13092955442517,-270.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-73.13092955442517,-270.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 474.9398373687976, -368.7847647559497 ] ],
- type: 14 }
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -73.13092955442517, -270.706953986112 ] ],
- type: 14 }
-S sending : 43636484-5d3d-4eea-a347-161c47d23692, receiving Get Field with data {"_id":"43636484-5d3d-4eea-a347-161c47d23692","data":1,"type":0}
-S sending : 73837ad4-e23b-488a-a4c9-efa84099a4a0, receiving Get Field with data {"_id":"73837ad4-e23b-488a-a4c9-efa84099a4a0","data":0,"type":0}
-S sending : c57f1577-c377-4dba-9b89-db6763c17fee, receiving Get Field with data {"_id":"c57f1577-c377-4dba-9b89-db6763c17fee","data":0,"type":0}
-S sending : ba3184a2-b966-432b-b8bd-83ae68ba1c8f, receiving Get Field with data {"_id":"ba3184a2-b966-432b-b8bd-83ae68ba1c8f","data":1,"type":0}
-S sending : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Get Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","data":0,"type":0}
-S sending : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Get Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","data":0,"type":0}
-S sending : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Get Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","data":0,"type":0}
-S sending : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Get Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","data":-177.8328791249096,"type":0}
-S sending : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Get Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","data":-361.0601056028569,"type":0}
-S sending : 4233a5b1-f703-44d8-a4f1-55a230db04e7, receiving Get Field with data {"_id":"4233a5b1-f703-44d8-a4f1-55a230db04e7","data":200,"type":0}
-S sending : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Get Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","data":299.5,"type":0}
-S sending : 8a50fbb3-768f-4f03-84b5-fc84aaa4f21c, receiving Get Field with data {"_id":"8a50fbb3-768f-4f03-84b5-fc84aaa4f21c","data":200,"type":0}
-S sending : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Get Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","data":2,"type":0}
-S sending : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Get Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","data":-90.69104152973387,"type":0}
-S sending : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Get Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","data":-43.81989175014314,"type":0}
-S sending : 9d04275c-0bc8-4e43-8142-034824b2deae, receiving Get Field with data {"_id":"9d04275c-0bc8-4e43-8142-034824b2deae","data":200,"type":0}
-S sending : f2822f08-9fd6-4816-ba61-0dc0ea45a0c0, receiving Get Field with data {"_id":"f2822f08-9fd6-4816-ba61-0dc0ea45a0c0","data":200,"type":0}
-S sending : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Get Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","data":3,"type":0}
-S sending : 42373536-4991-4b59-aaf5-34559e43adef, receiving Get Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","data":-179.45321567239102,"type":0}
-S sending : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Get Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","data":213.88135107802282,"type":0}
-S sending : 47f3540c-7ded-4c5a-a35e-67b8770c7564, receiving Get Field with data {"_id":"47f3540c-7ded-4c5a-a35e-67b8770c7564","data":200,"type":0}
-S sending : 9c48c01b-ff87-4633-ab32-620bbe191b04, receiving Get Field with data {"_id":"9c48c01b-ff87-4633-ab32-620bbe191b04","data":200,"type":0}
-S sending : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Get Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","data":4,"type":0}
-S sending : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Get Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","data":299.5,"type":0}
-S sending : 42d06ec3-2f96-4bf0-af73-568f20eb4ec5, receiving Get Field with data {"_id":"42d06ec3-2f96-4bf0-af73-568f20eb4ec5","data":300,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.91679698379494,131.39360005318576]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.91679698379494,131.39360005318576]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.91679698379494,131.39360005318576]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.91679698379494,131.39360005318576]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 152.91679698379494, 131.39360005318576 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.22168113571297,-272.7977055673997]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.22168113571297,-272.7977055673997]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -73.13092955442517, -270.706953986112 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.22168113571297,-272.7977055673997]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-75.22168113571297,-272.7977055673997]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 472.8490857875098, -370.8755163372374 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.7806696118637,118.84909056545962]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.7806696118637,118.84909056545962]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.7806696118637,118.84909056545962]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.7806696118637,118.84909056545962]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 149.7806696118637, 118.84909056545962 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-77.31243271700055,-281.16071189255047]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-77.31243271700055,-281.16071189255047]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-77.31243271700055,-281.16071189255047]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-77.31243271700055,-281.16071189255047]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -77.31243271700055, -281.16071189255047 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 470.75833420622223, -379.23852266238816 ] ],
- type: 14 }
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 300,
- type: 0 }
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 300,
- type: 0 }
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 299.5,
- type: 0 }
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 299.5,
- type: 0 }
-calling update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-called update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-Broadcast : de45525d-8038-4a2d-b9e6-215889896c7f, sending data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-{ _id: 'de45525d-8038-4a2d-b9e6-215889896c7f',
- data:
- [ '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-Incoming : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Set Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-calling update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-called update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-Broadcast : 672c99e2-ba2a-419b-9f06-903d9aeba563, sending data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{ _id: '672c99e2-ba2a-419b-9f06-903d9aeba563',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'eff68660-351e-44d1-974f-f984cb56f652',
- '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480' ],
- type: 1 }
-Incoming : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Set Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":280.3355698029426}
-calling update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":280.3355698029426}
-called update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":280.3355698029426}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":280.3355698029426}
-Broadcast : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, sending data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":280.3355698029426}
-Incoming : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Set Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-862.6529715612187}
-calling update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-862.6529715612187}
-called update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-862.6529715612187}
-Incoming : 54183dbc-b1d6-4bc9-9d94-7dd9d0245419, receiving Set Field with data {"_id":"54183dbc-b1d6-4bc9-9d94-7dd9d0245419","type":0,"data":1}
-calling update on data {"_id":"54183dbc-b1d6-4bc9-9d94-7dd9d0245419","type":0,"data":1}
-called update on data {"_id":"54183dbc-b1d6-4bc9-9d94-7dd9d0245419","type":0,"data":1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"],["43606ee9-0825-51a3-98b2-06d36fdfd153","16efd95d-6944-4771-be9b-c925a7f96bfd"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","54183dbc-b1d6-4bc9-9d94-7dd9d0245419"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"],["43606ee9-0825-51a3-98b2-06d36fdfd153","16efd95d-6944-4771-be9b-c925a7f96bfd"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","54183dbc-b1d6-4bc9-9d94-7dd9d0245419"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Incoming : 1ef8c71c-a64d-4dc0-ad7b-7605413f001e, receiving Set Field with data {"_id":"1ef8c71c-a64d-4dc0-ad7b-7605413f001e","type":0,"data":2}
-calling update on data {"_id":"1ef8c71c-a64d-4dc0-ad7b-7605413f001e","type":0,"data":2}
-called update on data {"_id":"1ef8c71c-a64d-4dc0-ad7b-7605413f001e","type":0,"data":2}
-Incoming : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Set Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":3}
-calling update on data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":3}
-called update on data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":3}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,118.84909056545973]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,118.84909056545973]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-782.7535778509123]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-782.7535778509123]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"54183dbc-b1d6-4bc9-9d94-7dd9d0245419"}],"ok":1}
-Wrote {"_id":"54183dbc-b1d6-4bc9-9d94-7dd9d0245419","type":0,"data":1}
-Broadcast : 54183dbc-b1d6-4bc9-9d94-7dd9d0245419, sending data {"_id":"54183dbc-b1d6-4bc9-9d94-7dd9d0245419","type":0,"data":1}
-{ _id: 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9',
- data: 280.3355698029426,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-862.6529715612187}
-Broadcast : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, sending data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-862.6529715612187}
-{ _id: '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19',
- data: -862.6529715612187,
- type: 0 }
-{ _id: '54183dbc-b1d6-4bc9-9d94-7dd9d0245419', data: 1, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"],["43606ee9-0825-51a3-98b2-06d36fdfd153","16efd95d-6944-4771-be9b-c925a7f96bfd"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","54183dbc-b1d6-4bc9-9d94-7dd9d0245419"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-Broadcast : 8ae9adfb-f612-47f5-85d8-a345666ba66b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","377fa87a-6cfd-45e1-b24c-4ba286971304"],["7b71638c-05b8-5573-9aa5-c737c9406a86","7533f60b-3a1d-4529-8b59-6e030277ca70"],["13a3cc01-c286-57e1-8746-baa3ced34e76","7f7d3044-52af-4af8-9745-175eff2ac608"],["5c207bd2-0390-5c35-8972-06d185f387fb","bae0c4d9-0d4d-49fe-8200-83479aaf807a"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f97d59e2-5f74-4ad2-a851-8c048690c3b1"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","73837ad4-e23b-488a-a4c9-efa84099a4a0"],["048d25ac-b841-5728-a599-e3a432137881","c57f1577-c377-4dba-9b89-db6763c17fee"],["911954a3-bebc-5b20-81f3-3091a2e11907","24c48da4-b92d-48b0-bdec-36a464c6cfbe"],["43606ee9-0825-51a3-98b2-06d36fdfd153","16efd95d-6944-4771-be9b-c925a7f96bfd"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","54183dbc-b1d6-4bc9-9d94-7dd9d0245419"]],"_id":"8ae9adfb-f612-47f5-85d8-a345666ba66b"}
-{ _id: '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '377fa87a-6cfd-45e1-b24c-4ba286971304' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '7533f60b-3a1d-4529-8b59-6e030277ca70' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '7f7d3044-52af-4af8-9745-175eff2ac608' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- 'bae0c4d9-0d4d-49fe-8200-83479aaf807a' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f97d59e2-5f74-4ad2-a851-8c048690c3b1' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '73837ad4-e23b-488a-a4c9-efa84099a4a0' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- 'c57f1577-c377-4dba-9b89-db6763c17fee' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '24c48da4-b92d-48b0-bdec-36a464c6cfbe' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- '16efd95d-6944-4771-be9b-c925a7f96bfd' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- '54183dbc-b1d6-4bc9-9d94-7dd9d0245419' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"1ef8c71c-a64d-4dc0-ad7b-7605413f001e","type":0,"data":2}
-Broadcast : 1ef8c71c-a64d-4dc0-ad7b-7605413f001e, sending data {"_id":"1ef8c71c-a64d-4dc0-ad7b-7605413f001e","type":0,"data":2}
-{ _id: '1ef8c71c-a64d-4dc0-ad7b-7605413f001e', data: 2, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":3}
-Broadcast : cc496f45-ce13-4ce5-859c-215d8634bc61, sending data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":3}
-{ _id: 'cc496f45-ce13-4ce5-859c-215d8634bc61', data: 3, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,118.84909056545973]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,118.84909056545973]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 149.78066961186346, 118.84909056545973 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-782.7535778509123]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-782.7535778509123]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 380.8560162108514, -782.7535778509123 ] ],
- type: 14 }
-S sending : 54183dbc-b1d6-4bc9-9d94-7dd9d0245419, receiving Get Field with data {"_id":"54183dbc-b1d6-4bc9-9d94-7dd9d0245419","data":1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,125.1213453093228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,125.1213453093228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,125.1213453093228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,125.1213453093228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 149.78066961186346, 125.1213453093228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-778.5720746883369]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-778.5720746883369]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-778.5720746883369]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-778.5720746883369]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 380.8560162108514, -778.5720746883369 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,131.39360005318588]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,131.39360005318588]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,131.39360005318588]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.78066961186346,131.39360005318588]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 149.78066961186346, 131.39360005318588 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-774.3905715257615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-774.3905715257615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 380.8560162108514, -778.5720746883369 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-774.3905715257615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[380.8560162108514,-774.3905715257615]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.18905172765812,175.2993832602274]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.18905172765812,175.2993832602274]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.18905172765812,175.2993832602274]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.18905172765812,175.2993832602274]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 159.18905172765812, 175.2993832602274 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.1282709547146,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.1282709547146,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.1282709547146,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.1282709547146,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 387.1282709547146, -745.1200493877338 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.73356121538427,231.74967595499504]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.73356121538427,231.74967595499504]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.73356121538427,231.74967595499504]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.73356121538427,231.74967595499504]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.73356121538427, 231.74967595499504 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 395.49127727986536, -707.4865209245554 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.2172899301669,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.2172899301669,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.2172899301669,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.2172899301669,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 412.2172899301669, -659.3992345549385 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-110.7644580176036,-490.23587002131933]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-110.7644580176036,-490.23587002131933]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-110.7644580176036,-490.23587002131933]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-110.7644580176036,-490.23587002131933]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -110.7644580176036, -490.23587002131933 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[437.3063089056192,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[437.3063089056192,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[437.3063089056192,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[437.3063089056192,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 437.3063089056192, -588.313680791157 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-98.21994852987746,-444.23933523299024]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-98.21994852987746,-444.23933523299024]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-98.21994852987746,-444.23933523299024]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-98.21994852987746,-444.23933523299024]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -98.21994852987746, -444.23933523299024 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 437.3063089056192, -588.313680791157 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.67543904215131,-396.15204886337335]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.67543904215131,-396.15204886337335]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.67543904215131,-396.15204886337335]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.67543904215131,-396.15204886337335]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -85.67543904215131, -396.15204886337335 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 462.39532788107147, -494.22985963321105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-71.04017797313759,-329.24799826216724]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-71.04017797313759,-329.24799826216724]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-71.04017797313759,-329.24799826216724]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-71.04017797313759,-329.24799826216724]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -71.04017797313759, -329.24799826216724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-427.32580903200494]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-427.32580903200494]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-427.32580903200494]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-427.32580903200494]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 477.0305889500852, -427.32580903200494 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.58642006669925,-264.43469924224894]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.58642006669925,-264.43469924224894]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.58642006669925,-264.43469924224894]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.58642006669925,-264.43469924224894]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -60.58642006669925, -264.43469924224894 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 487.48434685652353, -362.51251001208664 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-56.404916904123866,-220.52891603520743]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-56.404916904123866,-220.52891603520743]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-56.404916904123866,-220.52891603520743]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-56.404916904123866,-220.52891603520743]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -56.404916904123866, -220.52891603520743 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[491.6658500190989,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[491.6658500190989,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[491.6658500190989,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[491.6658500190989,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 491.6658500190989, -318.6067268050451 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,-197.53064864104283]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -45.9511589976853, -197.53064864104283 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 491.6658500190989, -318.6067268050451 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-295.6084594108805]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -43.86040741639772, -187.07689073460438 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 504.21035950682506, -285.1547015044421 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.49740109124696,-170.35087808430285]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.49740109124696,-170.35087808430285]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.49740109124696,-170.35087808430285]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.49740109124696,-170.35087808430285]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -35.49740109124696, -170.35087808430285 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[512.5733658319758,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[512.5733658319758,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[512.5733658319758,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[512.5733658319758,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 512.5733658319758, -268.42868885414055 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-141.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-141.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-141.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.589885278370048,-141.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -14.589885278370048, -141.08035594627518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 533.4808816448527, -239.15816671611287 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.226878953219284,-105.53757906438454]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.226878953219284,-105.53757906438454]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.226878953219284,-105.53757906438454]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.226878953219284,-105.53757906438454]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 4.226878953219284, -105.53757906438454 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-203.61538983422224]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-203.61538983422224]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-203.61538983422224]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,-203.61538983422224]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 552.2976458764421, -203.61538983422224 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[20.95289160352081,-76.26705692635687]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[20.95289160352081,-76.26705692635687]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[20.95289160352081,-76.26705692635687]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[20.95289160352081,-76.26705692635687]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 20.95289160352081, -76.26705692635687 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[569.0236585267436,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[569.0236585267436,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 552.2976458764421, -203.61538983422224 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[569.0236585267436,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[569.0236585267436,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-36.54277688189063]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-36.54277688189063]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-36.54277688189063]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-36.54277688189063]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 31.406649509959152, -36.54277688189063 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-134.62058765172833]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-134.62058765172833]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-134.62058765172833]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-134.62058765172833]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 579.4774164331819, -134.62058765172833 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-17.726012650301527]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-17.726012650301527]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-17.726012650301527]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,-17.726012650301527]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 31.406649509959152, -17.726012650301527 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 579.4774164331819, -115.80382342013922 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,1.0907515812875772]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,1.0907515812875772]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,1.0907515812875772]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,1.0907515812875772]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 31.406649509959152, 1.0907515812875772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 579.4774164331819, -96.98705918855012 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,13.635261069013723]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,13.635261069013723]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,13.635261069013723]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.406649509959152,13.635261069013723]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 31.406649509959152, 13.635261069013723 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-84.44254970082397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-84.44254970082397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-84.44254970082397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-84.44254970082397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 579.4774164331819, -84.44254970082397 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,19.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,19.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,19.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,19.90751581287691]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, 19.90751581287691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 579.4774164331819, -84.44254970082397 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,21.998267394164486]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,21.998267394164486]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,21.998267394164486]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,21.998267394164486]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, 21.998267394164486 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-76.07954337567321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-76.07954337567321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-76.07954337567321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-76.07954337567321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -76.07954337567321 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,28.270522138027673]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,28.270522138027673]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,28.270522138027673]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,28.270522138027673]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, 28.270522138027673 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -69.80728863181002 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,30.36127371931525]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,30.36127371931525]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,30.36127371931525]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,30.36127371931525]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, 30.36127371931525 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-67.71653705052245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-67.71653705052245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-67.71653705052245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-67.71653705052245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -67.71653705052245 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,32.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,32.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,32.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,32.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, 32.452025300603054 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -65.62578546923464 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,36.633528463178436]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,36.633528463178436]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,36.633528463178436]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,36.633528463178436]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, 36.633528463178436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -61.44428230665926 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,32.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,32.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,32.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,32.452025300603054]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, 32.452025300603054 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -65.62578546923464 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,15.726012650301527]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,15.726012650301527]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,15.726012650301527]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,15.726012650301527]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, 15.726012650301527 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-82.35179811953617]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-82.35179811953617]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-82.35179811953617]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-82.35179811953617]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -82.35179811953617 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-Broadcast : de45525d-8038-4a2d-b9e6-215889896c7f, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-{ _id: 'de45525d-8038-4a2d-b9e6-215889896c7f',
- data: [ '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-Incoming : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Set Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-calling update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-called update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-Broadcast : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, sending data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{ _id: '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'eff68660-351e-44d1-974f-f984cb56f652',
- '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Set Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":507.55776334439327}
-calling update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":507.55776334439327}
-called update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":507.55776334439327}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":507.55776334439327}
-Broadcast : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, sending data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":507.55776334439327}
-Incoming : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Set Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-804.6659537881785}
-calling update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-804.6659537881785}
-called update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-804.6659537881785}
-Incoming : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Set Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":4}
-calling update on data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":4}
-called update on data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":4}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: 'd7d79305-cd6b-4653-a173-1284f76f5773',
- data: -43.81989175014314,
- type: 0 }
-{ _id: '9ffe2a20-7fcb-4460-aa91-922b69f91e24',
- data: 507.55776334439327,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-804.6659537881785}
-Broadcast : d7d79305-cd6b-4653-a173-1284f76f5773, sending data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-804.6659537881785}
-{ _id: 'a59882d7-3daf-4574-b38e-4673bbac7db8', data: 3, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":4}
-Broadcast : a59882d7-3daf-4574-b38e-4673bbac7db8, sending data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":4}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 627.5647028027989, -745.1200493877338 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-743.029297806446]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-743.029297806446]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-743.029297806446]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-743.029297806446]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 627.5647028027989, -743.029297806446 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 627.5647028027989, -732.5755399000077 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-678.2159987865277]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-678.2159987865277]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-678.2159987865277]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-678.2159987865277]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 627.5647028027989, -678.2159987865277 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 627.5647028027989, -619.6749545104724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-467.23760262715484]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-467.23760262715484]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-467.23760262715484]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-467.23760262715484]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 79.49393587957616, -467.23760262715484 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 627.5647028027989, -565.3154133969925 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-406.6058067698118]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-406.6058067698118]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-406.6058067698118]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.49393587957616,-406.6058067698118]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 79.49393587957616, -406.6058067698118 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 627.5647028027989, -565.3154133969925 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[627.5647028027989,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-343.8832593311811]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-343.8832593311811]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-343.8832593311811]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-343.8832593311811]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.31243271700077, -343.8832593311811 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -441.9610701010188 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-268.6162024048243]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-268.6162024048243]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-268.6162024048243]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.31243271700077,-268.6162024048243]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.31243271700077, -268.6162024048243 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -366.694013174662 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.04017797313759,-187.07689073460438]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 69.04017797313759, -187.07689073460438 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -285.1547015044421 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.49566848541144,-113.90058538953531]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.49566848541144,-113.90058538953531]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.49566848541144,-113.90058538953531]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.49566848541144,-113.90058538953531]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 56.49566848541144, -113.90058538953531 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 604.5664354086342, -211.978396159373 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548484,-51.17803795090458]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548484,-51.17803795090458]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548484,-51.17803795090458]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.223413741548484,-51.17803795090458]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 50.223413741548484, -51.17803795090458 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 598.2941806647713, -149.25584872074228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,-1]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,-1]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,-1]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,-1]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 43.9511589976853, -1 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 592.0219259209081, -99.0778107698377 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,38.72428004446601]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,38.72428004446601]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,38.72428004446601]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,38.72428004446601]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 43.9511589976853, 38.72428004446601 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 592.0219259209081, -59.353530725371684 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,63.813299019918304]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,63.813299019918304]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,63.813299019918304]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[43.9511589976853,63.813299019918304]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 43.9511589976853, 63.813299019918304 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-34.26451174991939]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-34.26451174991939]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-34.26451174991939]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-34.26451174991939]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 592.0219259209081, -34.26451174991939 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[39.769655835109916,82.63006325150764]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[39.769655835109916,82.63006325150764]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[39.769655835109916,82.63006325150764]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[39.769655835109916,82.63006325150764]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 39.769655835109916, 82.63006325150764 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-15.447747518330061]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-15.447747518330061]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-15.447747518330061]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-15.447747518330061]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 587.8404227583327, -15.447747518330061 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.67890425382234,113.99133697082289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.67890425382234,113.99133697082289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.67890425382234,113.99133697082289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.67890425382234,113.99133697082289]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 37.67890425382234, 113.99133697082289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,15.913526200985189]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,15.913526200985189]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 587.8404227583327, -15.447747518330061 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,15.913526200985189]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,15.913526200985189]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,139.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,139.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,139.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.315897928671575,139.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.315897928671575, 139.08035594627518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, 41.00254517643748 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.134394766096193,159.98787175915209]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.134394766096193,159.98787175915209]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.134394766096193,159.98787175915209]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.134394766096193,159.98787175915209]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 25.134394766096193, 159.98787175915209 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[573.205161689319,61.91006098931439]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[573.205161689319,61.91006098931439]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[573.205161689319,61.91006098931439]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[573.205161689319,61.91006098931439]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 573.205161689319, 61.91006098931439 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.134394766096193,191.34914547846734]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.134394766096193,191.34914547846734]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.134394766096193,191.34914547846734]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.134394766096193,191.34914547846734]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 25.134394766096193, 191.34914547846734 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[573.205161689319,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[573.205161689319,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[573.205161689319,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[573.205161689319,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 573.205161689319, 93.27133470862964 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[16.77138844094543,205.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[16.77138844094543,205.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[16.77138844094543,205.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[16.77138844094543,205.98440654748129]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 16.77138844094543, 205.98440654748129 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 564.8421553641682, 107.90659577764359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[287.0646514261416,5.971347435776806]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[287.0646514261416,5.971347435776806]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[287.0646514261416,5.971347435776806]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[287.0646514261416,5.971347435776806]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 287.0646514261416, 5.971347435776806 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.589885278370048,218.52891603520743]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.589885278370048,218.52891603520743]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.589885278370048,218.52891603520743]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.589885278370048,218.52891603520743]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 12.589885278370048, 218.52891603520743 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[560.6606522015928,120.45110526536973]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[560.6606522015928,120.45110526536973]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 564.8421553641682, 107.90659577764359 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[560.6606522015928,120.45110526536973]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[560.6606522015928,120.45110526536973]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[268.24788719455273,21.65198429543466]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[268.24788719455273,21.65198429543466]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[268.24788719455273,21.65198429543466]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[268.24788719455273,21.65198429543466]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 268.24788719455273, 21.65198429543466 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.04537579064390229,228.98267394164577]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.04537579064390229,228.98267394164577]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.04537579064390229,228.98267394164577]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.04537579064390229,228.98267394164577]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 0.04537579064390229, 228.98267394164577 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 548.1161427138667, 130.90486317180807 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.4311229629634,43.60487589895524]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.4311229629634,43.60487589895524]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.4311229629634,43.60487589895524]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.4311229629634,43.60487589895524]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 249.4311229629634, 43.60487589895524 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.499133697082243,243.61793501065972]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.499133697082243,243.61793501065972]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.499133697082243,243.61793501065972]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.499133697082243,243.61793501065972]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -12.499133697082243, 243.61793501065972 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, 145.54012424082202 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.75048610330578,65.55776750247605]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.75048610330578,65.55776750247605]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.75048610330578,65.55776750247605]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.75048610330578,65.55776750247605]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 233.75048610330578, 65.55776750247605 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,258.25319607967344]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,258.25319607967344]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,258.25319607967344]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.95289160352081,258.25319607967344]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -22.95289160352081, 258.25319607967344 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,160.17538530983575]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,160.17538530983575]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, 145.54012424082202 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,160.17538530983575]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,160.17538530983575]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.2059766155794,78.10227699020197]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.2059766155794,78.10227699020197]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.2059766155794,78.10227699020197]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.2059766155794,78.10227699020197]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 221.2059766155794, 78.10227699020197 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.315897928671575,266.6162024048242]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.315897928671575,266.6162024048242]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.315897928671575,266.6162024048242]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.315897928671575,266.6162024048242]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -31.315897928671575, 266.6162024048242 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,168.5383916349865]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,168.5383916349865]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,168.5383916349865]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,168.5383916349865]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 516.7548689945512, 168.5383916349865 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.06984924364815,81.23840436213368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.06984924364815,81.23840436213368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.06984924364815,81.23840436213368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.06984924364815,81.23840436213368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 218.06984924364815, 81.23840436213368 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995915,268.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995915,268.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995915,268.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.40664950995915,268.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -33.40664950995915, 268.706953986112 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[514.6641174132636,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[514.6641174132636,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[514.6641174132636,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[514.6641174132636,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 514.6641174132636, 170.62914321627431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[214.93372187171644,81.23840436213368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[214.93372187171644,81.23840436213368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[214.93372187171644,81.23840436213368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[214.93372187171644,81.23840436213368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 214.93372187171644, 81.23840436213368 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.49740109124696,268.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.49740109124696,268.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.49740109124696,268.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.49740109124696,268.706953986112]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -35.49740109124696, 268.706953986112 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[512.5733658319758,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[512.5733658319758,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 514.6641174132636, 170.62914321627431 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[512.5733658319758,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[512.5733658319758,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[208.66146712785348,84.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[208.66146712785348,84.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[208.66146712785348,84.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[208.66146712785348,84.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 208.66146712785348, 84.37453173406539 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-39.67890425382234,270.7977055673996]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-39.67890425382234,270.7977055673996]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-39.67890425382234,270.7977055673996]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-39.67890425382234,270.7977055673996]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -39.67890425382234, 270.7977055673996 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 508.39186266940044, 172.7198947975619 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.52533975592178,84.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.52533975592178,84.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.52533975592178,84.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.52533975592178,84.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 205.52533975592178, 84.37453173406539 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.769655835109916,270.7977055673996]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.769655835109916,270.7977055673996]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.769655835109916,270.7977055673996]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.769655835109916,270.7977055673996]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -41.769655835109916, 270.7977055673996 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 508.39186266940044, 172.7198947975619 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,90.64678647792834]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,90.64678647792834]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,90.64678647792834]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,90.64678647792834]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.25308501205882, 90.64678647792834 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,274.97920872997497]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,274.97920872997497]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,274.97920872997497]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,274.97920872997497]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -45.9511589976853, 274.97920872997497 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 502.1196079255375, 176.90139796013727 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[202.38921238399053,90.64678647792834]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[202.38921238399053,90.64678647792834]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[202.38921238399053,90.64678647792834]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[202.38921238399053,90.64678647792834]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 202.38921238399053, 90.64678647792834 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,274.97920872997497]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,274.97920872997497]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,274.97920872997497]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-43.86040741639772,274.97920872997497]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -43.86040741639772, 274.97920872997497 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 502.1196079255375, 176.90139796013727 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[504.21035950682506,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.25308501205882, 68.69389487440753 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,260.34394766096125]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,260.34394766096125]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,260.34394766096125]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.9511589976853,260.34394766096125]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -45.9511589976853, 260.34394766096125 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,162.26613689112355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,162.26613689112355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,162.26613689112355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,162.26613689112355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 502.1196079255375, 162.26613689112355 ] ],
- type: 14 }
-calling update on data {"type":1,"data":[],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-called update on data {"type":1,"data":[],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":[],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-Broadcast : de45525d-8038-4a2d-b9e6-215889896c7f, sending data {"type":1,"data":[],"_id":"de45525d-8038-4a2d-b9e6-215889896c7f"}
-{ _id: 'de45525d-8038-4a2d-b9e6-215889896c7f',
- data: [],
- type: 1 }
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["eff68660-351e-44d1-974f-f984cb56f652","8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'eff68660-351e-44d1-974f-f984cb56f652',
- '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-89.25704505117244}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-89.25704505117244}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-89.25704505117244}
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-900.301728197632}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-900.301728197632}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-900.301728197632}
-Incoming : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Set Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":5}
-calling update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":5}
-called update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":5}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-89.25704505117244}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-89.25704505117244}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":5}
-Broadcast : e3b590f8-23f0-4feb-831d-cbc9a516828a, sending data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":5}
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: -89.25704505117244,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-900.301728197632}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-900.301728197632}
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: -900.301728197632,
- type: 0 }
-{ _id: 'e3b590f8-23f0-4feb-831d-cbc9a516828a', data: 5, type: 0 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.25308501205882,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.25308501205882, 68.69389487440753 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 44.2450116235334, -853.8391316146937 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.525339755922,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.525339755922,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.525339755922,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.525339755922,68.69389487440753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 205.525339755922, 68.69389487440753 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 48.42651478610878, -853.8391316146937 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[208.66146712785348,74.9661496182706]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[208.66146712785348,74.9661496182706]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[208.66146712785348,74.9661496182706]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[208.66146712785348,74.9661496182706]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 208.66146712785348, 74.9661496182706 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 50.51726636739647, -849.6576284521183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.79759449978496,96.9190412217913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.79759449978496,96.9190412217913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.79759449978496,96.9190412217913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.79759449978496,96.9190412217913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 211.79759449978496, 96.9190412217913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-835.0223673831044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-835.0223673831044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-835.0223673831044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-835.0223673831044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -835.0223673831044 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.06984924364792,156.50546128849044]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.06984924364792,156.50546128849044]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.06984924364792,156.50546128849044]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[218.06984924364792,156.50546128849044]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 218.06984924364792, 156.50546128849044 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-795.2980873386384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-795.2980873386384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -835.0223673831044 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-795.2980873386384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-795.2980873386384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.20597661557963,219.22800872712116]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.20597661557963,219.22800872712116]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.20597661557963,219.22800872712116]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.20597661557963,219.22800872712116]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 221.20597661557963, 219.22800872712116 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 58.88027269254724, -753.4830557128846 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.61435873137407,288.22281090961496]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.61435873137407,288.22281090961496]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.61435873137407,288.22281090961496]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.61435873137407,288.22281090961496]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 230.61435873137407, 288.22281090961496 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 65.15252743641031, -707.4865209245554 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.60628534284876, -653.1269798110754 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[674.947380481726,-773.4172286409423]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[674.947380481726,-773.4172286409423]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[674.947380481726,-773.4172286409423]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[674.947380481726,-773.4172286409423]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 674.947380481726, -773.4172286409423 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-607.1304450227462]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-607.1304450227462]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-607.1304450227462]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-607.1304450227462]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 81.87854008671195, -607.1304450227462 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.1916174505589,-720.3066362188601]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.1916174505589,-720.3066362188601]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.1916174505589,-720.3066362188601]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.1916174505589,-720.3066362188601]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 696.1916174505589, -720.3066362188601 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 81.87854008671195, -607.1304450227462 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[699.732323612031,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[699.732323612031,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[699.732323612031,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[699.732323612031,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 699.732323612031, -695.5216930885549 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 96.51380115572567, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.1916174505589,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.1916174505589,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.1916174505589,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.1916174505589,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 696.1916174505589, -695.5216930885549 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 94.4230495744381, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[692.6509112890867,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[692.6509112890867,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 696.1916174505589, -695.5216930885549 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[692.6509112890867,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[692.6509112890867,-695.5216930885549]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 92.33229799315029, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[682.0287928046703,-691.9809869270828]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[682.0287928046703,-691.9809869270828]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[682.0287928046703,-691.9809869270828]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[682.0287928046703,-691.9809869270828]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 682.0287928046703, -691.9809869270828 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[86.06004324928733,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[86.06004324928733,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[86.06004324928733,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[86.06004324928733,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 86.06004324928733, -559.0431586531295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[657.243849674365,-677.8181622811942]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[657.243849674365,-677.8181622811942]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[657.243849674365,-677.8181622811942]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[657.243849674365,-677.8181622811942]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 657.243849674365, -677.8181622811942 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 86.06004324928733, -559.0431586531295 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[632.45890654406,-667.1960437967778]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[632.45890654406,-667.1960437967778]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[632.45890654406,-667.1960437967778]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[632.45890654406,-667.1960437967778]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 632.45890654406, -667.1960437967778 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 56.789521111259546, -544.4078975841156 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[607.673963413755,-653.0332191508892]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[607.673963413755,-653.0332191508892]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[607.673963413755,-653.0332191508892]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[607.673963413755,-653.0332191508892]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 607.673963413755, -653.0332191508892 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -536.0448912589649 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.1332572522829,-649.492512989417]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.1332572522829,-649.492512989417]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.1332572522829,-649.492512989417]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.1332572522829,-649.492512989417]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 604.1332572522829, -649.492512989417 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.06350846095802, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.1332572522829,-638.8703945050006]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.1332572522829,-638.8703945050006]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.1332572522829,-638.8703945050006]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.1332572522829,-638.8703945050006]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 604.1332572522829, -638.8703945050006 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.06350846095802, -527.6818849338141 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[607.673963413755,-635.3296883435285]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[607.673963413755,-635.3296883435285]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[607.673963413755,-635.3296883435285]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[607.673963413755,-635.3296883435285]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 607.673963413755, -635.3296883435285 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-525.5911333525264]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-525.5911333525264]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-525.5911333525264]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-525.5911333525264]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -525.5911333525264 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[614.7553757366993,-631.7889821820563]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[614.7553757366993,-631.7889821820563]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[614.7553757366993,-631.7889821820563]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[614.7553757366993,-631.7889821820563]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 614.7553757366993, -631.7889821820563 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 46.33576320482109, -523.5003817712387 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.3774942211157,-607.0040390517513]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.3774942211157,-607.0040390517513]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.3774942211157,-607.0040390517513]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.3774942211157,-607.0040390517513]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 625.3774942211157, -607.0040390517513 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[639.5403188670043,-571.5969774370299]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[639.5403188670043,-571.5969774370299]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[639.5403188670043,-571.5969774370299]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[639.5403188670043,-571.5969774370299]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 639.5403188670043, -571.5969774370299 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 60.97102427383493, -487.957604889348 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.6217311899486,-557.4341527911413]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.6217311899486,-557.4341527911413]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.6217311899486,-557.4341527911413]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-Broadcast : 72e081ba-0b2d-47df-a47f-c2e974656fec, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.6217311899486,-557.4341527911413]],"_id":"72e081ba-0b2d-47df-a47f-c2e974656fec"}
-{ _id: '72e081ba-0b2d-47df-a47f-c2e974656fec',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 646.6217311899486, -557.4341527911413 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 65.15252743641031, -479.5945985641972 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["8ae9adfb-f612-47f5-85d8-a345666ba66b","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '8ae9adfb-f612-47f5-85d8-a345666ba66b',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,233.35169065490481]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,233.35169065490481]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,233.35169065490481]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,233.35169065490481]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 111.14906222473962, 233.35169065490481 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,231.26093907361724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,231.26093907361724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,231.26093907361724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,231.26093907361724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.2398138060272, 231.26093907361724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 117.42131696860258, 224.98868432975405 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,197.80891377301418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,197.80891377301418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,197.80891377301418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,197.80891377301418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, 197.80891377301418 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 173.87160966337012, 170.62914321627431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 228.2311507768501, 130.90486317180807 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.93556554516658,180.895387572029]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.93556554516658,180.895387572029]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.93556554516658,180.895387572029]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.93556554516658,180.895387572029]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -252.93556554516658, 180.895387572029 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 295.1352013780562, 82.8175768021913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-171.39625387494675,139.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-171.39625387494675,139.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-171.39625387494675,139.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-171.39625387494675,139.08035594627518]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -171.39625387494675, 139.08035594627518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 295.1352013780562, 82.8175768021913 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.76272541176832,126.53584645854903]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.76272541176832,126.53584645854903]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.76272541176832,126.53584645854903]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.76272541176832,126.53584645854903]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -133.76272541176832, 126.53584645854903 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[414.30804151145446,28.458035688711334]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[414.30804151145446,28.458035688711334]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[414.30804151145446,28.458035688711334]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[414.30804151145446,28.458035688711334]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 414.30804151145446, 28.458035688711334 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-106.58295485502822,116.08208855211069]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-106.58295485502822,116.08208855211069]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-106.58295485502822,116.08208855211069]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-106.58295485502822,116.08208855211069]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -106.58295485502822, 116.08208855211069 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,18.004277782272993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 441.48781206819456, 18.004277782272993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-98.21994852987746,107.71908222695993]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-98.21994852987746,107.71908222695993]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-98.21994852987746,107.71908222695993]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-98.21994852987746,107.71908222695993]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -98.21994852987746, 107.71908222695993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,9.64127145712223]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,9.64127145712223]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,9.64127145712223]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,9.64127145712223]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 449.8508183933453, 9.64127145712223 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-94.03844536730207,105.62833064567212]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-94.03844536730207,105.62833064567212]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-94.03844536730207,105.62833064567212]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-Broadcast : 19228090-c099-41b1-bbc0-eb68ac81e816, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-94.03844536730207,105.62833064567212]],"_id":"19228090-c099-41b1-bbc0-eb68ac81e816"}
-{ _id: '19228090-c099-41b1-bbc0-eb68ac81e816',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -94.03844536730207, 105.62833064567212 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[454.0323215559207,7.550519875834425]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[454.0323215559207,7.550519875834425]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[454.0323215559207,7.550519875834425]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[454.0323215559207,7.550519875834425]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 454.0323215559207, 7.550519875834425 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,701.6800448633473]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 493.7566016003867, 701.6800448633473 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,699.5892932820598]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,699.5892932820598]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,699.5892932820598]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,699.5892932820598]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 493.7566016003867, 699.5892932820598 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,697.498541700772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 493.7566016003867, 697.498541700772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,691.226286956909]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,691.226286956909]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,691.226286956909]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,691.226286956909]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 493.7566016003867, 691.226286956909 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,676.5910258878951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,676.5910258878951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,676.5910258878951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,676.5910258878951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 493.7566016003867, 676.5910258878951 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,651.5020069124428]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,651.5020069124428]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,651.5020069124428]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,651.5020069124428]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 500.0288563442497, 651.5020069124428 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,611.7777268679768]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,611.7777268679768]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,611.7777268679768]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,611.7777268679768]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 523.0271237384144, 611.7777268679768 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,576.2349499860861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,576.2349499860861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,576.2349499860861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[552.2976458764421,576.2349499860861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 552.2976458764421, 576.2349499860861 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[569.0236585267436,528.1476636164691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[569.0236585267436,528.1476636164691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[569.0236585267436,528.1476636164691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[569.0236585267436,528.1476636164691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 569.0236585267436, 528.1476636164691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,473.78812250298915]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,473.78812250298915]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,473.78812250298915]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,473.78812250298915]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 571.1144101080312, 473.78812250298915 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,440.3360972023861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,440.3360972023861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,440.3360972023861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,440.3360972023861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 558.569900620305, 440.3360972023861 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,436.1545940398107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,436.1545940398107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,436.1545940398107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,436.1545940398107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 558.569900620305, 436.1545940398107 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,434.06384245852314]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,434.06384245852314]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,434.06384245852314]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,434.06384245852314]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 558.569900620305, 434.06384245852314 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,417.3378298082216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,417.3378298082216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,417.3378298082216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[548.1161427138667,417.3378298082216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 548.1161427138667, 417.3378298082216 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,365.06904027602945]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,365.06904027602945]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,365.06904027602945]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,365.06904027602945]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 525.117875319702, 365.06904027602945 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[458.2138247184961,268.8944675367957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[458.2138247184961,268.8944675367957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[458.2138247184961,268.8944675367957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[458.2138247184961,268.8944675367957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 458.2138247184961, 268.8944675367957 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[395.49127727986536,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 395.49127727986536, 132.99561475309588 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 313.9519656096453, 13.822774619697611 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 232.41265393942547, -90.71480444468693 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 58.88027269254724, -301.8807141547436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.47580320926181,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.47580320926181,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.47580320926181,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.47580320926181,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -41.47580320926181, -433.598063775868 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.4688727859202,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.4688727859202,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.4688727859202,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.4688727859202,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -133.4688727859202, -546.4986491654033 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -225.4619423625785, -669.852992461377 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -298.6382477076477, -751.3923041315968 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-791.116584176063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-791.116584176063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-791.116584176063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-791.116584176063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -348.81628565855215, -791.116584176063 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-797.388838919926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-797.388838919926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-797.388838919926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-797.388838919926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -797.388838919926 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -799.4795905012138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-801.5703420825014]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-801.5703420825014]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-801.5703420825014]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-801.5703420825014]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -801.5703420825014 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-805.7518452450768]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-805.7518452450768]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-805.7518452450768]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-805.7518452450768]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -805.7518452450768 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -809.9333484076521 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-820.3871063140906]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-820.3871063140906]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-820.3871063140906]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-820.3871063140906]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -350.90703723983984, -820.3871063140906 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-837.1131189643921]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-837.1131189643921]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-837.1131189643921]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-837.1131189643921]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -348.81628565855215, -837.1131189643921 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-843.3853737082552]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-843.3853737082552]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-843.3853737082552]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-843.3853737082552]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -346.72553407726446, -843.3853737082552 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -346.72553407726446, -849.6576284521183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -344.63478249597676, -853.8391316146937 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-855.9298831959813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-855.9298831959813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-855.9298831959813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-855.9298831959813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -340.4532793334014, -855.9298831959813 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-338.3625277521137,-862.2021379398444]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-338.3625277521137,-862.2021379398444]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-338.3625277521137,-862.2021379398444]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-338.3625277521137,-862.2021379398444]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -338.3625277521137, -862.2021379398444 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-866.3836411024198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-866.3836411024198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-866.3836411024198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-866.3836411024198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -344.63478249597676, -866.3836411024198 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-872.6558958462829]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-872.6558958462829]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-872.6558958462829]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-872.6558958462829]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -361.3607951462783, -872.6558958462829 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-375.9960562152921,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -375.9960562152921, -878.928150590146 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-881.0189021714336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-881.0189021714336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-881.0189021714336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-881.0189021714336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -382.2683109591552, -881.0189021714336 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -382.2683109591552, -883.1096537527213 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-380.1775593778675,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-380.1775593778675,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-380.1775593778675,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-380.1775593778675,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -380.1775593778675, -883.1096537527213 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -378.0868077965798, -883.1096537527213 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-369.72380147142906,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-369.72380147142906,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-369.72380147142906,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-369.72380147142906,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -369.72380147142906, -883.1096537527213 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -359.2700435649906, -883.1096537527213 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -878.928150590146 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -340.4532793334014, -876.8373990088583 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -329.99952142696293, -876.8373990088583 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-876.8373990088583]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -321.6365151018123, -876.8373990088583 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -321.6365151018123, -878.928150590146 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-881.0189021714336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-881.0189021714336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-881.0189021714336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-881.0189021714336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -319.5457635205246, -881.0189021714336 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-317.4550119392369,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-317.4550119392369,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-317.4550119392369,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-317.4550119392369,-883.1096537527213]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -317.4550119392369, -883.1096537527213 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-885.200405334009]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-885.200405334009]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-885.200405334009]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-885.200405334009]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -315.3642603579492, -885.200405334009 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-887.2911569152967]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-887.2911569152967]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-887.2911569152967]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-887.2911569152967]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -313.2735087766615, -887.2911569152967 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-889.3819084965844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-889.3819084965844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-889.3819084965844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-889.3819084965844]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -311.1827571953738, -889.3819084965844 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -309.09200561408613, -891.472660077872 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -304.91050245151075, -891.472660077872 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.81975087022306,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.81975087022306,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.81975087022306,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.81975087022306,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -302.81975087022306, -891.472660077872 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-895.6541632404474]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-895.6541632404474]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-895.6541632404474]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-895.6541632404474]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -298.6382477076477, -895.6541632404474 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-899.8356664030227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-899.8356664030227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-899.8356664030227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-899.8356664030227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -292.3659929637846, -899.8356664030227 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-910.2894243094613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-910.2894243094613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-910.2894243094613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-275.6399803134831,-910.2894243094613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -275.6399803134831, -910.2894243094613 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -166.92089808652315, -950.0137043539273 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 83.96929166799953, -1008.5547486299827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.2172899301669,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.2172899301669,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.2172899301669,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.2172899301669,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 412.2172899301669, -1121.455334019518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 868.001134650883, -1058.7327865808873 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[629.6554543840865,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 629.6554543840865, -989.7379843983935 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 368.31150672312526, -958.3767106790781 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 83.96929166799953, -962.5582138416535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.10586646076945,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.10586646076945,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.10586646076945,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-125.10586646076945,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -125.10586646076945, -989.7379843983935 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.73073189477077,-1025.2807612802842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.73073189477077,-1025.2807612802842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.73073189477077,-1025.2807612802842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.73073189477077,-1025.2807612802842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -277.73073189477077, -1025.2807612802842 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -378.0868077965798, -1054.5512834183119 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-451.263113141649,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-451.263113141649,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-451.263113141649,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-451.263113141649,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -451.263113141649, -1075.4587992311888 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1092.1848118814903]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1092.1848118814903]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1092.1848118814903]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1092.1848118814903]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -1092.1848118814903 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1100.547818206641]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1100.547818206641]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1100.547818206641]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1100.547818206641]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -1100.547818206641 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1117.2738308569426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1117.2738308569426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1117.2738308569426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1117.2738308569426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -1117.2738308569426 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1129.8183403446687]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1129.8183403446687]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1129.8183403446687]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1129.8183403446687]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -1129.8183403446687 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -1136.0905950885317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1140.272098251107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1140.272098251107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1140.272098251107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-1140.272098251107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -1140.272098251107 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.894908998992,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.894908998992,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.894908998992,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.894908998992,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -511.894908998992, -1136.0905950885317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-1117.2738308569426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-1117.2738308569426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-1117.2738308569426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-1117.2738308569426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -530.7116732305813, -1117.2738308569426 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -1060.8235381621748 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-979.284226491955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-979.284226491955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-979.284226491955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-979.284226491955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -564.1636985311842, -979.284226491955 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -570.4359532750473, -906.1079211468859 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -570.4359532750473, -901.9264179843105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-904.0171695655981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-904.0171695655981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-904.0171695655981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-570.4359532750473,-904.0171695655981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -570.4359532750473, -904.0171695655981 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-906.1079211468859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -568.3452016937596, -906.1079211468859 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -564.1636985311842, -920.7431822158997 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-553.7099406247457,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-553.7099406247457,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-553.7099406247457,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-553.7099406247457,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -553.7099406247457, -935.3784432849136 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.8024248118688,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.8024248118688,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.8024248118688,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.8024248118688,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -532.8024248118688, -947.9229527726397 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -513.9856605802797, -958.3767106790781 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-488.8966416048274,-960.4674622603658]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-488.8966416048274,-960.4674622603658]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-488.8966416048274,-960.4674622603658]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-488.8966416048274,-960.4674622603658]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -488.8966416048274, -960.4674622603658 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-960.4674622603658]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-960.4674622603658]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-960.4674622603658]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-960.4674622603658]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -463.8076226293751, -960.4674622603658 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-451.263113141649,-956.2859590977905]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-451.263113141649,-956.2859590977905]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-451.263113141649,-956.2859590977905]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-451.263113141649,-956.2859590977905]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -451.263113141649, -956.2859590977905 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-444.9908583977859,-954.1952075165027]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-444.9908583977859,-954.1952075165027]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-444.9908583977859,-954.1952075165027]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-444.9908583977859,-954.1952075165027]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -444.9908583977859, -954.1952075165027 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-438.71860365392286,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-438.71860365392286,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-438.71860365392286,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-438.71860365392286,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -438.71860365392286, -952.1044559352151 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -432.4463489100598, -947.9229527726397 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -428.2648457474844, -947.9229527726397 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -426.1740941661967, -947.9229527726397 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-947.9229527726397]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -421.9925910036213, -947.9229527726397 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-950.0137043539273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -421.9925910036213, -950.0137043539273 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -424.083342584909, -952.1044559352151 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -426.1740941661967, -952.1044559352151 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -434.5371004913475, -958.3767106790781 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-447.0816099790736,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-447.0816099790736,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-447.0816099790736,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-447.0816099790736,-966.7397170042289]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -447.0816099790736, -966.7397170042289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -463.8076226293751, -975.1027233293796 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.8983742106628,-979.284226491955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.8983742106628,-979.284226491955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.8983742106628,-979.284226491955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.8983742106628,-979.284226491955]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -465.8983742106628, -979.284226491955 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -474.26138053581354, -981.3749780732427 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -474.26138053581354, -981.3749780732427 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -474.26138053581354, -977.1934749106673 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -453.3538647229367, -962.5582138416535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -344.63478249597676, -914.4709274720367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-864.2928895211321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-864.2928895211321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-864.2928895211321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-864.2928895211321]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -219.18968761871542, -864.2928895211321 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.21637225059203,150.23320654462736]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.21637225059203,150.23320654462736]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.21637225059203,150.23320654462736]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.21637225059203,150.23320654462736]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 83.21637225059203, 150.23320654462736 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.11279688411105,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.11279688411105,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.11279688411105,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.11279688411105,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -33.11279688411105, -799.4795905012138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.75048610330578,203.54737186746354]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.75048610330578,203.54737186746354]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.75048610330578,203.54737186746354]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.75048610330578,203.54737186746354]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 233.75048610330578, 203.54737186746354 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 67.243279017698, -763.936813619323 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.01621159425986,259.9748223023788]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.01621159425986,259.9748223023788]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.01621159425986,259.9748223023788]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.01621159425986,259.9748223023788]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.01621159425986, 259.9748223023788 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[307.67971086578234,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[307.67971086578234,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 67.243279017698, -763.936813619323 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[307.67971086578234,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[307.67971086578234,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[401.7635320237283,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[401.7635320237283,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[401.7635320237283,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[401.7635320237283,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 401.7635320237283, -651.0362282297878 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[458.2138247184961,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[458.2138247184961,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[458.2138247184961,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[458.2138247184961,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 458.2138247184961, -625.9472092543355 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 485.39359527523595, -615.493451347897 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 500.0288563442497, -602.9489418601709 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 506.30111108811286, -594.5859355350201 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-590.4044323724447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-590.4044323724447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-590.4044323724447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-590.4044323724447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 516.7548689945512, -590.4044323724447 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-577.8599228847187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-577.8599228847187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-577.8599228847187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-577.8599228847187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 531.3901300635652, -577.8599228847187 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[554.3883974577296,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[554.3883974577296,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[554.3883974577296,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[554.3883974577296,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 554.3883974577296, -567.4061649782802 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 571.1144101080312, -563.2246618157048 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[589.9311743396205,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[589.9311743396205,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[589.9311743396205,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[589.9311743396205,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 589.9311743396205, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[602.4756838273466,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 602.4756838273466, -559.0431586531295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -559.0431586531295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[635.9277091279497,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[635.9277091279497,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[635.9277091279497,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[635.9277091279497,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 635.9277091279497, -554.8616554905541 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 656.8352249408266, -548.589400746691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[702.8317597291556,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 702.8317597291556, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[782.2803198180878,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[782.2803198180878,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[782.2803198180878,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[782.2803198180878,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 782.2803198180878, -500.5021143770741 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[859.6381283257323,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[859.6381283257323,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[859.6381283257323,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[859.6381283257323,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 859.6381283257323, -475.41309540162183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[920.2699241830754,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[920.2699241830754,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[920.2699241830754,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[920.2699241830754,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 920.2699241830754, -456.5963311700326 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 951.6311979023907, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[959.9942042275414,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[959.9942042275414,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[959.9942042275414,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[959.9942042275414,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 959.9942042275414, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[957.9034526462539,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[957.9034526462539,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[957.9034526462539,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[957.9034526462539,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 957.9034526462539, -456.5963311700326 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[955.8127010649661,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[955.8127010649661,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[955.8127010649661,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[955.8127010649661,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 955.8127010649661, -458.6870827513203 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 953.7219494836785, -458.6870827513203 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 951.6311979023907, -460.777834332608 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[947.4496947398153,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[947.4496947398153,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[947.4496947398153,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[947.4496947398153,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 947.4496947398153, -462.8685859138957 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[943.2681915772399,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[943.2681915772399,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[943.2681915772399,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[943.2681915772399,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 943.2681915772399, -464.9593374951834 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[941.1774399959523,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[941.1774399959523,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[941.1774399959523,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[941.1774399959523,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 941.1774399959523, -469.14084065775876 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[939.0866884146645,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[939.0866884146645,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[939.0866884146645,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[939.0866884146645,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 939.0866884146645, -471.23159223904645 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[934.9051852520892,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[934.9051852520892,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[934.9051852520892,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[934.9051852520892,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 934.9051852520892, -471.23159223904645 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[932.8144336708016,-473.32234382033414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[932.8144336708016,-473.32234382033414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[932.8144336708016,-473.32234382033414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[932.8144336708016,-473.32234382033414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 932.8144336708016, -473.32234382033414 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 930.7236820895138, -477.5038469829095 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-Incoming : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Set Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":52.1044190260925}
-calling update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":52.1044190260925}
-called update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":52.1044190260925}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":52.1044190260925}
-Broadcast : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, sending data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":52.1044190260925}
-{ _id: 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9',
- data: 52.1044190260925,
- type: 0 }
-Incoming : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Set Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-133.2135590331426}
-calling update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-133.2135590331426}
-called update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-133.2135590331426}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-133.2135590331426}
-Broadcast : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, sending data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-133.2135590331426}
-{ _id: '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19',
- data: -133.2135590331426,
- type: 0 }
-Incoming : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Set Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-calling update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-called update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-Broadcast : 672c99e2-ba2a-419b-9f06-903d9aeba563, sending data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Set Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":279.3266125675432}
-calling update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":279.3266125675432}
-called update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":279.3266125675432}
-Incoming : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Set Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-75.22654126010241}
-calling update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-75.22654126010241}
-called update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-75.22654126010241}
-Incoming : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Set Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-calling update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-called update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-calling update on data {"type":1,"data":[],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":[],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-317.4881958280226}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-317.4881958280226}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-317.4881958280226}
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-170.86231566955587}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-170.86231566955587}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-170.86231566955587}
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-calling update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-called update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-calling update on data {"type":5,"data":[],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-called update on data {"type":5,"data":[],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-calling update on data {"type":1,"data":[],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-called update on data {"type":1,"data":[],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-calling update on data {"type":6,"data":"a nested collection","_id":"34c3fd6e-0901-443a-8f3a-92eefbd24967"}
-called update on data {"type":6,"data":"a nested collection","_id":"34c3fd6e-0901-443a-8f3a-92eefbd24967"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-Incoming : 226d38d2-370c-40b2-8054-0fb44dcd99d6, receiving Set Field with data {"_id":"226d38d2-370c-40b2-8054-0fb44dcd99d6","type":0,"data":1}
-calling update on data {"_id":"226d38d2-370c-40b2-8054-0fb44dcd99d6","type":0,"data":1}
-called update on data {"_id":"226d38d2-370c-40b2-8054-0fb44dcd99d6","type":0,"data":1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-calling update on data {"type":6,"data":"Transparent","_id":"af605412-62f3-46fd-8e16-3f0bb1dfb2ea"}
-called update on data {"type":6,"data":"Transparent","_id":"af605412-62f3-46fd-8e16-3f0bb1dfb2ea"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","af605412-62f3-46fd-8e16-3f0bb1dfb2ea"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","af605412-62f3-46fd-8e16-3f0bb1dfb2ea"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-calling update on data {"type":12,"data":{},"_id":"5c4bb999-fffb-4cb4-8609-506deb098855"}
-called update on data {"type":12,"data":{},"_id":"5c4bb999-fffb-4cb4-8609-506deb098855"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","af605412-62f3-46fd-8e16-3f0bb1dfb2ea"],["59b58624-916f-50a0-8efa-7003a805bfad","5c4bb999-fffb-4cb4-8609-506deb098855"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","af605412-62f3-46fd-8e16-3f0bb1dfb2ea"],["59b58624-916f-50a0-8efa-7003a805bfad","5c4bb999-fffb-4cb4-8609-506deb098855"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-calling update on data {"type":5,"data":[],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Incoming : a12c0892-2b78-49e7-a734-97900b3676eb, receiving Set Field with data {"_id":"a12c0892-2b78-49e7-a734-97900b3676eb","type":0,"data":-474.26138053581354}
-calling update on data {"_id":"a12c0892-2b78-49e7-a734-97900b3676eb","type":0,"data":-474.26138053581354}
-called update on data {"_id":"a12c0892-2b78-49e7-a734-97900b3676eb","type":0,"data":-474.26138053581354}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Incoming : 20b0822d-da85-4ad7-ab57-8d6dc217f548, receiving Set Field with data {"_id":"20b0822d-da85-4ad7-ab57-8d6dc217f548","type":0,"data":-981.3749780732427}
-calling update on data {"_id":"20b0822d-da85-4ad7-ab57-8d6dc217f548","type":0,"data":-981.3749780732427}
-called update on data {"_id":"20b0822d-da85-4ad7-ab57-8d6dc217f548","type":0,"data":-981.3749780732427}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Incoming : 77961865-700c-47af-b4f1-df449d15ea11, receiving Set Field with data {"_id":"77961865-700c-47af-b4f1-df449d15ea11","type":0,"data":1404.9850626253274}
-calling update on data {"_id":"77961865-700c-47af-b4f1-df449d15ea11","type":0,"data":1404.9850626253274}
-called update on data {"_id":"77961865-700c-47af-b4f1-df449d15ea11","type":0,"data":1404.9850626253274}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Incoming : f8d64559-98ea-431c-a90a-736a50d17da0, receiving Set Field with data {"_id":"f8d64559-98ea-431c-a90a-736a50d17da0","type":0,"data":503.87113109033317}
-calling update on data {"_id":"f8d64559-98ea-431c-a90a-736a50d17da0","type":0,"data":503.87113109033317}
-called update on data {"_id":"f8d64559-98ea-431c-a90a-736a50d17da0","type":0,"data":503.87113109033317}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Incoming : fd9581ab-59d5-4b96-aa66-f5405e6c3b5f, receiving Set Field with data {"_id":"fd9581ab-59d5-4b96-aa66-f5405e6c3b5f","type":0,"data":0}
-calling update on data {"_id":"fd9581ab-59d5-4b96-aa66-f5405e6c3b5f","type":0,"data":0}
-called update on data {"_id":"fd9581ab-59d5-4b96-aa66-f5405e6c3b5f","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Incoming : 37cd2c18-bae8-4c7a-9f56-898eabf021ea, receiving Set Field with data {"_id":"37cd2c18-bae8-4c7a-9f56-898eabf021ea","type":0,"data":0}
-calling update on data {"_id":"37cd2c18-bae8-4c7a-9f56-898eabf021ea","type":0,"data":0}
-called update on data {"_id":"37cd2c18-bae8-4c7a-9f56-898eabf021ea","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Incoming : a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2, receiving Set Field with data {"_id":"a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2","type":0,"data":-1}
-calling update on data {"_id":"a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2","type":0,"data":-1}
-called update on data {"_id":"a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2","type":0,"data":-1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-calling update on data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '672c99e2-ba2a-419b-9f06-903d9aeba563', data: 0, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":279.3266125675432}
-Broadcast : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, sending data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":279.3266125675432}
-{ _id: '9ffe2a20-7fcb-4460-aa91-922b69f91e24',
- data: 279.3266125675432,
- type: 0 }
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data: [ '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-75.22654126010241}
-Broadcast : d7d79305-cd6b-4653-a173-1284f76f5773, sending data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-75.22654126010241}
-{ _id: '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b',
- data: -1,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-Broadcast : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, sending data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-{ _id: 'd7d79305-cd6b-4653-a173-1284f76f5773',
- data: -75.22654126010241,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":[],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":[],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data: [],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-170.86231566955587}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-170.86231566955587}
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: -89.25704505117244,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-317.4881958280226}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-317.4881958280226}
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: -170.86231566955587,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-{ _id: '0dc04257-8187-4391-a1bf-a63c30a9e922',
- data: {},
- type: 12 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-Broadcast : 0dc04257-8187-4391-a1bf-a63c30a9e922, sending data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830', data: 0, type: 0 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-Broadcast : 4b6adcc6-2586-48e6-bb9a-64849ce852db, sending data {"type":5,"data":[],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-{ _id: '4b6adcc6-2586-48e6-bb9a-64849ce852db',
- data: [],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}],"ok":1}
-Wrote {"type":1,"data":[],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-Broadcast : 935e09ed-1501-4c7a-9d62-c58d02484fa1, sending data {"type":1,"data":[],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-{ _id: '4b6adcc6-2586-48e6-bb9a-64849ce852db',
- data: [],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-Broadcast : 4b6adcc6-2586-48e6-bb9a-64849ce852db, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-{ _id: '935e09ed-1501-4c7a-9d62-c58d02484fa1',
- data: [],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-Broadcast : 935e09ed-1501-4c7a-9d62-c58d02484fa1, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-{ _id: '4b6adcc6-2586-48e6-bb9a-64849ce852db',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-Broadcast : 4b6adcc6-2586-48e6-bb9a-64849ce852db, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-{ _id: '935e09ed-1501-4c7a-9d62-c58d02484fa1',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"34c3fd6e-0901-443a-8f3a-92eefbd24967"}],"ok":1}
-Wrote {"type":6,"data":"a nested collection","_id":"34c3fd6e-0901-443a-8f3a-92eefbd24967"}
-Broadcast : 34c3fd6e-0901-443a-8f3a-92eefbd24967, sending data {"type":6,"data":"a nested collection","_id":"34c3fd6e-0901-443a-8f3a-92eefbd24967"}
-{ _id: '34c3fd6e-0901-443a-8f3a-92eefbd24967',
- data: 'a nested collection',
- type: 6 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"226d38d2-370c-40b2-8054-0fb44dcd99d6"}],"ok":1}
-Wrote {"_id":"226d38d2-370c-40b2-8054-0fb44dcd99d6","type":0,"data":1}
-Broadcast : 226d38d2-370c-40b2-8054-0fb44dcd99d6, sending data {"_id":"226d38d2-370c-40b2-8054-0fb44dcd99d6","type":0,"data":1}
-{ _id: '4b6adcc6-2586-48e6-bb9a-64849ce852db',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '935e09ed-1501-4c7a-9d62-c58d02484fa1' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-Broadcast : 4b6adcc6-2586-48e6-bb9a-64849ce852db, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-{ _id: '226d38d2-370c-40b2-8054-0fb44dcd99d6', data: 1, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-Broadcast : 4b6adcc6-2586-48e6-bb9a-64849ce852db, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"af605412-62f3-46fd-8e16-3f0bb1dfb2ea"}],"ok":1}
-Wrote {"type":6,"data":"Transparent","_id":"af605412-62f3-46fd-8e16-3f0bb1dfb2ea"}
-Broadcast : af605412-62f3-46fd-8e16-3f0bb1dfb2ea, sending data {"type":6,"data":"Transparent","_id":"af605412-62f3-46fd-8e16-3f0bb1dfb2ea"}
-{ _id: '4b6adcc6-2586-48e6-bb9a-64849ce852db',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '935e09ed-1501-4c7a-9d62-c58d02484fa1' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '34c3fd6e-0901-443a-8f3a-92eefbd24967' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '226d38d2-370c-40b2-8054-0fb44dcd99d6' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","af605412-62f3-46fd-8e16-3f0bb1dfb2ea"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-Broadcast : 4b6adcc6-2586-48e6-bb9a-64849ce852db, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","af605412-62f3-46fd-8e16-3f0bb1dfb2ea"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-{ _id: '4b6adcc6-2586-48e6-bb9a-64849ce852db',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '935e09ed-1501-4c7a-9d62-c58d02484fa1' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '34c3fd6e-0901-443a-8f3a-92eefbd24967' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '226d38d2-370c-40b2-8054-0fb44dcd99d6' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- 'af605412-62f3-46fd-8e16-3f0bb1dfb2ea' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","af605412-62f3-46fd-8e16-3f0bb1dfb2ea"],["59b58624-916f-50a0-8efa-7003a805bfad","5c4bb999-fffb-4cb4-8609-506deb098855"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-Broadcast : 4b6adcc6-2586-48e6-bb9a-64849ce852db, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","935e09ed-1501-4c7a-9d62-c58d02484fa1"],["51529209-4838-51c5-a520-0044fddf139c","34c3fd6e-0901-443a-8f3a-92eefbd24967"],["771c0a88-bd02-5e92-953f-e9042a191928","226d38d2-370c-40b2-8054-0fb44dcd99d6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","af605412-62f3-46fd-8e16-3f0bb1dfb2ea"],["59b58624-916f-50a0-8efa-7003a805bfad","5c4bb999-fffb-4cb4-8609-506deb098855"]],"_id":"4b6adcc6-2586-48e6-bb9a-64849ce852db"}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"5c4bb999-fffb-4cb4-8609-506deb098855"}],"ok":1}
-Wrote {"type":12,"data":{},"_id":"5c4bb999-fffb-4cb4-8609-506deb098855"}
-Broadcast : 5c4bb999-fffb-4cb4-8609-506deb098855, sending data {"type":12,"data":{},"_id":"5c4bb999-fffb-4cb4-8609-506deb098855"}
-{ _id: '4b6adcc6-2586-48e6-bb9a-64849ce852db',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '935e09ed-1501-4c7a-9d62-c58d02484fa1' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '34c3fd6e-0901-443a-8f3a-92eefbd24967' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '226d38d2-370c-40b2-8054-0fb44dcd99d6' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- 'af605412-62f3-46fd-8e16-3f0bb1dfb2ea' ],
- [ '59b58624-916f-50a0-8efa-7003a805bfad',
- '5c4bb999-fffb-4cb4-8609-506deb098855' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data: [],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"a12c0892-2b78-49e7-a734-97900b3676eb"}],"ok":1}
-Wrote {"_id":"a12c0892-2b78-49e7-a734-97900b3676eb","type":0,"data":-474.26138053581354}
-Broadcast : a12c0892-2b78-49e7-a734-97900b3676eb, sending data {"_id":"a12c0892-2b78-49e7-a734-97900b3676eb","type":0,"data":-474.26138053581354}
-{ _id: 'a12c0892-2b78-49e7-a734-97900b3676eb',
- data: -474.26138053581354,
- type: 0 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"20b0822d-da85-4ad7-ab57-8d6dc217f548"}],"ok":1}
-Wrote {"_id":"20b0822d-da85-4ad7-ab57-8d6dc217f548","type":0,"data":-981.3749780732427}
-Broadcast : 20b0822d-da85-4ad7-ab57-8d6dc217f548, sending data {"_id":"20b0822d-da85-4ad7-ab57-8d6dc217f548","type":0,"data":-981.3749780732427}
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-{ _id: '20b0822d-da85-4ad7-ab57-8d6dc217f548',
- data: -981.3749780732427,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"77961865-700c-47af-b4f1-df449d15ea11"}],"ok":1}
-Wrote {"_id":"77961865-700c-47af-b4f1-df449d15ea11","type":0,"data":1404.9850626253274}
-Broadcast : 77961865-700c-47af-b4f1-df449d15ea11, sending data {"_id":"77961865-700c-47af-b4f1-df449d15ea11","type":0,"data":1404.9850626253274}
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'a12c0892-2b78-49e7-a734-97900b3676eb' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '20b0822d-da85-4ad7-ab57-8d6dc217f548' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'a12c0892-2b78-49e7-a734-97900b3676eb' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '20b0822d-da85-4ad7-ab57-8d6dc217f548' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '77961865-700c-47af-b4f1-df449d15ea11' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"f8d64559-98ea-431c-a90a-736a50d17da0"}],"ok":1}
-Wrote {"_id":"f8d64559-98ea-431c-a90a-736a50d17da0","type":0,"data":503.87113109033317}
-Broadcast : f8d64559-98ea-431c-a90a-736a50d17da0, sending data {"_id":"f8d64559-98ea-431c-a90a-736a50d17da0","type":0,"data":503.87113109033317}
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'a12c0892-2b78-49e7-a734-97900b3676eb' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '20b0822d-da85-4ad7-ab57-8d6dc217f548' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '77961865-700c-47af-b4f1-df449d15ea11' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f8d64559-98ea-431c-a90a-736a50d17da0' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"}],"ok":1}
-Wrote {"_id":"fd9581ab-59d5-4b96-aa66-f5405e6c3b5f","type":0,"data":0}
-Broadcast : fd9581ab-59d5-4b96-aa66-f5405e6c3b5f, sending data {"_id":"fd9581ab-59d5-4b96-aa66-f5405e6c3b5f","type":0,"data":0}
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'a12c0892-2b78-49e7-a734-97900b3676eb' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '20b0822d-da85-4ad7-ab57-8d6dc217f548' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '77961865-700c-47af-b4f1-df449d15ea11' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f8d64559-98ea-431c-a90a-736a50d17da0' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-{ _id: 'fd9581ab-59d5-4b96-aa66-f5405e6c3b5f', data: 0, type: 0 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"37cd2c18-bae8-4c7a-9f56-898eabf021ea"}],"ok":1}
-Wrote {"_id":"37cd2c18-bae8-4c7a-9f56-898eabf021ea","type":0,"data":0}
-Broadcast : 37cd2c18-bae8-4c7a-9f56-898eabf021ea, sending data {"_id":"37cd2c18-bae8-4c7a-9f56-898eabf021ea","type":0,"data":0}
-{ _id: '37cd2c18-bae8-4c7a-9f56-898eabf021ea', data: 0, type: 0 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"}],"ok":1}
-Wrote {"_id":"a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2","type":0,"data":-1}
-Broadcast : a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2, sending data {"_id":"a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2","type":0,"data":-1}
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'a12c0892-2b78-49e7-a734-97900b3676eb' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '20b0822d-da85-4ad7-ab57-8d6dc217f548' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '77961865-700c-47af-b4f1-df449d15ea11' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f8d64559-98ea-431c-a90a-736a50d17da0' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- 'fd9581ab-59d5-4b96-aa66-f5405e6c3b5f' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-{ _id: 'a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2',
- data: -1,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data: [],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'a12c0892-2b78-49e7-a734-97900b3676eb' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '20b0822d-da85-4ad7-ab57-8d6dc217f548' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '77961865-700c-47af-b4f1-df449d15ea11' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f8d64559-98ea-431c-a90a-736a50d17da0' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- 'fd9581ab-59d5-4b96-aa66-f5405e6c3b5f' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- '37cd2c18-bae8-4c7a-9f56-898eabf021ea' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- 'a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2' ] ],
- type: 5 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 930.7236820895138, -477.5038469829095 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 930.7236820895138, -477.5038469829095 ] ],
- type: 14 }
-calling update on data {"type":1,"data":[],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-called update on data {"type":1,"data":[],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}],"ok":1}
-Wrote {"type":1,"data":[],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-Broadcast : fc42ca0d-4ad0-4177-99ce-6985311ff84d, sending data {"type":1,"data":[],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-{ _id: 'fc42ca0d-4ad0-4177-99ce-6985311ff84d',
- data: [],
- type: 1 }
-calling update on data {"type":1,"data":[],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-called update on data {"type":1,"data":[],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":1,"data":[],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-Broadcast : fc42ca0d-4ad0-4177-99ce-6985311ff84d, sending data {"type":1,"data":[],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-{ _id: 'fc42ca0d-4ad0-4177-99ce-6985311ff84d',
- data: [],
- type: 1 }
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"],["43606ee9-0825-51a3-98b2-06d36fdfd153","fc42ca0d-4ad0-4177-99ce-6985311ff84d"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"],["43606ee9-0825-51a3-98b2-06d36fdfd153","fc42ca0d-4ad0-4177-99ce-6985311ff84d"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"],["43606ee9-0825-51a3-98b2-06d36fdfd153","fc42ca0d-4ad0-4177-99ce-6985311ff84d"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"],["43606ee9-0825-51a3-98b2-06d36fdfd153","fc42ca0d-4ad0-4177-99ce-6985311ff84d"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[701.4925313126637,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[701.4925313126637,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[701.4925313126637,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[701.4925313126637,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-calling update on data {"type":1,"data":["339bd0a7-a2d6-4198-a985-03d4d5c6f76a"],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-called update on data {"type":1,"data":["339bd0a7-a2d6-4198-a985-03d4d5c6f76a"],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[932.8144336708016,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[932.8144336708016,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[943.2681915772399,-483.7761017267726]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[943.2681915772399,-483.7761017267726]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-undefined
-null
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'a12c0892-2b78-49e7-a734-97900b3676eb' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '20b0822d-da85-4ad7-ab57-8d6dc217f548' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '77961865-700c-47af-b4f1-df449d15ea11' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f8d64559-98ea-431c-a90a-736a50d17da0' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- 'fd9581ab-59d5-4b96-aa66-f5405e6c3b5f' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- '37cd2c18-bae8-4c7a-9f56-898eabf021ea' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- 'a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- 'fc42ca0d-4ad0-4177-99ce-6985311ff84d' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}],"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[701.4925313126637,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[701.4925313126637,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 701.4925313126637, 248.8448139638789 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[701.4925313126637,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[701.4925313126637,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["339bd0a7-a2d6-4198-a985-03d4d5c6f76a"],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-Broadcast : fc42ca0d-4ad0-4177-99ce-6985311ff84d, sending data {"type":1,"data":["339bd0a7-a2d6-4198-a985-03d4d5c6f76a"],"_id":"fc42ca0d-4ad0-4177-99ce-6985311ff84d"}
-{ _id: 'fc42ca0d-4ad0-4177-99ce-6985311ff84d',
- data: [ '339bd0a7-a2d6-4198-a985-03d4d5c6f76a' ],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[930.7236820895138,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 930.7236820895138, -479.5945985641972 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[932.8144336708016,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[932.8144336708016,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 932.8144336708016, -481.6853501454849 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[943.2681915772399,-483.7761017267726]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[943.2681915772399,-483.7761017267726]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 943.2681915772399, -483.7761017267726 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1008.0814905971584,-490.04835647063567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1008.0814905971584,-490.04835647063567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1008.0814905971584,-490.04835647063567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1008.0814905971584,-490.04835647063567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1008.0814905971584, -490.04835647063567 ] ],
- type: 14 }
-a user has connected
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1020.6260000848844,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1020.6260000848844,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1020.6260000848844,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1020.6260000848844,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1020.6260000848844, -71.89804021309783 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 838.7306125128554, -140.89284239559152 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, -226.61365722838673 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-538.3231563909362,140.12573173691908]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-538.3231563909362,140.12573173691908]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-538.3231563909362,140.12573173691908]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-538.3231563909362,140.12573173691908]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -538.3231563909362, 140.12573173691908 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -309.09200561408613, -588.313680791157 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-654.0660165265549,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-654.0660165265549,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-654.0660165265549,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-654.0660165265549,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -654.0660165265549, -709.5772725058431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 727.9207787046079, -920.7431822158997 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[447.7600668120575,-1002.2824938861196]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[447.7600668120575,-1002.2824938861196]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[447.7600668120575,-1002.2824938861196]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[447.7600668120575,-1002.2824938861196]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 447.7600668120575, -1002.2824938861196 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.931293721535667,-1138.1813466698195]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.931293721535667,-1138.1813466698195]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.931293721535667,-1138.1813466698195]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.931293721535667,-1138.1813466698195]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -28.931293721535667, -1138.1813466698195 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-886.1394420494884,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-886.1394420494884,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-886.1394420494884,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-886.1394420494884,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -886.1394420494884, -973.0119717480919 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-695.8810481523087,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-695.8810481523087,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-695.8810481523087,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-695.8810481523087,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -695.8810481523087, -998.1009907235442 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -522.3486669054305, -1019.0085065364211 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-1039.9160223492981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-1039.9160223492981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-1039.9160223492981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-1039.9160223492981]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -415.72033625975826, -1039.9160223492981 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-1052.460531837024]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-1052.460531837024]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-1052.460531837024]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-1052.460531837024]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -365.5422983088537, -1052.460531837024 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-363.451546727566,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-363.451546727566,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-363.451546727566,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-363.451546727566,-1054.5512834183119]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -363.451546727566, -1054.5512834183119 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -361.3607951462783, -1058.7327865808873 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -359.2700435649906, -1060.8235381621748 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-1060.8235381621748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -1060.8235381621748 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-352.99778882112753,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-352.99778882112753,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-352.99778882112753,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-352.99778882112753,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -352.99778882112753, -1065.0050413247502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-1073.368047649901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-1073.368047649901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-1073.368047649901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-1073.368047649901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -340.4532793334014, -1073.368047649901 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-1077.5495508124764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-1077.5495508124764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-1077.5495508124764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-334.1810245895383,-1077.5495508124764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -334.1810245895383, -1077.5495508124764 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -327.90876984567524, -1079.6403023937642 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -321.6365151018123, -1081.7310539750517 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -319.5457635205246, -1081.7310539750517 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -311.1827571953738, -1081.7310539750517 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-1077.5495508124764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-1077.5495508124764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-1077.5495508124764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-1077.5495508124764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -286.09373821992153, -1077.5495508124764 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-229.64344552515388,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-229.64344552515388,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-229.64344552515388,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-229.64344552515388,-1065.0050413247502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -229.64344552515388, -1065.0050413247502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-1035.7345191867225]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-1035.7345191867225]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-1035.7345191867225]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-1035.7345191867225]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -116.74286013561868, -1035.7345191867225 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556739868,-209.02978233812513]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556739868,-209.02978233812513]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556739868,-209.02978233812513]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556739868,-209.02978233812513]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -28.179770556739868, -209.02978233812513 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-937.4691948662012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-937.4691948662012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-937.4691948662012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-937.4691948662012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 201.05138022011022, -937.4691948662012 ] ],
- type: 14 }
-a user has connected
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[945.3589431585277,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[945.3589431585277,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[945.3589431585277,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[945.3589431585277,-1136.0905950885317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 945.3589431585277, -1136.0905950885317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-1006.463997048695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-1006.463997048695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-1006.463997048695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-1006.463997048695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 698.6502565665802, -1006.463997048695 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[677.7427407537033,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[677.7427407537033,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[677.7427407537033,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[677.7427407537033,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 677.7427407537033, -1000.1917423048319 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[673.5612375911279,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[673.5612375911279,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[673.5612375911279,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[673.5612375911279,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 673.5612375911279, -1000.1917423048319 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 671.4704860098403, -1000.1917423048319 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 667.288982847265, -1000.1917423048319 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[665.1982312659771,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[665.1982312659771,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[665.1982312659771,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[665.1982312659771,-1000.1917423048319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 665.1982312659771, -1000.1917423048319 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,-991.8287359796811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,-991.8287359796811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,-991.8287359796811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,-991.8287359796811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 656.8352249408266, -991.8287359796811 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[408.7873099323872,-252.9355655451666]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[408.7873099323872,-252.9355655451666]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[408.7873099323872,-252.9355655451666]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[408.7873099323872,-252.9355655451666]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 408.7873099323872, -252.9355655451666 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-981.3749780732427]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 638.0184607092373, -981.3749780732427 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[356.51852040019503,-215.3020370819882]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[356.51852040019503,-215.3020370819882]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[356.51852040019503,-215.3020370819882]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[356.51852040019503,-215.3020370819882]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 356.51852040019503, -215.3020370819882 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-943.7414496100644]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 585.7496711770451, -943.7414496100644 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[327.24799826216736,-200.66677601297437]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[327.24799826216736,-200.66677601297437]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[327.24799826216736,-200.66677601297437]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[327.24799826216736,-200.66677601297437]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 327.24799826216736, -200.66677601297437 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 556.4791490390174, -929.1061885410504 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-241.43643184808423,-236.20955289486508]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-241.43643184808423,-236.20955289486508]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-241.43643184808423,-236.20955289486508]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-241.43643184808423,-236.20955289486508]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -241.43643184808423, -236.20955289486508 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -12.20528107123414, -964.6489654229412 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-1006.463997048695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-1006.463997048695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-1006.463997048695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-1006.463997048695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -22.659038977672594, -1006.463997048695 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-51.92956111570027,-1111.0015761130794]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-51.92956111570027,-1111.0015761130794]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-51.92956111570027,-1111.0015761130794]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-51.92956111570027,-1111.0015761130794]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -51.92956111570027, -1111.0015761130794 ] ],
- type: 14 }
-calling update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-called update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-Broadcast : 6c3acd53-3a16-59b2-bc11-62c6d79b2cea, sending data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{ _id: '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- data: 'Prototype',
- type: 2 }
-calling update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-called update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-calling update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-called update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-calling update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-called update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-calling update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-called update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-calling update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-called update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-calling update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-called update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-calling update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-called update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-calling update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-called update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-calling update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-called update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-calling update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-called update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-calling update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-called update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-calling update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-called update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-calling update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-called update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-calling update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-called update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-calling update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-called update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-calling update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-called update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-calling update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-called update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-calling update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-called update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-calling update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-called update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-calling update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-called update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-calling update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-called update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-calling update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-called update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-calling update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-called update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-calling update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-called update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-calling update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-called update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-calling update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-called update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-calling update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-called update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-calling update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-called update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-calling update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-called update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-calling update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-called update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-calling update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-called update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-calling update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-called update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-calling update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-called update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-calling update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-called update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-calling update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-called update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-calling update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-called update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-calling update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-called update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-calling update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-called update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-calling update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-called update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-calling update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-called update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-calling update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-called update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-calling update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-called update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-Broadcast : 7b71638c-05b8-5573-9aa5-c737c9406a86, sending data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-{ _id: '7b71638c-05b8-5573-9aa5-c737c9406a86',
- data: 'X',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-Broadcast : 13a3cc01-c286-57e1-8746-baa3ced34e76, sending data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-{ _id: '13a3cc01-c286-57e1-8746-baa3ced34e76',
- data: 'Y',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-Broadcast : 911954a3-bebc-5b20-81f3-3091a2e11907, sending data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-{ _id: '911954a3-bebc-5b20-81f3-3091a2e11907',
- data: 'Page',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-Broadcast : 4cd12c43-3240-58dd-88bf-ce978edb2fde, sending data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-Broadcast : 51529209-4838-51c5-a520-0044fddf139c, sending data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-{ _id: '51529209-4838-51c5-a520-0044fddf139c',
- data: 'Title',
- type: 2 }
-{ _id: '4cd12c43-3240-58dd-88bf-ce978edb2fde',
- data: 'Author',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-Broadcast : 8efd3b8a-ce6c-5f44-9085-90a8b7cd2202, sending data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-{ _id: '048d25ac-b841-5728-a599-e3a432137881',
- data: 'PanY',
- type: 2 }
-{ _id: '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- data: 'PanX',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-Broadcast : 048d25ac-b841-5728-a599-e3a432137881, sending data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-Broadcast : f9f69d93-df75-5021-883a-efac00502b09, sending data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-{ _id: 'f9f69d93-df75-5021-883a-efac00502b09',
- data: 'Scale',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-Broadcast : ac03e21a-ec21-5402-a1ae-b66a7d8942a1, sending data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-Broadcast : 2e6a5061-4d6c-5895-8022-9b4f4fc7118b, sending data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-{ _id: '2e6a5061-4d6c-5895-8022-9b4f4fc7118b',
- data: 'NativeWidth',
- type: 2 }
-{ _id: 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- data: 'NativeHeight',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-Broadcast : 5c207bd2-0390-5c35-8972-06d185f387fb, sending data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-{ _id: '2a238eef-0bbb-5b78-b173-37b574fec97f',
- data: 'Height',
- type: 2 }
-{ _id: '5c207bd2-0390-5c35-8972-06d185f387fb',
- data: 'Width',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-Broadcast : 2a238eef-0bbb-5b78-b173-37b574fec97f, sending data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-Broadcast : 3559ca27-b3fa-5407-b822-07a1c9a0664c, sending data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-{ _id: '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- data: 'ZIndex',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-Broadcast : c4bbea89-4e57-551a-98fc-af3b6dacccb1, sending data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-Broadcast : 530318f9-9b84-5b90-b926-530590cdd5c3, sending data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-{ _id: '530318f9-9b84-5b90-b926-530590cdd5c3',
- data: 'Data',
- type: 2 }
-{ _id: 'c4bbea89-4e57-551a-98fc-af3b6dacccb1',
- data: 'Annotations',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-Broadcast : 771c0a88-bd02-5e92-953f-e9042a191928, sending data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-{ _id: '32a999d2-06a3-534f-a12e-c2d710adf3e6',
- data: 'Layout',
- type: 2 }
-{ _id: '771c0a88-bd02-5e92-953f-e9042a191928',
- data: 'ViewType',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-Broadcast : 32a999d2-06a3-534f-a12e-c2d710adf3e6, sending data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-Broadcast : bf70b65d-62da-53e6-82b2-1b849418dc2e, sending data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-{ _id: 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- data: 'BackgroundColor',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-Broadcast : f2b3b5fc-7f38-5783-9218-badc8dcab185, sending data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-Broadcast : 2588a9ff-2129-5018-84c9-7743d470a4cf, sending data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-{ _id: '2588a9ff-2129-5018-84c9-7743d470a4cf',
- data: 'BackgroundLayout',
- type: 2 }
-{ _id: 'f2b3b5fc-7f38-5783-9218-badc8dcab185',
- data: 'OverlayLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-Broadcast : d0c33158-59b4-5c4a-8a27-b24570e955f0, sending data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-{ _id: 'eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b',
- data: 'LayoutFields',
- type: 2 }
-{ _id: 'd0c33158-59b4-5c4a-8a27-b24570e955f0',
- data: 'LayoutKeys',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-Broadcast : eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b, sending data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-Broadcast : 249e18fb-d914-5c26-a367-64a52fdd1daa, sending data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-{ _id: '249e18fb-d914-5c26-a367-64a52fdd1daa',
- data: 'SchemaColumns',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-Broadcast : 29e3ad9f-39a2-5fe3-9258-08977e55d7ee, sending data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-Broadcast : e51646f0-30ef-5838-8371-9a88b0bc2a30, sending data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-{ _id: 'e51646f0-30ef-5838-8371-9a88b0bc2a30',
- data: 'SchemaSplitPercentage',
- type: 2 }
-{ _id: '29e3ad9f-39a2-5fe3-9258-08977e55d7ee',
- data: 'Caption',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-Broadcast : 87bcf74b-a9de-5523-a148-39e5f7e35c5f, sending data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-{ _id: '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- data: 'ActiveWorkspace',
- type: 2 }
-{ _id: '87bcf74b-a9de-5523-a148-39e5f7e35c5f',
- data: 'ActiveFrame',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-Broadcast : 77aeae9e-9bc5-5318-b4cf-219d29204f73, sending data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-Broadcast : ebdc0250-58e7-5b19-9061-fd9a60d42e07, sending data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-{ _id: 'ebdc0250-58e7-5b19-9061-fd9a60d42e07',
- data: 'ActiveDB',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-Broadcast : 91ed6e52-c6aa-57aa-b98b-04602411c3d3, sending data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-Broadcast : db106646-3e58-5a71-8121-84753b400f96, sending data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-{ _id: 'db106646-3e58-5a71-8121-84753b400f96',
- data: 'DocumentText',
- type: 2 }
-{ _id: '91ed6e52-c6aa-57aa-b98b-04602411c3d3',
- data: 'LinkedToDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-Broadcast : 8b33881b-415d-5c37-9270-f26cc3a7935e, sending data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-{ _id: '0c28246e-1e14-5c7c-897f-916c5e8695b8',
- data: 'LinkDescription',
- type: 2 }
-{ _id: '8b33881b-415d-5c37-9270-f26cc3a7935e',
- data: 'LinkedFromDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-Broadcast : 0c28246e-1e14-5c7c-897f-916c5e8695b8, sending data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-Broadcast : ae45a701-5adf-5ca2-822a-27127becbb91, sending data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-{ _id: 'ae45a701-5adf-5ca2-822a-27127becbb91',
- data: 'LinkTag',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-Broadcast : 10fe3599-dd7d-5e3e-9a28-23c624c99140, sending data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-Broadcast : 22b8e67b-50b6-5e6e-9f3d-9810b8d07619, sending data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-{ _id: '22b8e67b-50b6-5e6e-9f3d-9810b8d07619',
- data: 'Thumbnail',
- type: 2 }
-{ _id: '10fe3599-dd7d-5e3e-9a28-23c624c99140',
- data: 'CurPage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-Broadcast : 7860dbf1-c302-50ac-9f2f-4106c641dd8a, sending data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-{ _id: '59b58624-916f-50a0-8efa-7003a805bfad',
- data: 'Ink',
- type: 2 }
-{ _id: '7860dbf1-c302-50ac-9f2f-4106c641dd8a',
- data: 'NumPages',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-Broadcast : 59b58624-916f-50a0-8efa-7003a805bfad, sending data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-Broadcast : 43606ee9-0825-51a3-98b2-06d36fdfd153, sending data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-{ _id: '43606ee9-0825-51a3-98b2-06d36fdfd153',
- data: 'Cursors',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-Broadcast : 9cca7b47-80dc-5c45-8090-15f8e9082020, sending data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-Broadcast : 7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5, sending data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-{ _id: '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- data: 'OptionalRightCollection',
- type: 2 }
-{ _id: '9cca7b47-80dc-5c45-8090-15f8e9082020',
- data: 'Archives',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-Broadcast : 1daeded7-02d2-50b9-8da8-1f1f36f7cc67, sending data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-{ _id: 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- data: 'Workspaces',
- type: 2 }
-{ _id: '1daeded7-02d2-50b9-8da8-1f1f36f7cc67',
- data: 'Updated',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-Broadcast : d5aa5533-2f9b-5ef2-bd26-787dcbccaca2, sending data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 249.138666589727, -1121.455334019518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 228.2311507768501, -1029.4622644428596 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-998.1009907235442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 213.59588970783636, -998.1009907235442 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-90.9023179953706,-158.8517443872206]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-90.9023179953706,-158.8517443872206]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-90.9023179953706,-158.8517443872206]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-90.9023179953706,-158.8517443872206]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -90.9023179953706, -158.8517443872206 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-887.2911569152967]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-887.2911569152967]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-887.2911569152967]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-887.2911569152967]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, -887.2911569152967 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.70597661557963,183.23060763587432]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.70597661557963,183.23060763587432]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.70597661557963,183.23060763587432]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.70597661557963,183.23060763587432]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 219.70597661557963, 183.23060763587432 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-170.35087808430285,-48.041910578973045]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-170.35087808430285,-48.041910578973045]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-called update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-Broadcast : f98e47b3-f8ee-4117-86fb-6948460f5cc9, sending data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -90.9023179953706, -158.8517443872206 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-170.35087808430285,-48.041910578973045]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-170.35087808430285,-48.041910578973045]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 58.88027269254724, -776.4813231070491 ] ],
- type: 14 }
-{ _id: 'f98e47b3-f8ee-4117-86fb-6948460f5cc9',
- data:
- [ [ 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- 'eec28478-5239-485f-a4ef-f1b9716fab89' ],
- [ '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- 'd9c82294-7b0b-4dd9-9cdc-b5f00bc84408' ],
- [ '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- '66c1ad11-6717-4186-b5bd-ac182f1c4d3e' ] ],
- type: 5 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.97920872997497,39.769655835109916]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.97920872997497,39.769655835109916]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.97920872997497,39.769655835109916]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.97920872997497,39.769655835109916]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -276.97920872997497, 39.769655835109916 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.748057953124885,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.748057953124885,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.748057953124885,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.748057953124885,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -47.748057953124885, -688.6697566929662 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-343.8832593311811,104.58295485502833]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-343.8832593311811,104.58295485502833]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-343.8832593311811,104.58295485502833]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-343.8832593311811,104.58295485502833]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -343.8832593311811, 104.58295485502833 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -114.652108554331, -623.8564576730478 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-406.6058067698117,148.48873806206984]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-406.6058067698117,148.48873806206984]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-406.6058067698117,148.48873806206984]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-406.6058067698117,148.48873806206984]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -406.6058067698117, 148.48873806206984 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-177.3746559929616,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-177.3746559929616,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-177.3746559929616,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-177.3746559929616,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -177.3746559929616, -579.9506744660063 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-454.6930931394286,181.94076336267278]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-454.6930931394286,181.94076336267278]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-454.6930931394286,181.94076336267278]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-454.6930931394286,181.94076336267278]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -454.6930931394286, 181.94076336267278 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -225.4619423625785, -546.4986491654033 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.05436685874395,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.05436685874395,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.05436685874395,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.05436685874395,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.05436685874395, 194.48527285039893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -256.82321608189386, -533.9541396776772 ] ],
- type: 14 }
-S sending : 52b01269-5377-480c-87c8-1155d86cc5ee, receiving Get Field with data {"_id":"52b01269-5377-480c-87c8-1155d86cc5ee","data":3,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651824,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651824,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651824,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651824,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -496.5081247651824, 194.48527285039893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -256.82321608189386, -533.9541396776772 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,194.48527285039893]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -500.6896279277578, 194.48527285039893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -267.2769739883323, -533.9541396776772 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-S sending : 8dd0dbc7-bce1-4c1f-9d57-46090545a413, receiving Get Field with data {"_id":"8dd0dbc7-bce1-4c1f-9d57-46090545a413","data":1,"type":0}
-S sending : b8c25898-ab6c-438d-a7e2-85b9c40a4fe6, receiving Get Field with data {"_id":"b8c25898-ab6c-438d-a7e2-85b9c40a4fe6","data":54.69876952997183,"type":0}
-S sending : c968815c-6ac5-43ad-9592-e31f4587bf1e, receiving Get Field with data {"_id":"c968815c-6ac5-43ad-9592-e31f4587bf1e","data":-160.75498241782444,"type":0}
-S sending : 5d676023-b2f3-48c2-924f-487aae09368e, receiving Get Field with data {"_id":"5d676023-b2f3-48c2-924f-487aae09368e","data":0.4782969000000001,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -500.6896279277578, 192.39452126911124 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -271.4584771509077, -536.0448912589649 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,188.21301810653586]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,188.21301810653586]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,188.21301810653586]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.6896279277578,188.21301810653586]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -500.6896279277578, 188.21301810653586 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -271.4584771509077, -536.0448912589649 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651824,184.03151494396047]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651824,184.03151494396047]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651824,184.03151494396047]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651824,184.03151494396047]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -496.5081247651824, 184.03151494396047 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -267.2769739883323, -544.4078975841156 ] ],
- type: 14 }
-S sending : a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2, receiving Get Field with data {"_id":"a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2","data":-1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.23587002131933,175.6685086188097]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.23587002131933,175.6685086188097]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.23587002131933,175.6685086188097]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.23587002131933,175.6685086188097]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -490.23587002131933, 175.6685086188097 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-552.7709039092664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-552.7709039092664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-552.7709039092664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-552.7709039092664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -261.00471924446924, -552.7709039092664 ] ],
- type: 14 }
-S sending : a12c0892-2b78-49e7-a734-97900b3676eb, receiving Get Field with data {"_id":"a12c0892-2b78-49e7-a734-97900b3676eb","data":-474.26138053581354,"type":0}
-S sending : 20b0822d-da85-4ad7-ab57-8d6dc217f548, receiving Get Field with data {"_id":"20b0822d-da85-4ad7-ab57-8d6dc217f548","data":-981.3749780732427,"type":0}
-S sending : 77961865-700c-47af-b4f1-df449d15ea11, receiving Get Field with data {"_id":"77961865-700c-47af-b4f1-df449d15ea11","data":1404.9850626253274,"type":0}
-S sending : f8d64559-98ea-431c-a90a-736a50d17da0, receiving Get Field with data {"_id":"f8d64559-98ea-431c-a90a-736a50d17da0","data":503.87113109033317,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-481.87286369616857,171.48700545623433]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-481.87286369616857,171.48700545623433]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-481.87286369616857,171.48700545623433]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-481.87286369616857,171.48700545623433]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -481.87286369616857, 171.48700545623433 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-556.9524070718418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-556.9524070718418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -261.00471924446924, -552.7709039092664 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-556.9524070718418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-252.64171291931848,-556.9524070718418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-477.6913605335932,169.39625387494664]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-477.6913605335932,169.39625387494664]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-477.6913605335932,169.39625387494664]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-477.6913605335932,169.39625387494664]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -477.6913605335932, 169.39625387494664 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-248.4602097567431,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -248.4602097567431, -559.0431586531295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-473.5098573710178,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-473.5098573710178,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-473.5098573710178,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-473.5098573710178,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -473.5098573710178, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -244.27870659416772, -561.1339102344172 ] ],
- type: 14 }
-S sending : 226d38d2-370c-40b2-8054-0fb44dcd99d6, receiving Get Field with data {"_id":"226d38d2-370c-40b2-8054-0fb44dcd99d6","data":1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.14685104586704,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.14685104586704,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.14685104586704,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-465.14685104586704,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -465.14685104586704, 165.21475071237126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.91570026901695,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.91570026901695,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.91570026901695,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.91570026901695,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -235.91570026901695, -563.2246618157048 ] ],
- type: 14 }
-S sending : fd9581ab-59d5-4b96-aa66-f5405e6c3b5f, receiving Get Field with data {"_id":"fd9581ab-59d5-4b96-aa66-f5405e6c3b5f","data":0,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-460.96534788329166,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-460.96534788329166,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-460.96534788329166,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-460.96534788329166,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -460.96534788329166, 165.21475071237126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.73419710644157,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.73419710644157,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -235.91570026901695, -563.2246618157048 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.73419710644157,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.73419710644157,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-S sending : 37cd2c18-bae8-4c7a-9f56-898eabf021ea, receiving Get Field with data {"_id":"37cd2c18-bae8-4c7a-9f56-898eabf021ea","data":0,"type":0}
-S sending : ba3184a2-b966-432b-b8bd-83ae68ba1c8f, receiving Get Field with data {"_id":"ba3184a2-b966-432b-b8bd-83ae68ba1c8f","data":1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.14858365170244,158.94249596850818]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.14858365170244,158.94249596850818]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.14858365170244,158.94249596850818]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.14858365170244,158.94249596850818]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -442.14858365170244, 158.94249596850818 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-569.4969165595679]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-569.4969165595679]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-569.4969165595679]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-569.4969165595679]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -212.91743287485235, -569.4969165595679 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-433.7855773265517,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-433.7855773265517,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-433.7855773265517,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-433.7855773265517,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -433.7855773265517, 156.8517443872205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-204.5544265497016,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-204.5544265497016,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-204.5544265497016,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-204.5544265497016,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -204.5544265497016, -571.5876681408556 ] ],
- type: 14 }
-S sending : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Get Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","data":0,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-431.694825745264,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-431.694825745264,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-431.694825745264,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-431.694825745264,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -431.694825745264, 156.8517443872205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-202.4636749684139,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -202.4636749684139, -571.5876681408556 ] ],
- type: 14 }
-S sending : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Get Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","data":0,"type":0}
-S sending : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Get Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","data":0,"type":0}
-S sending : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Get Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","data":52.1044190260925,"type":0}
-S sending : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Get Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","data":-133.2135590331426,"type":0}
-S sending : 4233a5b1-f703-44d8-a4f1-55a230db04e7, receiving Get Field with data {"_id":"4233a5b1-f703-44d8-a4f1-55a230db04e7","data":200,"type":0}
-S sending : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Get Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","data":299.5,"type":0}
-S sending : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Get Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","data":3,"type":0}
-S sending : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Get Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","data":279.3266125675432,"type":0}
-S sending : 8a50fbb3-768f-4f03-84b5-fc84aaa4f21c, receiving Get Field with data {"_id":"8a50fbb3-768f-4f03-84b5-fc84aaa4f21c","data":200,"type":0}
-S sending : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Get Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","data":-75.22654126010241,"type":0}
-S sending : 9d04275c-0bc8-4e43-8142-034824b2deae, receiving Get Field with data {"_id":"9d04275c-0bc8-4e43-8142-034824b2deae","data":200,"type":0}
-S sending : f2822f08-9fd6-4816-ba61-0dc0ea45a0c0, receiving Get Field with data {"_id":"f2822f08-9fd6-4816-ba61-0dc0ea45a0c0","data":200,"type":0}
-S sending : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Get Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","data":4,"type":0}
-S sending : 42373536-4991-4b59-aaf5-34559e43adef, receiving Get Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","data":-317.4881958280226,"type":0}
-S sending : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Get Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","data":-170.86231566955587,"type":0}
-S sending : 47f3540c-7ded-4c5a-a35e-67b8770c7564, receiving Get Field with data {"_id":"47f3540c-7ded-4c5a-a35e-67b8770c7564","data":200,"type":0}
-S sending : 9c48c01b-ff87-4633-ab32-620bbe191b04, receiving Get Field with data {"_id":"9c48c01b-ff87-4633-ab32-620bbe191b04","data":200,"type":0}
-S sending : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Get Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","data":5,"type":0}
-S sending : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Get Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","data":299.5,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-429.6040741639763,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-429.6040741639763,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-429.6040741639763,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-429.6040741639763,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -429.6040741639763, 156.8517443872205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -200.3729233871262, -571.5876681408556 ] ],
- type: 14 }
-S sending : 42d06ec3-2f96-4bf0-af73-568f20eb4ec5, receiving Get Field with data {"_id":"42d06ec3-2f96-4bf0-af73-568f20eb4ec5","data":300,"type":0}
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 300,
- type: 0 }
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 300,
- type: 0 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-427.5133225826886,158.94249596850818]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-427.5133225826886,158.94249596850818]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-427.5133225826886,158.94249596850818]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-427.5133225826886,158.94249596850818]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -427.5133225826886, 158.94249596850818 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-198.28217180583852,-569.4969165595679]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-198.28217180583852,-569.4969165595679]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-198.28217180583852,-569.4969165595679]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-198.28217180583852,-569.4969165595679]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -198.28217180583852, -569.4969165595679 ] ],
- type: 14 }
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 299.5,
- type: 0 }
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 299.5,
- type: 0 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-425.4225710014009,161.03324754979587]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-425.4225710014009,161.03324754979587]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-425.4225710014009,161.03324754979587]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-425.4225710014009,161.03324754979587]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -425.4225710014009, 161.03324754979587 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -196.19142022455082, -567.4061649782802 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-425.4225710014009,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-425.4225710014009,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-425.4225710014009,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-425.4225710014009,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -425.4225710014009, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -196.19142022455082, -567.4061649782802 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-423.3318194201132,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-423.3318194201132,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-423.3318194201132,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-423.3318194201132,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -423.3318194201132, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -194.10066864326313, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.24106783882553,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.24106783882553,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.24106783882553,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.24106783882553,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -421.24106783882553, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-192.00991706197544,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-192.00991706197544,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-192.00991706197544,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-192.00991706197544,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -192.00991706197544, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.15031625753784,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.15031625753784,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.15031625753784,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.15031625753784,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -419.15031625753784, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -189.91916548068775, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.05956467625015,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.05956467625015,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.05956467625015,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.05956467625015,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -417.05956467625015, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.82841389940006,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.82841389940006,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.82841389940006,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.82841389940006,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -187.82841389940006, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-412.87806151367477,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-412.87806151367477,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-412.87806151367477,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-412.87806151367477,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -412.87806151367477, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-183.64691073682468,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-183.64691073682468,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -187.82841389940006, -561.1339102344172 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-183.64691073682468,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-183.64691073682468,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-408.6965583510994,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-408.6965583510994,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-408.6965583510994,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-408.6965583510994,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -408.6965583510994, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-179.4654075742493,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-179.4654075742493,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-179.4654075742493,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-179.4654075742493,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -179.4654075742493, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-402.4243036072363,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-402.4243036072363,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-402.4243036072363,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-402.4243036072363,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -402.4243036072363, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-173.19315283038623,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-173.19315283038623,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-173.19315283038623,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-173.19315283038623,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -173.19315283038623, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.15204886337324,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.15204886337324,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.15204886337324,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.15204886337324,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -396.15204886337324, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -166.92089808652315, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-391.97054570079786,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-391.97054570079786,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-391.97054570079786,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-391.97054570079786,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -391.97054570079786, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-162.73939492394777,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-162.73939492394777,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-162.73939492394777,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-162.73939492394777,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -162.73939492394777, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-389.87979411951017,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-389.87979411951017,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-389.87979411951017,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-389.87979411951017,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -389.87979411951017, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -162.73939492394777, -561.1339102344172 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-387.7890425382225,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-387.7890425382225,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-387.7890425382225,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-387.7890425382225,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -387.7890425382225, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-158.5578917613724,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-158.5578917613724,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-158.5578917613724,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-158.5578917613724,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -158.5578917613724, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-385.6982909569348,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-385.6982909569348,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-385.6982909569348,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-385.6982909569348,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -385.6982909569348, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -156.4671401800847, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.5167877943594,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.5167877943594,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.5167877943594,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.5167877943594,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -381.5167877943594, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -152.28563701750932, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.5167877943594,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.5167877943594,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.5167877943594,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.5167877943594,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -381.5167877943594, 165.21475071237126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -152.28563701750932, -563.2246618157048 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-379.4260362130717,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-379.4260362130717,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-379.4260362130717,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-379.4260362130717,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -379.4260362130717, 165.21475071237126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -152.28563701750932, -563.2246618157048 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-377.335284631784,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-377.335284631784,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-377.335284631784,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-377.335284631784,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -377.335284631784, 165.21475071237126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-148.10413385493393,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-148.10413385493393,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-148.10413385493393,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-148.10413385493393,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -148.10413385493393, -563.2246618157048 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-373.15378146920875,163.12399913108356]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-373.15378146920875,163.12399913108356]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-373.15378146920875,163.12399913108356]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-373.15378146920875,163.12399913108356]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -373.15378146920875, 163.12399913108356 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-143.92263069235867,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-143.92263069235867,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-143.92263069235867,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-143.92263069235867,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -143.92263069235867, -565.3154133969925 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.06302988792106,161.03324754979587]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.06302988792106,161.03324754979587]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.06302988792106,161.03324754979587]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.06302988792106,161.03324754979587]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -371.06302988792106, 161.03324754979587 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-141.83187911107098,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-141.83187911107098,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-141.83187911107098,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-141.83187911107098,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -141.83187911107098, -567.4061649782802 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-366.8815267253457,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-366.8815267253457,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-366.8815267253457,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-366.8815267253457,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -366.8815267253457, 156.8517443872205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-137.6503759484956,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-137.6503759484956,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-137.6503759484956,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-137.6503759484956,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -137.6503759484956, -571.5876681408556 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-362.7000235627703,152.6702412246451]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-362.7000235627703,152.6702412246451]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-362.7000235627703,152.6702412246451]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-362.7000235627703,152.6702412246451]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -362.7000235627703, 152.6702412246451 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.4688727859202,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.4688727859202,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.4688727859202,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-133.4688727859202,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -133.4688727859202, -575.769171303431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-358.5185204001949,144.30723489949446]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-358.5185204001949,144.30723489949446]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-358.5185204001949,144.30723489949446]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-358.5185204001949,144.30723489949446]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -358.5185204001949, 144.30723489949446 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -129.28736962334483, -584.1321776285816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-358.5185204001949,140.12573173691908]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-358.5185204001949,140.12573173691908]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-358.5185204001949,140.12573173691908]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-358.5185204001949,140.12573173691908]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -358.5185204001949, 140.12573173691908 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -129.28736962334483, -588.313680791157 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.15551407504415,127.58122224919293]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.15551407504415,127.58122224919293]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.15551407504415,127.58122224919293]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.15551407504415,127.58122224919293]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -350.15551407504415, 127.58122224919293 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.92436329819407,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.92436329819407,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.92436329819407,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.92436329819407,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -120.92436329819407, -600.8581902788832 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-343.8832593311811,117.12746434275448]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-343.8832593311811,117.12746434275448]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-343.8832593311811,117.12746434275448]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-343.8832593311811,117.12746434275448]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -343.8832593311811, 117.12746434275448 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-611.3119481853216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-611.3119481853216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-611.3119481853216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-611.3119481853216]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -114.652108554331, -611.3119481853216 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-337.611004587318,104.58295485502833]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-337.611004587318,104.58295485502833]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-337.611004587318,104.58295485502833]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-337.611004587318,104.58295485502833]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -337.611004587318, 104.58295485502833 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -114.652108554331, -611.3119481853216 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-333.4295014247426,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-333.4295014247426,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-333.4295014247426,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-333.4295014247426,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -333.4295014247426, 89.9476937860145 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.19835064789254,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.19835064789254,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.19835064789254,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.19835064789254,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -104.19835064789254, -638.4917187420616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.06649509959186,75.31243271700066]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.06649509959186,75.31243271700066]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.06649509959186,75.31243271700066]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.06649509959186,75.31243271700066]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -325.06649509959186, 75.31243271700066 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-95.83534432274178,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-95.83534432274178,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-95.83534432274178,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-95.83534432274178,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -95.83534432274178, -653.1269798110754 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-314.6127371931534,60.677171647986825]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-314.6127371931534,60.677171647986825]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-314.6127371931534,60.677171647986825]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-314.6127371931534,60.677171647986825]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -314.6127371931534, 60.677171647986825 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -85.38158641630332, -667.7622408800893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-308.34048244929033,46.04191057897299]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-308.34048244929033,46.04191057897299]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-308.34048244929033,46.04191057897299]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-308.34048244929033,46.04191057897299]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -308.34048244929033, 46.04191057897299 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -79.10933167244025, -682.3975019491031 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-297.8867245428519,33.49740109124684]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-297.8867245428519,33.49740109124684]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-297.8867245428519,33.49740109124684]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-297.8867245428519,33.49740109124684]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -297.8867245428519, 33.49740109124684 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.6555737660018,-694.9420114368293]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.6555737660018,-694.9420114368293]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.6555737660018,-694.9420114368293]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.6555737660018,-694.9420114368293]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -68.6555737660018, -694.9420114368293 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.946716415482115,283.58668353768337]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.946716415482115,283.58668353768337]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.946716415482115,283.58668353768337]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.946716415482115,283.58668353768337]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.946716415482115, 283.58668353768337 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.5237182177011,18.862140022233007]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.5237182177011,18.862140022233007]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.5237182177011,18.862140022233007]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.5237182177011,18.862140022233007]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -289.5237182177011, 18.862140022233007 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -60.29256744085103, -709.5772725058431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.76348064707122,267.90604667802575]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.76348064707122,267.90604667802575]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.76348064707122,267.90604667802575]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.76348064707122,267.90604667802575]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 59.76348064707122, 267.90604667802575 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.97920872997497,8.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.97920872997497,8.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.97920872997497,8.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.97920872997497,8.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -276.97920872997497, 8.408382115794609 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.748057953124885,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.748057953124885,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.748057953124885,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-47.748057953124885,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -47.748057953124885, -720.0310304122816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.30799013479736,255.3615371902996]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.30799013479736,255.3615371902996]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.30799013479736,255.3615371902996]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.30799013479736,255.3615371902996]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 72.30799013479736, 255.3615371902996 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-268.6162024048242,0.04537579064384545]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-268.6162024048242,0.04537579064384545]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-268.6162024048242,0.04537579064384545]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-268.6162024048242,0.04537579064384545]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -268.6162024048242, 0.04537579064384545 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-39.38505162797412,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-39.38505162797412,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -47.748057953124885, -720.0310304122816 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-39.38505162797412,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-39.38505162797412,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.71637225059203,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.71637225059203,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.71637225059203,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.71637225059203,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 81.71637225059203, 252.225409818368 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-262.34394766096113,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-262.34394766096113,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-262.34394766096113,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-262.34394766096113,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -262.34394766096113, -2.0453757906438454 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.11279688411105,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.11279688411105,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.11279688411105,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-33.11279688411105,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -33.11279688411105, -730.4847883187199 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.85249962252351,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.85249962252351,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.85249962252351,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.85249962252351,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 84.85249962252351, 252.225409818368 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-260.25319607967344,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-260.25319607967344,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-260.25319607967344,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-260.25319607967344,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -260.25319607967344, -2.0453757906438454 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -31.022045302823358, -730.4847883187199 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.26088173831818,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.26088173831818,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.26088173831818,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.26088173831818,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 94.26088173831818, 252.225409818368 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-253.98094133581037,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-253.98094133581037,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-253.98094133581037,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-253.98094133581037,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -253.98094133581037, -2.0453757906438454 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -31.022045302823358, -730.4847883187199 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-24.749790558960285,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.39700911024966,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.39700911024966,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.39700911024966,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.39700911024966,252.225409818368]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 97.39700911024966, 252.225409818368 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-251.89018975452268,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-251.89018975452268,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-251.89018975452268,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-251.89018975452268,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -251.89018975452268, -2.0453757906438454 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-22.659038977672594,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -22.659038977672594, -730.4847883187199 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.66926385411284,245.95315507450493]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.66926385411284,245.95315507450493]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.66926385411284,245.95315507450493]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.66926385411284,245.95315507450493]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 103.66926385411284, 245.95315507450493 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-247.7086865919473,-6.226878953219227]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-247.7086865919473,-6.226878953219227]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-247.7086865919473,-6.226878953219227]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-247.7086865919473,-6.226878953219227]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -247.7086865919473, -6.226878953219227 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.477535815097212,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.477535815097212,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.477535815097212,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-18.477535815097212,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -18.477535815097212, -734.6662914812953 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.9415185979758,245.95315507450493]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.9415185979758,245.95315507450493]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.9415185979758,245.95315507450493]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.9415185979758,245.95315507450493]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 109.9415185979758, 245.95315507450493 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937192,-6.226878953219227]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937192,-6.226878953219227]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937192,-6.226878953219227]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937192,-6.226878953219227]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -243.52718342937192, -6.226878953219227 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.29603265252183,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.29603265252183,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.29603265252183,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-14.29603265252183,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -14.29603265252183, -734.6662914812953 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.07764596990728,242.81702770257345]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.07764596990728,242.81702770257345]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.07764596990728,242.81702770257345]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.07764596990728,242.81702770257345]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.07764596990728, 242.81702770257345 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-241.43643184808423,-8.317630534506918]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-241.43643184808423,-8.317630534506918]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-241.43643184808423,-8.317630534506918]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-241.43643184808423,-8.317630534506918]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -241.43643184808423, -8.317630534506918 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -14.29603265252183, -734.6662914812953 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.34990071377047,239.68090033064198]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.34990071377047,239.68090033064198]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.34990071377047,239.68090033064198]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.34990071377047,239.68090033064198]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.34990071377047, 239.68090033064198 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-237.25492868550884,-10.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-237.25492868550884,-10.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-237.25492868550884,-10.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-237.25492868550884,-10.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -237.25492868550884, -10.408382115794609 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-8.023777908658758,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-8.023777908658758,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-8.023777908658758,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-8.023777908658758,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -8.023777908658758, -738.8477946438707 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.48602808570195,236.54477295871038]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.48602808570195,236.54477295871038]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.48602808570195,236.54477295871038]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.48602808570195,236.54477295871038]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 122.48602808570195, 236.54477295871038 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.16417710422115,-12.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.16417710422115,-12.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.933026327371067,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.933026327371067,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.933026327371067,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.933026327371067,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.62215545763343,227.13639084291583]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.62215545763343,227.13639084291583]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.07342552293346,-18.771388440945373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.07342552293346,-18.771388440945373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-3.842274746083376,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-3.842274746083376,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -237.25492868550884, -10.408382115794609 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.16417710422115,-12.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-235.16417710422115,-12.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -5.933026327371067, -740.9385462251585 ] ],
- type: 14 }
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 122.48602808570195, 236.54477295871038 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.62215545763343,227.13639084291583]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.62215545763343,227.13639084291583]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.07342552293346,-18.771388440945373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.07342552293346,-18.771388440945373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-3.842274746083376,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-3.842274746083376,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -233.07342552293346, -18.771388440945373 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -3.842274746083376, -747.2108009690214 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[131.8944102014966,220.86413609905276]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[131.8944102014966,220.86413609905276]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[131.8944102014966,220.86413609905276]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[131.8944102014966,220.86413609905276]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 131.8944102014966, 220.86413609905276 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-228.89192236035808,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-228.89192236035808,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-228.89192236035808,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-228.89192236035808,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -228.89192236035808, -22.952891603520754 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.33922841649200564,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.33922841649200564,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.33922841649200564,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.33922841649200564,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 0.33922841649200564, -751.3923041315968 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.0305375734281,211.4557539832581]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.0305375734281,211.4557539832581]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.0305375734281,211.4557539832581]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.0305375734281,211.4557539832581]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 135.0305375734281, 211.4557539832581 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-226.8011707790704,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-226.8011707790704,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-226.8011707790704,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-226.8011707790704,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -226.8011707790704, -29.225146347383827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.4299799977796965,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.4299799977796965,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.4299799977796965,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.4299799977796965,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 2.4299799977796965, -757.66455887546 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.16666494535957,208.3196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.16666494535957,208.3196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.16666494535957,208.3196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.16666494535957,208.3196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.16666494535957, 208.3196266113266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977827,-31.315897928671518]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977827,-31.315897928671518]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977827,-31.315897928671518]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977827,-31.315897928671518]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -224.7104191977827, -31.315897928671518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 2.4299799977796965, -757.66455887546 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,202.04737186746354]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,202.04737186746354]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,202.04737186746354]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,202.04737186746354]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 141.30279231729128, 202.04737186746354 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-35.4974010912469]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-35.4974010912469]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-35.4974010912469]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-35.4974010912469]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -222.619667616495, -35.4974010912469 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 6.611483160355078, -763.936813619323 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,205.18349923939502]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,205.18349923939502]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,205.18349923939502]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,205.18349923939502]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 141.30279231729128, 205.18349923939502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-33.40664950995921]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-33.40664950995921]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-33.40664950995921]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-33.40664950995921]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -222.619667616495, -33.40664950995921 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 6.611483160355078, -763.936813619323 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,208.3196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,208.3196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,208.3196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,208.3196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 141.30279231729128, 208.3196266113266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-31.315897928671518]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-31.315897928671518]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-31.315897928671518]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-31.315897928671518]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -222.619667616495, -31.315897928671518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 6.611483160355078, -759.7553104567476 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,214.59188135518968]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,214.59188135518968]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,214.59188135518968]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.30279231729128,214.59188135518968]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 141.30279231729128, 214.59188135518968 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.619667616495,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -222.619667616495, -27.134394766096136 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 6.611483160355078, -759.7553104567476 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-Broadcast : 935e09ed-1501-4c7a-9d62-c58d02484fa1, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-{ _id: '935e09ed-1501-4c7a-9d62-c58d02484fa1',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-63.16802607572015}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-63.16802607572015}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-63.16802607572015}
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: -317.4881958280226,
- type: 0 }
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-286.7115148803389}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-286.7115148803389}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-286.7115148803389}
-Incoming : d5d8a4db-3f32-4543-b3fc-6ae6712f594e, receiving Set Field with data {"_id":"d5d8a4db-3f32-4543-b3fc-6ae6712f594e","type":0,"data":1}
-calling update on data {"_id":"d5d8a4db-3f32-4543-b3fc-6ae6712f594e","type":0,"data":1}
-called update on data {"_id":"d5d8a4db-3f32-4543-b3fc-6ae6712f594e","type":0,"data":1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"],["43606ee9-0825-51a3-98b2-06d36fdfd153","fc42ca0d-4ad0-4177-99ce-6985311ff84d"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","d5d8a4db-3f32-4543-b3fc-6ae6712f594e"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"],["43606ee9-0825-51a3-98b2-06d36fdfd153","fc42ca0d-4ad0-4177-99ce-6985311ff84d"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","d5d8a4db-3f32-4543-b3fc-6ae6712f594e"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Incoming : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Set Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":2}
-calling update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":2}
-called update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":2}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.3027923172915,217.72800872712128]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.3027923172915,217.72800872712128]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.70050213580737,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.70050213580737,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-286.7115148803389}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-286.7115148803389}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-63.16802607572015}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-63.16802607572015}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"d5d8a4db-3f32-4543-b3fc-6ae6712f594e"}],"ok":1}
-Wrote {"_id":"d5d8a4db-3f32-4543-b3fc-6ae6712f594e","type":0,"data":1}
-Broadcast : d5d8a4db-3f32-4543-b3fc-6ae6712f594e, sending data {"_id":"d5d8a4db-3f32-4543-b3fc-6ae6712f594e","type":0,"data":1}
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: -286.7115148803389,
- type: 0 }
-{ _id: 'd5d8a4db-3f32-4543-b3fc-6ae6712f594e', data: 1, type: 0 }
-{ _id: 'e3b590f8-23f0-4feb-831d-cbc9a516828a', data: 5, type: 0 }
-{ _id: 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '4b6adcc6-2586-48e6-bb9a-64849ce852db' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'a12c0892-2b78-49e7-a734-97900b3676eb' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '20b0822d-da85-4ad7-ab57-8d6dc217f548' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '77961865-700c-47af-b4f1-df449d15ea11' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f8d64559-98ea-431c-a90a-736a50d17da0' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- 'fd9581ab-59d5-4b96-aa66-f5405e6c3b5f' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- '37cd2c18-bae8-4c7a-9f56-898eabf021ea' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- 'a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- 'fc42ca0d-4ad0-4177-99ce-6985311ff84d' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"],["43606ee9-0825-51a3-98b2-06d36fdfd153","fc42ca0d-4ad0-4177-99ce-6985311ff84d"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","d5d8a4db-3f32-4543-b3fc-6ae6712f594e"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-Broadcast : edc14f86-fe3f-427a-bbc4-8d0e3ff030dc, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","4b6adcc6-2586-48e6-bb9a-64849ce852db"],["7b71638c-05b8-5573-9aa5-c737c9406a86","a12c0892-2b78-49e7-a734-97900b3676eb"],["13a3cc01-c286-57e1-8746-baa3ced34e76","20b0822d-da85-4ad7-ab57-8d6dc217f548"],["5c207bd2-0390-5c35-8972-06d185f387fb","77961865-700c-47af-b4f1-df449d15ea11"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f8d64559-98ea-431c-a90a-736a50d17da0"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","fd9581ab-59d5-4b96-aa66-f5405e6c3b5f"],["048d25ac-b841-5728-a599-e3a432137881","37cd2c18-bae8-4c7a-9f56-898eabf021ea"],["911954a3-bebc-5b20-81f3-3091a2e11907","a7c44bf9-c5e0-45d2-aa8c-e972d2f903b2"],["43606ee9-0825-51a3-98b2-06d36fdfd153","fc42ca0d-4ad0-4177-99ce-6985311ff84d"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","d5d8a4db-3f32-4543-b3fc-6ae6712f594e"]],"_id":"edc14f86-fe3f-427a-bbc4-8d0e3ff030dc"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":2}
-Broadcast : e3b590f8-23f0-4feb-831d-cbc9a516828a, sending data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":2}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.3027923172915,217.72800872712128]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.3027923172915,217.72800872712128]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.70050213580737,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[31.70050213580737,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 141.3027923172915, 217.72800872712128 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 31.70050213580737, -140.89284239559152 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.43891968922298,217.72800872712128]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.43891968922298,217.72800872712128]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.43891968922298,217.72800872712128]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.43891968922298,217.72800872712128]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 144.43891968922298, 217.72800872712128 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,-140.89284239559152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 33.791253717094946, -140.89284239559152 ] ],
- type: 14 }
-S sending : d5d8a4db-3f32-4543-b3fc-6ae6712f594e, receiving Get Field with data {"_id":"d5d8a4db-3f32-4543-b3fc-6ae6712f594e","data":1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,211.45575398325832]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,211.45575398325832]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,211.45575398325832]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,211.45575398325832]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 147.57504706115446, 211.45575398325832 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 35.88200529838264, -145.0743455581669 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,205.18349923939513]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,205.18349923939513]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,205.18349923939513]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,205.18349923939513]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 147.57504706115446, 205.18349923939513 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 35.88200529838264, -149.25584872074228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,192.638989751669]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,192.638989751669]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,192.638989751669]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,192.638989751669]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 147.57504706115446, 192.638989751669 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 35.88200529838264, -157.61885504589304 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,164.41384340428522]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,164.41384340428522]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,164.41384340428522]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.57504706115446,164.41384340428522]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 147.57504706115446, 164.41384340428522 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-176.43561927748215]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-176.43561927748215]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-176.43561927748215]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[35.88200529838264,-176.43561927748215]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 35.88200529838264, -176.43561927748215 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.80019340853823,82.87453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.80019340853823,82.87453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.80019340853823,82.87453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.80019340853823,82.87453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 175.80019340853823, 82.87453173406539 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.698769529971855,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.698769529971855,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.698769529971855,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.698769529971855,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 54.698769529971855, -230.7951603909621 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[222.84210398751134,4.471347435777034]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[222.84210398751134,4.471347435777034]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[222.84210398751134,4.471347435777034]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[222.84210398751134,4.471347435777034]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 222.84210398751134, 4.471347435777034 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[86.06004324928733,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[86.06004324928733,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[86.06004324928733,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[86.06004324928733,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 86.06004324928733, -283.0639499231544 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-341.6049941992097]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-341.6049941992097]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-341.6049941992097]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-341.6049941992097]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 129.96582645632873, -341.6049941992097 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.05484543178102,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.05484543178102,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.05484543178102,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.05484543178102,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.05484543178102, -398.0552868939774 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.59935491950716,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.59935491950716,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.59935491950716,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.59935491950716,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 167.59935491950716, -441.9610701010188 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,248.8448139638789]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -49.08728636961678, 248.8448139638789 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 180.1438644072333, -479.5945985641972 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,215.39278866327584]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,215.39278866327584]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,215.39278866327584]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,215.39278866327584]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -42.81503162575382, 215.39278866327584 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 186.41611915109627, -513.0466238648003 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -42.81503162575382, 192.39452126911124 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 186.41611915109627, -536.0448912589649 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,184.03151494396047]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,184.03151494396047]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,184.03151494396047]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,184.03151494396047]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -42.81503162575382, 184.03151494396047 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 186.41611915109627, -544.4078975841156 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,179.8500117813851]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,179.8500117813851]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,179.8500117813851]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,179.8500117813851]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -42.81503162575382, 179.8500117813851 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-548.589400746691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 186.41611915109627, -548.589400746691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,177.7592602000974]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,177.7592602000974]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,177.7592602000974]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,177.7592602000974]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -42.81503162575382, 177.7592602000974 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 186.41611915109627, -550.6801523279787 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,173.57775703752202]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,173.57775703752202]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,173.57775703752202]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,173.57775703752202]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -42.81503162575382, 173.57775703752202 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 186.41611915109627, -554.8616554905541 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -44.905783207041395, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 184.3253675698087, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,167.30550229365895]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -46.9965347883292, 167.30550229365895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-561.1339102344172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 182.2346159885209, -561.1339102344172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,165.21475071237126]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -46.9965347883292, 165.21475071237126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 182.2346159885209, -561.1339102344172 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,156.8517443872205]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -46.9965347883292, 156.8517443872205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 182.2346159885209, -571.5876681408556 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,148.48873806206984]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,148.48873806206984]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,148.48873806206984]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,148.48873806206984]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -38.633528463178436, 148.48873806206984 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 190.59762231367165, -579.9506744660063 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.08901897545229,125.49047066790524]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.08901897545229,125.49047066790524]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.08901897545229,125.49047066790524]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.08901897545229,125.49047066790524]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -26.08901897545229, 125.49047066790524 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 203.1421318013978, -602.9489418601709 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[7.363006325150764,100.40145169245295]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[7.363006325150764,100.40145169245295]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[7.363006325150764,100.40145169245295]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[7.363006325150764,100.40145169245295]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 7.363006325150764, 100.40145169245295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-628.0379608356232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-628.0379608356232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-628.0379608356232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-628.0379608356232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 236.59415710200085, -628.0379608356232 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[34.54277688189086,75.31243271700066]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[34.54277688189086,75.31243271700066]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[34.54277688189086,75.31243271700066]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[34.54277688189086,75.31243271700066]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 34.54277688189086, 75.31243271700066 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 236.59415710200085, -628.0379608356232 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.29106524687586,261.6109496743104]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.29106524687586,261.6109496743104]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.29106524687586,261.6109496743104]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.29106524687586,261.6109496743104]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 10.29106524687586, 261.6109496743104 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.63179585734315,41.86040741639761]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.63179585734315,41.86040741639761]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.63179585734315,41.86040741639761]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.63179585734315,41.86040741639761]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 59.63179585734315, 41.86040741639761 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 288.86294663419324, -686.5790051116785 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.10782947846519,242.7941854427212]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.10782947846519,242.7941854427212]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.10782947846519,242.7941854427212]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.10782947846519,242.7941854427212]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 29.10782947846519, 242.7941854427212 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17630534506907,29.31589792867146]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17630534506907,29.31589792867146]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17630534506907,29.31589792867146]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17630534506907,29.31589792867146]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 72.17630534506907, 29.31589792867146 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-699.1235145994046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-699.1235145994046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-699.1235145994046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-699.1235145994046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 301.40745612191915, -699.1235145994046 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[47.924593710054296,227.11354858306345]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[47.924593710054296,227.11354858306345]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[47.924593710054296,227.11354858306345]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[47.924593710054296,227.11354858306345]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 47.924593710054296, 227.11354858306345 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.72081483279521,18.862140022233007]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.72081483279521,18.862140022233007]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.72081483279521,18.862140022233007]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.72081483279521,18.862140022233007]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 84.72081483279521, 18.862140022233007 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 313.9519656096453, -709.5772725058431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.60523056971192,217.7051664672689]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.60523056971192,217.7051664672689]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.60523056971192,217.7051664672689]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.60523056971192,217.7051664672689]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 63.60523056971192, 217.7051664672689 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[95.17457273923378,12.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[95.17457273923378,12.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[95.17457273923378,12.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[95.17457273923378,12.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 95.17457273923378, 12.58988527836999 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 324.40572351608387, -715.8495272497062 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.14974005743807,211.43291172340582]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.14974005743807,211.43291172340582]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.14974005743807,211.43291172340582]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.14974005743807,211.43291172340582]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 76.14974005743807, 211.43291172340582 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.53757906438454,8.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.53757906438454,8.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.53757906438454,8.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.53757906438454,8.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 103.53757906438454, 8.408382115794609 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 332.76872984123463, -720.0310304122816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.14974005743807,217.7051664672689]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.14974005743807,217.7051664672689]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.14974005743807,217.7051664672689]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[76.14974005743807,217.7051664672689]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 76.14974005743807, 217.7051664672689 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.53757906438454,12.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.53757906438454,12.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.53757906438454,12.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[103.53757906438454,12.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 103.53757906438454, 12.58988527836999 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 332.76872984123463, -715.8495272497062 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.87748531357511,245.93031281465267]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.87748531357511,245.93031281465267]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.87748531357511,245.93031281465267]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.87748531357511,245.93031281465267]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 69.87748531357511, 245.93031281465267 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.35607590180916,31.406649509959152]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.35607590180916,31.406649509959152]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.35607590180916,31.406649509959152]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.35607590180916,31.406649509959152]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 99.35607590180916, 31.406649509959152 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-697.032763018117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-697.032763018117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 332.76872984123463, -715.8495272497062 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-697.032763018117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-697.032763018117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-called update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-Broadcast : 935e09ed-1501-4c7a-9d62-c58d02484fa1, sending data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-{ _id: '935e09ed-1501-4c7a-9d62-c58d02484fa1',
- data: [ '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Set Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-calling update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-called update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-Broadcast : 672c99e2-ba2a-419b-9f06-903d9aeba563, sending data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{ _id: '672c99e2-ba2a-419b-9f06-903d9aeba563',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480' ],
- type: 1 }
-Incoming : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Set Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":231.157531852038}
-calling update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":231.157531852038}
-called update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":231.157531852038}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":231.157531852038}
-Broadcast : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, sending data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":231.157531852038}
-Incoming : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Set Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-380.7801078650501}
-calling update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-380.7801078650501}
-called update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-380.7801078650501}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-380.7801078650501}
-Broadcast : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, sending data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-380.7801078650501}
-{ _id: 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9',
- data: 231.157531852038,
- type: 0 }
-{ _id: '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19',
- data: -380.7801078650501,
- type: 0 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.01361268550659,245.93031281465278]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.01361268550659,245.93031281465278]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.01361268550659,245.93031281465278]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.01361268550659,245.93031281465278]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 73.01361268550659, 245.93031281465278 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 280.4999403090425, -216.1598993219484 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.28586742936977,223.9774212111322]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.28586742936977,223.9774212111322]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.28586742936977,223.9774212111322]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.28586742936977,223.9774212111322]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 79.28586742936977, 223.9774212111322 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[284.68144347161785,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[284.68144347161785,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 280.4999403090425, -216.1598993219484 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[284.68144347161785,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[284.68144347161785,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.83037691709592,186.34389274795376]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.83037691709592,186.34389274795376]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.83037691709592,186.34389274795376]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.83037691709592,186.34389274795376]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 91.83037691709592, 186.34389274795376 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 293.0444497967686, -255.8841793664144 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.37488640482206,142.43810954091214]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.37488640482206,142.43810954091214]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.37488640482206,142.43810954091214]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.37488640482206,142.43810954091214]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 104.37488640482206, 142.43810954091214 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 301.40745612191915, -285.1547015044421 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[120.05552326447969,104.8045810777337]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[120.05552326447969,104.8045810777337]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[120.05552326447969,104.8045810777337]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[120.05552326447969,104.8045810777337]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 120.05552326447969, 104.8045810777337 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 311.8612140283577, -310.24372047989436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[120.05552326447969,48.35428838296616]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[120.05552326447969,48.35428838296616]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[120.05552326447969,48.35428838296616]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[120.05552326447969,48.35428838296616]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 120.05552326447969, 48.35428838296616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 311.8612140283577, -347.8772489430728 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-383.42002582496355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-383.42002582496355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-383.42002582496355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,-383.42002582496355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 311.8612140283577, -383.42002582496355 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[305.58895928449454,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[305.58895928449454,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[305.58895928449454,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[305.58895928449454,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 305.58895928449454, -425.23505745071725 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[303.49820770320696,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[303.49820770320696,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[303.49820770320696,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[303.49820770320696,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 303.49820770320696, -458.6870827513203 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.99480218249391,219.57429182585122]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.99480218249391,219.57429182585122]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.99480218249391,219.57429182585122]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.99480218249391,219.57429182585122]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 67.99480218249391, 219.57429182585122 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.225952959344,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.225952959344,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.225952959344,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.225952959344,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 297.225952959344, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[61.72254743863073,186.12226652524816]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[61.72254743863073,186.12226652524816]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[61.72254743863073,186.12226652524816]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[61.72254743863073,186.12226652524816]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 61.72254743863073, 186.12226652524816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 290.9536982154808, -542.3171460028279 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.63179585734315,152.6702412246451]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.63179585734315,152.6702412246451]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.63179585734315,152.6702412246451]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[59.63179585734315,152.6702412246451]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 59.63179585734315, 152.6702412246451 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 288.86294663419324, -575.769171303431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[51.268789532192386,123.39971908661755]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[51.268789532192386,123.39971908661755]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[51.268789532192386,123.39971908661755]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[51.268789532192386,123.39971908661755]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 51.268789532192386, 123.39971908661755 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-605.0396934414586]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-605.0396934414586]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 288.86294663419324, -575.769171303431 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-605.0396934414586]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-605.0396934414586]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,102.49220327374064]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,102.49220327374064]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,102.49220327374064]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,102.49220327374064]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.90578320704162, 102.49220327374064 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 272.1369339838917, -625.9472092543355 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.90578320704162, 89.9476937860145 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 272.1369339838917, -638.4917187420616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,81.58468746086373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,81.58468746086373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,81.58468746086373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,81.58468746086373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 38.72428004446624, 81.58468746086373 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 267.9554308213163, -646.8547250672124 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,77.40318429828835]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,77.40318429828835]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,77.40318429828835]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,77.40318429828835]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 38.72428004446624, 77.40318429828835 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 267.9554308213163, -651.0362282297878 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,73.22168113571297]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,73.22168113571297]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,73.22168113571297]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,73.22168113571297]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 38.72428004446624, 73.22168113571297 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-655.2177313923631]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-655.2177313923631]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 267.9554308213163, -651.0362282297878 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[53.35954111347996,71.13092955442528]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[53.35954111347996,71.13092955442528]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 282.59069189033005, -657.3084829736508 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[53.35954111347996,71.13092955442528]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[53.35954111347996,71.13092955442528]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-655.2177313923631]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,-655.2177313923631]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 53.35954111347996, 71.13092955442528 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[80.53931167021983,62.767923229274516]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[80.53931167021983,62.767923229274516]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[80.53931167021983,62.767923229274516]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[80.53931167021983,62.767923229274516]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 80.53931167021983, 62.767923229274516 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 309.7704624470699, -665.6714892988016 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[107.71908222695993,58.586420066699134]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[107.71908222695993,58.586420066699134]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[107.71908222695993,58.586420066699134]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[107.71908222695993,58.586420066699134]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 107.71908222695993, 58.586420066699134 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 336.95023300381, -669.852992461377 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[170.44162966559065,43.9511589976853]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[170.44162966559065,43.9511589976853]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[170.44162966559065,43.9511589976853]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[170.44162966559065,43.9511589976853]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 170.44162966559065, 43.9511589976853 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 399.67278044244074, -684.4882535303908 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[212.25666129134447,27.22514634738377]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[212.25666129134447,27.22514634738377]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[212.25666129134447,27.22514634738377]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[212.25666129134447,27.22514634738377]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 212.25666129134447, 27.22514634738377 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 441.48781206819456, -701.2142661806923 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.89018975452268,16.771388440945316]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.89018975452268,16.771388440945316]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.89018975452268,16.771388440945316]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.89018975452268,16.771388440945316]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 249.89018975452268, 16.771388440945316 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,-711.6680240871308]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,-711.6680240871308]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,-711.6680240871308]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,-711.6680240871308]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 479.12134053137277, -711.6680240871308 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[266.6162024048242,10.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[266.6162024048242,10.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[266.6162024048242,10.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[266.6162024048242,10.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 266.6162024048242, 10.4991336970823 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-717.9402788309937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-717.9402788309937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-717.9402788309937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-717.9402788309937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 495.8473531816743, -717.9402788309937 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[302.15897928671507,2.1361273719315363]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[302.15897928671507,2.1361273719315363]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[302.15897928671507,2.1361273719315363]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[302.15897928671507,2.1361273719315363]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 302.15897928671507, 2.1361273719315363 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-726.3032851561445]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-726.3032851561445]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-726.3032851561445]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-726.3032851561445]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 531.3901300635652, -726.3032851561445 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,-2.0453757906438454]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 312.6127371931534, -2.0453757906438454 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 541.8438879700035, -730.4847883187199 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[327.24799826216736,-4.136127371931536]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[327.24799826216736,-4.136127371931536]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[327.24799826216736,-4.136127371931536]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[327.24799826216736,-4.136127371931536]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 327.24799826216736, -4.136127371931536 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 541.8438879700035, -730.4847883187199 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[333.5202530060303,-8.317630534506918]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[333.5202530060303,-8.317630534506918]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[333.5202530060303,-8.317630534506918]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[333.5202530060303,-8.317630534506918]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 333.5202530060303, -8.317630534506918 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 562.7514037828804, -736.7570430625831 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.8832593311811,-12.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.8832593311811,-12.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.8832593311811,-12.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.8832593311811,-12.4991336970823]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 341.8832593311811, -12.4991336970823 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 571.1144101080312, -740.9385462251585 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[348.15551407504427,-14.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[348.15551407504427,-14.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[348.15551407504427,-14.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[348.15551407504427,-14.58988527836999]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 348.15551407504427, -14.58988527836999 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-743.029297806446]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-743.029297806446]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-743.029297806446]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-743.029297806446]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -743.029297806446 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[358.6092719814826,-18.771388440945373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[358.6092719814826,-18.771388440945373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[358.6092719814826,-18.771388440945373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[358.6092719814826,-18.771388440945373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 358.6092719814826, -18.771388440945373 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 587.8404227583327, -747.2108009690214 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[379.5167877943595,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[379.5167877943595,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[379.5167877943595,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[379.5167877943595,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 379.5167877943595, -22.952891603520754 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[608.7479385712096,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[608.7479385712096,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[608.7479385712096,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[608.7479385712096,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 608.7479385712096, -751.3923041315968 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.8797941195103,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.8797941195103,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.8797941195103,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.8797941195103,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 387.8797941195103, -27.134394766096136 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -755.5738072941722 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[392.06129728208566,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[392.06129728208566,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[392.06129728208566,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[392.06129728208566,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 392.06129728208566, -29.225146347383827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[621.2924480589357,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 621.2924480589357, -757.66455887546 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-29.225146347383827]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 394.15204886337347, -29.225146347383827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -757.66455887546 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-27.134394766096136]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 394.15204886337347, -27.134394766096136 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -755.5738072941722 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-22.952891603520754]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 394.15204886337347, -22.952891603520754 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -755.5738072941722 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-10.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-10.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-10.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[394.15204886337347,-10.408382115794609]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 394.15204886337347, -10.408382115794609 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -738.8477946438707 ] ],
- type: 14 }
-calling update on data {"type":1,"data":[],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-called update on data {"type":1,"data":[],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":[],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-Broadcast : 935e09ed-1501-4c7a-9d62-c58d02484fa1, sending data {"type":1,"data":[],"_id":"935e09ed-1501-4c7a-9d62-c58d02484fa1"}
-{ _id: '935e09ed-1501-4c7a-9d62-c58d02484fa1',
- data: [],
- type: 1 }
-Incoming : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Set Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-calling update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-called update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-Broadcast : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, sending data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{ _id: '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["edc14f86-fe3f-427a-bbc4-8d0e3ff030dc","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'edc14f86-fe3f-427a-bbc4-8d0e3ff030dc',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Set Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":477.1964896250778}
-calling update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":477.1964896250778}
-called update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":477.1964896250778}
-Incoming : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Set Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-216.16475944633783}
-calling update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-216.16475944633783}
-called update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-216.16475944633783}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-153.43735188331766]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-153.43735188331766]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-153.43735188331766]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-153.43735188331766]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '9ffe2a20-7fcb-4460-aa91-922b69f91e24',
- data: 279.3266125675432,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":477.1964896250778}
-Broadcast : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, sending data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":477.1964896250778}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-216.16475944633783}
-Broadcast : d7d79305-cd6b-4653-a173-1284f76f5773, sending data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-216.16475944633783}
-{ _id: 'd7d79305-cd6b-4653-a173-1284f76f5773',
- data: -216.16475944633783,
- type: 0 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 594.1126775021959, -153.43735188331766 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 594.1126775021959, -155.52810346460524 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 594.1126775021959, -159.70960662718062 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 594.1126775021959, -163.891109789756 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[594.1126775021959,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 594.1126775021959, -168.07261295233138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[592.0219259209081,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 592.0219259209081, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 585.7496711770451, -182.70787402134533 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 571.1144101080312, -205.70614141550993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 558.569900620305, -224.52290564709904 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 541.8438879700035, -251.70267620383902 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 518.845620575839, -283.0639499231544 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-314.42522364246975]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-314.42522364246975]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-314.42522364246975]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[495.8473531816743,-314.42522364246975]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 495.8473531816743, -314.42522364246975 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 472.8490857875098, -354.1495036869359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 449.8508183933453, -398.0552868939774 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[431.034054161756,-437.7795669384434]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[431.034054161756,-437.7795669384434]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[431.034054161756,-437.7795669384434]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[431.034054161756,-437.7795669384434]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 431.034054161756, -437.7795669384434 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[418.48954467402984,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[418.48954467402984,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[418.48954467402984,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[418.48954467402984,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 418.48954467402984, -460.777834332608 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[414.30804151145446,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[414.30804151145446,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[414.30804151145446,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[414.30804151145446,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 414.30804151145446, -469.14084065775876 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[178.80463599074142,250.93556554516658]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[178.80463599074142,250.93556554516658]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[178.80463599074142,250.93556554516658]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[178.80463599074142,250.93556554516658]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 178.80463599074142, 250.93556554516658 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[408.0357867675915,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[408.0357867675915,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[408.0357867675915,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[408.0357867675915,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 408.0357867675915, -477.5038469829095 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[172.53238124687823,246.7540623825912]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[172.53238124687823,246.7540623825912]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[172.53238124687823,246.7540623825912]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[172.53238124687823,246.7540623825912]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 172.53238124687823, 246.7540623825912 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[401.7635320237283,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[401.7635320237283,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[401.7635320237283,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[401.7635320237283,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 401.7635320237283, -481.6853501454849 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.16937492172747,242.57255922001582]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.16937492172747,242.57255922001582]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.16937492172747,242.57255922001582]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.16937492172747,242.57255922001582]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 164.16937492172747, 242.57255922001582 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[393.40052569857755,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[393.40052569857755,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 401.7635320237283, -481.6853501454849 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[393.40052569857755,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[393.40052569857755,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.71561701528913,236.30030447615275]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.71561701528913,236.30030447615275]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.71561701528913,236.30030447615275]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.71561701528913,236.30030447615275]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 153.71561701528913, 236.30030447615275 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 382.9467677921392, -492.13910805192336 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.26185910885056,234.20955289486506]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.26185910885056,234.20955289486506]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.26185910885056,234.20955289486506]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.26185910885056,234.20955289486506]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 143.26185910885056, 234.20955289486506 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 372.49300988570064, -494.22985963321105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.53584645854903,223.7557949884266]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.53584645854903,223.7557949884266]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.53584645854903,223.7557949884266]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.53584645854903,223.7557949884266]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 126.53584645854903, 223.7557949884266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[355.7669972353991,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[355.7669972353991,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[355.7669972353991,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[355.7669972353991,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 355.7669972353991, -504.6836175396495 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.99133697082289,215.39278866327584]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.99133697082289,215.39278866327584]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.99133697082289,215.39278866327584]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.99133697082289,215.39278866327584]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.99133697082289, 215.39278866327584 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.222487747673,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.222487747673,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.222487747673,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.222487747673,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 343.222487747673, -513.0466238648003 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.9930695766584,209.12053391941276]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.9930695766584,209.12053391941276]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.9930695766584,209.12053391941276]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[90.9930695766584,209.12053391941276]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 90.9930695766584, 209.12053391941276 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[320.2242203535085,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[320.2242203535085,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 343.222487747673, -513.0466238648003 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[320.2242203535085,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[320.2242203535085,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17630534506907,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17630534506907,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17630534506907,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[72.17630534506907,192.39452126911124]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 72.17630534506907, 192.39452126911124 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 301.40745612191915, -536.0448912589649 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,163.12399913108356]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,163.12399913108356]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,163.12399913108356]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.90578320704162,163.12399913108356]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.90578320704162, 163.12399913108356 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 272.1369339838917, -565.3154133969925 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,146.39798648078215]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,146.39798648078215]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,146.39798648078215]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,146.39798648078215]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 19.90751581287691, 146.39798648078215 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 249.138666589727, -582.041426047294 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-3.090751581287577,125.49047066790524]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-3.090751581287577,125.49047066790524]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-3.090751581287577,125.49047066790524]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-3.090751581287577,125.49047066790524]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -3.090751581287577, 125.49047066790524 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[226.1403991955625,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[226.1403991955625,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[226.1403991955625,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[226.1403991955625,-602.9489418601709]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 226.1403991955625, -602.9489418601709 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-19.816764231589104,112.9459611801791]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-19.816764231589104,112.9459611801791]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-19.816764231589104,112.9459611801791]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-19.816764231589104,112.9459611801791]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -19.816764231589104, 112.9459611801791 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 226.1403991955625, -602.9489418601709 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-615.493451347897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,102.49220327374064]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,102.49220327374064]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,102.49220327374064]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,102.49220327374064]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -34.452025300603054, 102.49220327374064 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,100.40145169245295]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,100.40145169245295]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-628.0379608356232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-628.0379608356232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-628.0379608356232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-628.0379608356232]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 190.59762231367165, -628.0379608356232 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,96.21994852987757]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,96.21994852987757]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 190.59762231367165, -628.0379608356232 ] ],
- type: 14 }
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -34.452025300603054, 102.49220327374064 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,100.40145169245295]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,100.40145169245295]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,96.21994852987757]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,96.21994852987757]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -42.81503162575382, 96.21994852987757 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 186.41611915109627, -632.2194639981985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,94.12919694858988]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,94.12919694858988]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,94.12919694858988]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,94.12919694858988]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -44.905783207041395, 94.12919694858988 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 184.3253675698087, -634.3102155794862 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.26878953219216,92.03844536730219]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.26878953219216,92.03844536730219]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.26878953219216,92.03844536730219]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.26878953219216,92.03844536730219]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -53.26878953219216, 92.03844536730219 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-636.4009671607739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-636.4009671607739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 184.3253675698087, -634.3102155794862 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-636.4009671607739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-636.4009671607739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-55.35954111347996,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-55.35954111347996,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-55.35954111347996,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-55.35954111347996,89.9476937860145]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -55.35954111347996, 89.9476937860145 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 173.87160966337012, -638.4917187420616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-59.541044276055345,85.76619062343912]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-59.541044276055345,85.76619062343912]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-59.541044276055345,85.76619062343912]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-59.541044276055345,85.76619062343912]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -59.541044276055345, 85.76619062343912 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-642.673221904637]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-642.673221904637]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-642.673221904637]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-642.673221904637]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 169.69010650079474, -642.673221904637 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.8132990199183,83.67543904215142]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.8132990199183,83.67543904215142]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.8132990199183,83.67543904215142]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-65.8132990199183,83.67543904215142]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -65.8132990199183, 83.67543904215142 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 163.41785175693178, -644.7639734859247 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-67.90405060120611,81.58468746086373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-67.90405060120611,81.58468746086373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-67.90405060120611,81.58468746086373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-67.90405060120611,81.58468746086373]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -67.90405060120611, 81.58468746086373 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.32710017564398,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.32710017564398,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.32710017564398,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.32710017564398,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 161.32710017564398, -646.8547250672124 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-74.17630534506907,79.49393587957604]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-74.17630534506907,79.49393587957604]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-74.17630534506907,79.49393587957604]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-74.17630534506907,79.49393587957604]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -74.17630534506907, 79.49393587957604 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.05484543178102,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.05484543178102,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 161.32710017564398, -646.8547250672124 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.05484543178102,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.05484543178102,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-78.35780850764445,73.22168113571297]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-78.35780850764445,73.22168113571297]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-78.35780850764445,73.22168113571297]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-78.35780850764445,73.22168113571297]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -78.35780850764445, 73.22168113571297 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.87334226920564,-655.2177313923631]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.87334226920564,-655.2177313923631]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.87334226920564,-655.2177313923631]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[150.87334226920564,-655.2177313923631]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 150.87334226920564, -655.2177313923631 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-84.63006325150764,71.13092955442528]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-84.63006325150764,71.13092955442528]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-84.63006325150764,71.13092955442528]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-84.63006325150764,71.13092955442528]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -84.63006325150764, 71.13092955442528 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.60108752534245,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.60108752534245,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.60108752534245,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.60108752534245,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 144.60108752534245, -657.3084829736508 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-86.72081483279521,69.04017797313759]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-86.72081483279521,69.04017797313759]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-86.72081483279521,69.04017797313759]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-86.72081483279521,69.04017797313759]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -86.72081483279521, 69.04017797313759 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 142.51033594405487, -659.3992345549385 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-90.9023179953706,69.04017797313759]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-90.9023179953706,69.04017797313759]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-90.9023179953706,69.04017797313759]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-Broadcast : 339bd0a7-a2d6-4198-a985-03d4d5c6f76a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-90.9023179953706,69.04017797313759]],"_id":"339bd0a7-a2d6-4198-a985-03d4d5c6f76a"}
-{ _id: '339bd0a7-a2d6-4198-a985-03d4d5c6f76a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -90.9023179953706, 69.04017797313759 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, -659.3992345549385 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[238.68490868328865,68.18231573317735]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[238.68490868328865,68.18231573317735]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[238.68490868328865,68.18231573317735]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[238.68490868328865,68.18231573317735]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 238.68490868328865, 68.18231573317735 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,66.09156415188977]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,66.09156415188977]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,66.09156415188977]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,66.09156415188977]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 236.59415710200085, 66.09156415188977 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,53.547054664163625]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,53.547054664163625]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,53.547054664163625]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,53.547054664163625]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 228.2311507768501, 53.547054664163625 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,28.458035688711334]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,28.458035688711334]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,28.458035688711334]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,28.458035688711334]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 213.59588970783636, 28.458035688711334 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-11.26624435575468]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-11.26624435575468]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-11.26624435575468]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-11.26624435575468]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 196.86987705753484, -11.26624435575468 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 175.96236124465793, -59.353530725371684 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 159.2363485943564, -115.80382342013922 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 140.41958436276707, -174.34486769619457 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.9730335419365,98.55516859372301]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.9730335419365,98.55516859372301]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.9730335419365,98.55516859372301]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[294.9730335419365,98.55516859372301]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 294.9730335419365, 98.55516859372301 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-220.34140248452377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-220.34140248452377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 140.41958436276707, -174.34486769619457 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-220.34140248452377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-220.34140248452377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 159.2363485943564, -257.9749309477021 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 163.41785175693178, -264.24718569156516 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.50860333821936,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.50860333821936,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.50860333821936,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[165.50860333821936,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 165.50860333821936, -264.24718569156516 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-264.24718569156516]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.78085808208255, -264.24718569156516 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[7.15493787494438,148.71036428477532]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[7.15493787494438,148.71036428477532]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[7.15493787494438,148.71036428477532]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[7.15493787494438,148.71036428477532]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 7.15493787494438, 148.71036428477532 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 236.59415710200085, -280.9731983418667 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[229.81998128208352,82.85168947421312]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[229.81998128208352,82.85168947421312]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[229.81998128208352,82.85168947421312]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[229.81998128208352,82.85168947421312]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 229.81998128208352, 82.85168947421312 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-324.8789815489082]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-324.8789815489082]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-324.8789815489082]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[385.0375193734268,-324.8789815489082]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 385.0375193734268, -324.8789815489082 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-412.6905479629911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-412.6905479629911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-412.6905479629911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-412.6905479629911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, -412.6905479629911 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 863.8196314883077, -492.13910805192336 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1018.5352485035968,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1018.5352485035968,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1018.5352485035968,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1018.5352485035968,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1018.5352485035968, -544.4078975841156 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[615.0201933150728,-1125.6368371820934]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[615.0201933150728,-1125.6368371820934]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[615.0201933150728,-1125.6368371820934]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[615.0201933150728,-1125.6368371820934]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 615.0201933150728, -1125.6368371820934 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[541.8438879700035,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 541.8438879700035, -1079.6403023937642 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 485.39359527523595, -1019.0085065364211 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-996.0102391422565]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-996.0102391422565]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-996.0102391422565]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-996.0102391422565]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 474.9398373687976, -996.0102391422565 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 472.8490857875098, -989.7379843983935 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 470.75833420622223, -977.1934749106673 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 481.21209211266057, -952.1044559352151 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,-952.1044559352151]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 485.39359527523595, -952.1044559352151 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 506.30111108811286, -958.3767106790781 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-987.6472328171058]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-987.6472328171058]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-987.6472328171058]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-987.6472328171058]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, -987.6472328171058 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[669.3797344285525,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[669.3797344285525,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[669.3797344285525,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[669.3797344285525,-1008.5547486299827]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 669.3797344285525, -1008.5547486299827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[727.9207787046079,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 727.9207787046079, -1029.4622644428596 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-1044.0975255118733]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-1044.0975255118733]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-1044.0975255118733]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,-1044.0975255118733]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 776.0080650742249, -1044.0975255118733 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,-1052.460531837024]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,-1052.460531837024]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,-1052.460531837024]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,-1052.460531837024]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 801.0970840496772, -1052.460531837024 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 811.5508419561155, -1058.7327865808873 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,-1067.095792906038]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,-1067.095792906038]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,-1067.095792906038]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,-1067.095792906038]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 815.7323451186909, -1067.095792906038 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-1075.4587992311888]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 817.8230966999787, -1075.4587992311888 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 811.5508419561155, -1081.7310539750517 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[796.9155808871018,-1092.1848118814903]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[796.9155808871018,-1092.1848118814903]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[796.9155808871018,-1092.1848118814903]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[796.9155808871018,-1092.1848118814903]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 796.9155808871018, -1092.1848118814903 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,-1079.6403023937642]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 769.7358103303617, -1079.6403023937642 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[730.0115302858957,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[730.0115302858957,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[730.0115302858957,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[730.0115302858957,-1029.4622644428596]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 730.0115302858957, -1029.4622644428596 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[686.105747078854,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[686.105747078854,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[686.105747078854,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[686.105747078854,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 686.105747078854, -970.9212201668042 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-899.8356664030227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-899.8356664030227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-899.8356664030227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[625.4739512215111,-899.8356664030227]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 625.4739512215111, -899.8356664030227 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[543.9346395512913,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 543.9346395512913, -807.8425968263645 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[451.9415699746329,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 451.9415699746329, -692.8512598555416 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 372.49300988570064, -594.5859355350201 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.225952959344,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.225952959344,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.225952959344,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.225952959344,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 297.225952959344, -515.137375446088 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 247.04791500843942, -456.5963311700326 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-406.41829321912803]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-406.41829321912803]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-406.41829321912803]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-406.41829321912803]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 203.1421318013978, -406.41829321912803 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-375.0570194998128]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-375.0570194998128]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-375.0570194998128]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-375.0570194998128]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.78085808208255, -375.0570194998128 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, -347.8772489430728 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 94.4230495744381, -308.1529688986067 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-291.42695624830515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 81.87854008671195, -291.42695624830515 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[166.3918112927438,38.96874852702376]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[166.3918112927438,38.96874852702376]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[166.3918112927438,38.96874852702376]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[166.3918112927438,38.96874852702376]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 166.3918112927438, 38.96874852702376 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-260.0656825289898]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-260.0656825289898]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-260.0656825289898]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-260.0656825289898]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 48.42651478610878, -260.0656825289898 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.84730180501765,45.24100327088695]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.84730180501765,45.24100327088695]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.84730180501765,45.24100327088695]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.84730180501765,45.24100327088695]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 153.84730180501765, 45.24100327088695 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.06350846095802, -255.8841793664144 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.1666649453598,45.24100327088695]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.1666649453598,45.24100327088695]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.1666649453598,45.24100327088695]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.1666649453598,45.24100327088695]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.1666649453598, 45.24100327088695 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.609750554519678,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.609750554519678,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.06350846095802, -255.8841793664144 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.609750554519678,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[29.609750554519678,-255.8841793664144]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.12475436638692,23.288111667366138]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.12475436638692,23.288111667366138]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.12475436638692,23.288111667366138]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.12475436638692,23.288111667366138]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 91.12475436638692, 23.288111667366138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-1.7515231647956853,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-1.7515231647956853,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-1.7515231647956853,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-1.7515231647956853,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -1.7515231647956853, -270.51944043542824 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.47580320926181,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.47580320926181,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.47580320926181,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-41.47580320926181,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -41.47580320926181, -297.6992109921682 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-320.6974783863328]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -81.20008325372794, -320.6974783863328 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-123.01511487948176,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-123.01511487948176,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-123.01511487948176,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-123.01511487948176,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -123.01511487948176, -358.33100684951125 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-393.873783731402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -150.19488543622163, -393.873783731402 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -175.28390441167392, -456.5963311700326 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-181.556159155537,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-181.556159155537,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-181.556159155537,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-181.556159155537,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -181.556159155537, -477.5038469829095 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-192.00991706197544,-506.7743691209372]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-192.00991706197544,-506.7743691209372]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-192.00991706197544,-506.7743691209372]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-192.00991706197544,-506.7743691209372]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -192.00991706197544, -506.7743691209372 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-208.73592971227697,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-208.73592971227697,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-208.73592971227697,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-208.73592971227697,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -208.73592971227697, -519.3188786086633 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-521.409630189951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-521.409630189951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-521.409630189951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-521.409630189951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -210.82668129356466, -521.409630189951 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-210.82668129356466,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -210.82668129356466, -523.5003817712387 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-525.5911333525264]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-525.5911333525264]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-525.5911333525264]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-525.5911333525264]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -212.91743287485235, -525.5911333525264 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -212.91743287485235, -527.6818849338141 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-217.09893603742773,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-217.09893603742773,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-217.09893603742773,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-217.09893603742773,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -217.09893603742773, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -219.18968761871542, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-523.5003817712387]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -219.18968761871542, -523.5003817712387 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.91743287485235,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -212.91743287485235, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -194.10066864326313, -485.8668533080603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -156.4671401800847, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -108.37985381046792, -421.05355428814187 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 4.520731579067387, -362.51251001208664 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 169.69010650079474, -283.0639499231544 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[151.41679698379494,255.33869493044745]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[151.41679698379494,255.33869493044745]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[151.41679698379494,255.33869493044745]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[151.41679698379494,255.33869493044745]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 151.41679698379494, 255.33869493044745 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 332.76872984123463, -209.88764457808531 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[456.1230731372083,-142.9835939768791]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[456.1230731372083,-142.9835939768791]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[456.1230731372083,-142.9835939768791]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[456.1230731372083,-142.9835939768791]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 456.1230731372083, -142.9835939768791 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 546.0253911325789, -90.71480444468693 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-36.35526333120697]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-36.35526333120697]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-36.35526333120697]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[604.5664354086342,-36.35526333120697]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 604.5664354086342, -36.35526333120697 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-21.720002262193248]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-21.720002262193248]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-21.720002262193248]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-21.720002262193248]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -21.720002262193248 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-4.99398961189172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-4.99398961189172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-4.99398961189172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-4.99398961189172]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 644.2907154531005, -4.99398961189172 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 671.4704860098403, 13.822774619697611 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[711.1947660543063,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[711.1947660543063,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[711.1947660543063,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[711.1947660543063,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 711.1947660543063, 38.9117935951499 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,57.72855782673901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,57.72855782673901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,57.72855782673901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,57.72855782673901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 738.3745366110464, 57.72855782673901 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,72.36381889575273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,72.36381889575273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,72.36381889575273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,72.36381889575273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 757.1913008426355, 72.36381889575273 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 769.7358103303617, 84.90832838347887 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[782.2803198180878,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[782.2803198180878,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[782.2803198180878,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[782.2803198180878,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 782.2803198180878, 91.18058312734206 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 786.4618229806632, 99.54358945249282 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,101.6343410337804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,101.6343410337804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,101.6343410337804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,101.6343410337804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 792.7340777245264, 101.6343410337804 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[794.824829305814,103.7250926150682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[794.824829305814,103.7250926150682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[794.824829305814,103.7250926150682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[794.824829305814,103.7250926150682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 794.824829305814, 103.7250926150682 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[801.0970840496772,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 801.0970840496772, 112.08809894021897 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 803.1878356309647, 116.26960210279435 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 811.5508419561155, 122.54185684665731 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,126.72336000923269]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,126.72336000923269]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,126.72336000923269]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,126.72336000923269]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 813.6415935374033, 126.72336000923269 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 817.8230966999787, 130.90486317180807 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 819.9138482812663, 132.99561475309588 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 819.9138482812663, 132.99561475309588 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 822.0045998625541, 132.99561475309588 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 824.0953514438417, 132.99561475309588 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 824.0953514438417, 130.90486317180807 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 826.1861030251295, 128.8141115905205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,126.72336000923269]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,126.72336000923269]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,126.72336000923269]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,126.72336000923269]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 828.276854606417, 126.72336000923269 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[836.6398609315678,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[836.6398609315678,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[836.6398609315678,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[836.6398609315678,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 836.6398609315678, 122.54185684665731 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[872.1826378134584,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 872.1826378134584, 116.26960210279435 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[966.2664589714046,103.7250926150682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[966.2664589714046,103.7250926150682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[966.2664589714046,103.7250926150682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[966.2664589714046,103.7250926150682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 966.2664589714046, 103.7250926150682 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1045.7150190603365,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1045.7150190603365,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1045.7150190603365,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1045.7150190603365,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1045.7150190603365, 89.08983154605426 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1022.7167516661722, -536.0448912589649 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[922.360675764363,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[922.360675764363,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[922.360675764363,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[922.360675764363,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 922.360675764363, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[738.3745366110464,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 738.3745366110464, -477.5038469829095 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[577.3866648518944,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 577.3866648518944, -462.8685859138957 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 420.58029625531765, -446.14257326359416 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[345.3132393289608,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[345.3132393289608,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[345.3132393289608,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[345.3132393289608,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 345.3132393289608, -446.14257326359416 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 313.9519656096453, -450.32407642616954 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 301.40745612191915, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 295.1352013780562, -458.6870827513203 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 295.1352013780562, -462.8685859138957 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[293.0444497967686,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 293.0444497967686, -469.14084065775876 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[288.86294663419324,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 288.86294663419324, -475.41309540162183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.8646792400285,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.8646792400285,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.8646792400285,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.8646792400285,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 265.8646792400285, -487.957604889348 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 244.9571634271516, -494.22985963321105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.2328833826856,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.2328833826856,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.2328833826856,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.2328833826856,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 205.2328833826856, -510.9558722835126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-529.7726365151018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-529.7726365151018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-529.7726365151018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-529.7726365151018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,-538.1356428402526]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,-538.1356428402526]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 148.78259068791783, -529.7726365151018 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.78778850542415,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.78778850542415,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 27.518998973231987, -567.4061649782802 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.78778850542415,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.78778850542415,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,-538.1356428402526]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,-538.1356428402526]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 117.42131696860258, -538.1356428402526 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 117.42131696860258, -538.1356428402526 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-89.5630895788787,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-89.5630895788787,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-89.5630895788787,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-89.5630895788787,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -89.5630895788787, -586.2229292098693 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -89.5630895788787, -586.2229292098693 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.92436329819407,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.92436329819407,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.92436329819407,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.92436329819407,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -120.92436329819407, -586.2229292098693 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-150.19488543622163,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -150.19488543622163, -586.2229292098693 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-154.376388598797,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-154.376388598797,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-154.376388598797,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-154.376388598797,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -154.376388598797, -584.1321776285816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-156.4671401800847,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -156.4671401800847, -584.1321776285816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-158.5578917613724,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-158.5578917613724,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-158.5578917613724,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-158.5578917613724,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -158.5578917613724, -584.1321776285816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -160.64864334266008, -584.1321776285816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-164.83014650523546,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-164.83014650523546,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-164.83014650523546,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-164.83014650523546,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -164.83014650523546, -584.1321776285816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.92089808652315,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -166.92089808652315, -584.1321776285816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-169.01164966781084,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-169.01164966781084,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-169.01164966781084,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-169.01164966781084,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -169.01164966781084, -584.1321776285816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-171.10240124909853,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-171.10240124909853,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-171.10240124909853,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-171.10240124909853,-584.1321776285816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -171.10240124909853, -584.1321776285816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -175.28390441167392, -582.041426047294 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-177.3746559929616,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-177.3746559929616,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-177.3746559929616,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-177.3746559929616,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -177.3746559929616, -582.041426047294 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-183.64691073682468,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-183.64691073682468,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-183.64691073682468,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-183.64691073682468,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -183.64691073682468, -579.9506744660063 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.82841389940006,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.82841389940006,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.82841389940006,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.82841389940006,-579.9506744660063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -187.82841389940006, -579.9506744660063 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-577.8599228847187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-577.8599228847187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-577.8599228847187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-577.8599228847187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -189.91916548068775, -577.8599228847187 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -194.10066864326313, -575.769171303431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -196.19142022455082, -573.6784197221433 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -196.19142022455082, -571.5876681408556 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -196.19142022455082, -565.3154133969925 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -196.19142022455082, -554.8616554905541 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-519.3188786086633]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -175.28390441167392, -519.3188786086633 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-467.05008907647107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-467.05008907647107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-467.05008907647107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-108.37985381046792,-467.05008907647107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -108.37985381046792, -467.05008907647107 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 67.243279017698, -343.6957457804974 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[154.55292435572665,274.15545916203655]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[154.55292435572665,274.15545916203655]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[154.55292435572665,274.15545916203655]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[154.55292435572665,274.15545916203655]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 154.55292435572665, 274.15545916203655 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[334.8594814225222,-197.34313509035917]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[334.8594814225222,-197.34313509035917]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[334.8594814225222,-197.34313509035917]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[334.8594814225222,-197.34313509035917]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 334.8594814225222, -197.34313509035917 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 585.7496711770451, -86.53330128211155 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,7.550519875834425]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,7.550519875834425]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,7.550519875834425]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[803.1878356309647,7.550519875834425]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 803.1878356309647, 7.550519875834425 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1003.8999874345831,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1003.8999874345831,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1003.8999874345831,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1003.8999874345831,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1003.8999874345831, 107.90659577764359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1035.2612611538984,201.99041693558956]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1035.2612611538984,201.99041693558956]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1035.2612611538984,201.99041693558956]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1035.2612611538984,201.99041693558956]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1035.2612611538984, 201.99041693558956 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[972.5387137152676,212.44417484202813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[972.5387137152676,212.44417484202813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[972.5387137152676,212.44417484202813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[972.5387137152676,212.44417484202813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 972.5387137152676, 212.44417484202813 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[890.9994020450478,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[890.9994020450478,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[890.9994020450478,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[890.9994020450478,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 890.9994020450478, 220.8071811671789 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,245.89620014263096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,245.89620014263096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,245.89620014263096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,245.89620014263096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 767.6450587490741, 245.89620014263096 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[709.1040144730188,256.3499580490695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[709.1040144730188,256.3499580490695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[709.1040144730188,256.3499580490695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[709.1040144730188,256.3499580490695]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 709.1040144730188, 256.3499580490695 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,266.80371595550787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,266.80371595550787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,266.80371595550787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,266.80371595550787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 675.6519891724157, 266.80371595550787 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[658.9259765221142,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[658.9259765221142,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[658.9259765221142,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[658.9259765221142,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 658.9259765221142, 270.98521911808325 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[656.8352249408266,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 656.8352249408266, 270.98521911808325 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[658.9259765221142,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[658.9259765221142,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[658.9259765221142,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[658.9259765221142,270.98521911808325]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 658.9259765221142, 270.98521911808325 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[665.1982312659771,268.8944675367957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[665.1982312659771,268.8944675367957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[665.1982312659771,268.8944675367957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[665.1982312659771,268.8944675367957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 665.1982312659771, 268.8944675367957 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,258.4407096303571]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,258.4407096303571]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,258.4407096303571]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,258.4407096303571]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 698.6502565665802, 258.4407096303571 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,241.71469698005558]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,241.71469698005558]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,241.71469698005558]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,241.71469698005558]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 746.7375429361972, 241.71469698005558 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[788.552574561951,229.17018749232943]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[788.552574561951,229.17018749232943]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[788.552574561951,229.17018749232943]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[788.552574561951,229.17018749232943]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 788.552574561951, 229.17018749232943 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 811.5508419561155, 224.98868432975405 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 813.6415935374033, 224.98868432975405 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,224.98868432975405]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 815.7323451186909, 224.98868432975405 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 817.8230966999787, 222.89793274846647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,220.8071811671789]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 819.9138482812663, 220.8071811671789 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,218.7164295858911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,218.7164295858911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,218.7164295858911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,218.7164295858911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 819.9138482812663, 218.7164295858911 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,216.62567800460351]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,216.62567800460351]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,216.62567800460351]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,216.62567800460351]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 819.9138482812663, 216.62567800460351 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,214.5349264233157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,214.5349264233157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,214.5349264233157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,214.5349264233157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 819.9138482812663, 214.5349264233157 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,210.35342326074033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,210.35342326074033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,210.35342326074033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[822.0045998625541,210.35342326074033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 822.0045998625541, 210.35342326074033 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,206.17192009816495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,206.17192009816495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,206.17192009816495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,206.17192009816495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 824.0953514438417, 206.17192009816495 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,199.899665354302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,199.899665354302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,199.899665354302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,199.899665354302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 828.276854606417, 199.899665354302 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,195.7181621917266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,195.7181621917266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,195.7181621917266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,195.7181621917266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 832.4583577689924, 195.7181621917266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 832.4583577689924, 191.53665902915122 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,189.44590744786342]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,189.44590744786342]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,189.44590744786342]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,189.44590744786342]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 834.5491093502802, 189.44590744786342 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[834.5491093502802,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 834.5491093502802, 185.26440428528804 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[838.7306125128554,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 838.7306125128554, 181.08290112271266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[842.9121156754308,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[842.9121156754308,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[842.9121156754308,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[842.9121156754308,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 842.9121156754308, 176.90139796013727 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 845.0028672567186, 176.90139796013727 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,172.7198947975619]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 845.0028672567186, 172.7198947975619 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,170.62914321627431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 845.0028672567186, 170.62914321627431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[849.1843704192939,168.5383916349865]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[849.1843704192939,168.5383916349865]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[849.1843704192939,168.5383916349865]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[849.1843704192939,168.5383916349865]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 849.1843704192939, 168.5383916349865 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 851.2751220005815, 166.44764005369893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[853.3658735818693,164.35688847241113]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[853.3658735818693,164.35688847241113]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[853.3658735818693,164.35688847241113]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[853.3658735818693,164.35688847241113]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 853.3658735818693, 164.35688847241113 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,160.17538530983575]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,160.17538530983575]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,160.17538530983575]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,160.17538530983575]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 857.5473767444447, 160.17538530983575 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[859.6381283257323,158.08463372854817]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[859.6381283257323,158.08463372854817]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[859.6381283257323,158.08463372854817]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[859.6381283257323,158.08463372854817]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 859.6381283257323, 158.08463372854817 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,153.9031305659728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,153.9031305659728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,153.9031305659728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,153.9031305659728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 863.8196314883077, 153.9031305659728 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,149.7216274033974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,149.7216274033974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,149.7216274033974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,149.7216274033974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 863.8196314883077, 149.7216274033974 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 865.9103830695955, 147.6308758221096 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-398.02750749824247}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-398.02750749824247}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-398.02750749824247}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-398.02750749824247}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-398.02750749824247}
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: -398.02750749824247,
- type: 0 }
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-74.73311872096588}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-74.73311872096588}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-74.73311872096588}
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: -286.7115148803389,
- type: 0 }
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-calling update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data: [ '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Set Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-103.70194957048432}
-calling update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-103.70194957048432}
-called update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-103.70194957048432}
-Incoming : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Set Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-168.80171170567712}
-calling update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-168.80171170567712}
-called update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-168.80171170567712}
-Incoming : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Set Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-calling update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-called update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-calling update on data {"type":1,"data":[],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":[],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Set Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":142.33700820255547}
-calling update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":142.33700820255547}
-called update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":142.33700820255547}
-Incoming : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Set Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-4.18636328696482}
-calling update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-4.18636328696482}
-called update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-4.18636328696482}
-Incoming : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Set Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-calling update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-called update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-calling update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-called update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-calling update on data {"type":5,"data":[],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-called update on data {"type":5,"data":[],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-calling update on data {"type":1,"data":[],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-called update on data {"type":1,"data":[],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-calling update on data {"type":6,"data":"a nested collection","_id":"ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"}
-called update on data {"type":6,"data":"a nested collection","_id":"ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-Incoming : cfe7bf1f-062c-4992-a9e4-553241619bc4, receiving Set Field with data {"_id":"cfe7bf1f-062c-4992-a9e4-553241619bc4","type":0,"data":1}
-calling update on data {"_id":"cfe7bf1f-062c-4992-a9e4-553241619bc4","type":0,"data":1}
-called update on data {"_id":"cfe7bf1f-062c-4992-a9e4-553241619bc4","type":0,"data":1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-calling update on data {"type":6,"data":"Transparent","_id":"f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"}
-called update on data {"type":6,"data":"Transparent","_id":"f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-calling update on data {"type":12,"data":{},"_id":"94f50e35-aa4c-4c49-b633-ccbb7360883b"}
-called update on data {"type":12,"data":{},"_id":"94f50e35-aa4c-4c49-b633-ccbb7360883b"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"],["59b58624-916f-50a0-8efa-7003a805bfad","94f50e35-aa4c-4c49-b633-ccbb7360883b"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"],["59b58624-916f-50a0-8efa-7003a805bfad","94f50e35-aa4c-4c49-b633-ccbb7360883b"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-calling update on data {"type":5,"data":[],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Incoming : 02535b48-c865-4089-9026-d9f0b74dd18f, receiving Set Field with data {"_id":"02535b48-c865-4089-9026-d9f0b74dd18f","type":0,"data":-196.19142022455082}
-calling update on data {"_id":"02535b48-c865-4089-9026-d9f0b74dd18f","type":0,"data":-196.19142022455082}
-called update on data {"_id":"02535b48-c865-4089-9026-d9f0b74dd18f","type":0,"data":-196.19142022455082}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Incoming : 221704be-2709-4597-b3f2-6f7ba3ca3a05, receiving Set Field with data {"_id":"221704be-2709-4597-b3f2-6f7ba3ca3a05","type":0,"data":-571.5876681408556}
-calling update on data {"_id":"221704be-2709-4597-b3f2-6f7ba3ca3a05","type":0,"data":-571.5876681408556}
-called update on data {"_id":"221704be-2709-4597-b3f2-6f7ba3ca3a05","type":0,"data":-571.5876681408556}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Incoming : 2547894b-f0a8-48da-85ee-1823bd961956, receiving Set Field with data {"_id":"2547894b-f0a8-48da-85ee-1823bd961956","type":0,"data":1062.1018032941463}
-calling update on data {"_id":"2547894b-f0a8-48da-85ee-1823bd961956","type":0,"data":1062.1018032941463}
-called update on data {"_id":"2547894b-f0a8-48da-85ee-1823bd961956","type":0,"data":1062.1018032941463}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Incoming : 9bbf8324-4a1c-442a-ac7d-f7a57584cd39, receiving Set Field with data {"_id":"9bbf8324-4a1c-442a-ac7d-f7a57584cd39","type":0,"data":719.2185439629652}
-calling update on data {"_id":"9bbf8324-4a1c-442a-ac7d-f7a57584cd39","type":0,"data":719.2185439629652}
-called update on data {"_id":"9bbf8324-4a1c-442a-ac7d-f7a57584cd39","type":0,"data":719.2185439629652}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Incoming : 4e7f69aa-d522-4515-b531-6a23a6b44971, receiving Set Field with data {"_id":"4e7f69aa-d522-4515-b531-6a23a6b44971","type":0,"data":0}
-calling update on data {"_id":"4e7f69aa-d522-4515-b531-6a23a6b44971","type":0,"data":0}
-called update on data {"_id":"4e7f69aa-d522-4515-b531-6a23a6b44971","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Incoming : 1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c, receiving Set Field with data {"_id":"1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c","type":0,"data":0}
-calling update on data {"_id":"1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c","type":0,"data":0}
-called update on data {"_id":"1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Incoming : b1f2da36-fef6-436c-be4a-996aa74344fa, receiving Set Field with data {"_id":"b1f2da36-fef6-436c-be4a-996aa74344fa","type":0,"data":-1}
-calling update on data {"_id":"b1f2da36-fef6-436c-be4a-996aa74344fa","type":0,"data":-1}
-called update on data {"_id":"b1f2da36-fef6-436c-be4a-996aa74344fa","type":0,"data":-1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-calling update on data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-74.73311872096588}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-74.73311872096588}
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830', data: 0, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-103.70194957048432}
-Broadcast : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, sending data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-103.70194957048432}
-{ _id: 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9',
- data: -103.70194957048432,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-168.80171170567712}
-Broadcast : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, sending data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-168.80171170567712}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-Broadcast : 672c99e2-ba2a-419b-9f06-903d9aeba563, sending data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":[],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":[],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '672c99e2-ba2a-419b-9f06-903d9aeba563', data: 0, type: 0 }
-{ _id: '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19',
- data: -168.80171170567712,
- type: 0 }
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data: [],
- type: 1 }
-{ _id: '9ffe2a20-7fcb-4460-aa91-922b69f91e24',
- data: 477.1964896250778,
- type: 0 }
-{ _id: 'd7d79305-cd6b-4653-a173-1284f76f5773',
- data: -216.16475944633783,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-4.18636328696482}
-Broadcast : d7d79305-cd6b-4653-a173-1284f76f5773, sending data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-4.18636328696482}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":142.33700820255547}
-Broadcast : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, sending data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":142.33700820255547}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-Broadcast : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, sending data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-Broadcast : 0dc04257-8187-4391-a1bf-a63c30a9e922, sending data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-Broadcast : 1429712e-036b-40a7-8603-5878cf6136f8, sending data {"type":5,"data":[],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-{ _id: '0dc04257-8187-4391-a1bf-a63c30a9e922',
- data: {},
- type: 12 }
-{ _id: '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b', data: 0, type: 0 }
-{ _id: '1429712e-036b-40a7-8603-5878cf6136f8',
- data: [],
- type: 5 }
-{ _id: '1429712e-036b-40a7-8603-5878cf6136f8',
- data: [],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}],"ok":1}
-Wrote {"type":1,"data":[],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-Broadcast : 8e5f8b96-0193-4acb-b426-918c42e2cbd4, sending data {"type":1,"data":[],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-Broadcast : 1429712e-036b-40a7-8603-5878cf6136f8, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-Broadcast : 8e5f8b96-0193-4acb-b426-918c42e2cbd4, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-Broadcast : 1429712e-036b-40a7-8603-5878cf6136f8, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"}],"ok":1}
-Wrote {"type":6,"data":"a nested collection","_id":"ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"}
-Broadcast : ad17eddf-4597-4eb4-ae3c-adf8ebad59b8, sending data {"type":6,"data":"a nested collection","_id":"ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"}
-{ _id: '1429712e-036b-40a7-8603-5878cf6136f8',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '8e5f8b96-0193-4acb-b426-918c42e2cbd4' ] ],
- type: 5 }
-{ _id: '8e5f8b96-0193-4acb-b426-918c42e2cbd4',
- data:
- [ '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-{ _id: 'ad17eddf-4597-4eb4-ae3c-adf8ebad59b8',
- data: 'a nested collection',
- type: 6 }
-{ _id: '1429712e-036b-40a7-8603-5878cf6136f8',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '8e5f8b96-0193-4acb-b426-918c42e2cbd4' ] ],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"cfe7bf1f-062c-4992-a9e4-553241619bc4"}],"ok":1}
-Wrote {"_id":"cfe7bf1f-062c-4992-a9e4-553241619bc4","type":0,"data":1}
-Broadcast : cfe7bf1f-062c-4992-a9e4-553241619bc4, sending data {"_id":"cfe7bf1f-062c-4992-a9e4-553241619bc4","type":0,"data":1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-Broadcast : 1429712e-036b-40a7-8603-5878cf6136f8, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-Broadcast : 1429712e-036b-40a7-8603-5878cf6136f8, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"}],"ok":1}
-Wrote {"type":6,"data":"Transparent","_id":"f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"}
-Broadcast : f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c, sending data {"type":6,"data":"Transparent","_id":"f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-Broadcast : 1429712e-036b-40a7-8603-5878cf6136f8, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-{ _id: 'f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c',
- data: 'Transparent',
- type: 6 }
-{ _id: '1429712e-036b-40a7-8603-5878cf6136f8',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '8e5f8b96-0193-4acb-b426-918c42e2cbd4' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- 'ad17eddf-4597-4eb4-ae3c-adf8ebad59b8' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- 'cfe7bf1f-062c-4992-a9e4-553241619bc4' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- 'f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c' ] ],
- type: 5 }
-{ _id: '1429712e-036b-40a7-8603-5878cf6136f8',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '8e5f8b96-0193-4acb-b426-918c42e2cbd4' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- 'ad17eddf-4597-4eb4-ae3c-adf8ebad59b8' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- 'cfe7bf1f-062c-4992-a9e4-553241619bc4' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- 'f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c' ] ],
- type: 5 }
-undefined
-null
-{ _id: '1429712e-036b-40a7-8603-5878cf6136f8',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '8e5f8b96-0193-4acb-b426-918c42e2cbd4' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- 'ad17eddf-4597-4eb4-ae3c-adf8ebad59b8' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- 'cfe7bf1f-062c-4992-a9e4-553241619bc4' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- 'f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"],["59b58624-916f-50a0-8efa-7003a805bfad","94f50e35-aa4c-4c49-b633-ccbb7360883b"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-Broadcast : 1429712e-036b-40a7-8603-5878cf6136f8, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","8e5f8b96-0193-4acb-b426-918c42e2cbd4"],["51529209-4838-51c5-a520-0044fddf139c","ad17eddf-4597-4eb4-ae3c-adf8ebad59b8"],["771c0a88-bd02-5e92-953f-e9042a191928","cfe7bf1f-062c-4992-a9e4-553241619bc4"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","f04ef6ef-4793-4eb3-8e53-c55e3d6c6f3c"],["59b58624-916f-50a0-8efa-7003a805bfad","94f50e35-aa4c-4c49-b633-ccbb7360883b"]],"_id":"1429712e-036b-40a7-8603-5878cf6136f8"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"94f50e35-aa4c-4c49-b633-ccbb7360883b"}],"ok":1}
-Wrote {"type":12,"data":{},"_id":"94f50e35-aa4c-4c49-b633-ccbb7360883b"}
-Broadcast : 94f50e35-aa4c-4c49-b633-ccbb7360883b, sending data {"type":12,"data":{},"_id":"94f50e35-aa4c-4c49-b633-ccbb7360883b"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"a8235956-e798-4904-b97a-5395111c95fe"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"02535b48-c865-4089-9026-d9f0b74dd18f"}],"ok":1}
-Wrote {"_id":"02535b48-c865-4089-9026-d9f0b74dd18f","type":0,"data":-196.19142022455082}
-Broadcast : 02535b48-c865-4089-9026-d9f0b74dd18f, sending data {"_id":"02535b48-c865-4089-9026-d9f0b74dd18f","type":0,"data":-196.19142022455082}
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ] ],
- type: 5 }
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ] ],
- type: 5 }
-{ _id: '02535b48-c865-4089-9026-d9f0b74dd18f',
- data: -196.19142022455082,
- type: 0 }
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ] ],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"221704be-2709-4597-b3f2-6f7ba3ca3a05"}],"ok":1}
-Wrote {"_id":"221704be-2709-4597-b3f2-6f7ba3ca3a05","type":0,"data":-571.5876681408556}
-Broadcast : 221704be-2709-4597-b3f2-6f7ba3ca3a05, sending data {"_id":"221704be-2709-4597-b3f2-6f7ba3ca3a05","type":0,"data":-571.5876681408556}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"2547894b-f0a8-48da-85ee-1823bd961956"}],"ok":1}
-Wrote {"_id":"2547894b-f0a8-48da-85ee-1823bd961956","type":0,"data":1062.1018032941463}
-Broadcast : 2547894b-f0a8-48da-85ee-1823bd961956, sending data {"_id":"2547894b-f0a8-48da-85ee-1823bd961956","type":0,"data":1062.1018032941463}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{ _id: '2547894b-f0a8-48da-85ee-1823bd961956',
- data: 1062.1018032941463,
- type: 0 }
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '02535b48-c865-4089-9026-d9f0b74dd18f' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '221704be-2709-4597-b3f2-6f7ba3ca3a05' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '2547894b-f0a8-48da-85ee-1823bd961956' ] ],
- type: 5 }
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '02535b48-c865-4089-9026-d9f0b74dd18f' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '221704be-2709-4597-b3f2-6f7ba3ca3a05' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '2547894b-f0a8-48da-85ee-1823bd961956' ] ],
- type: 5 }
-undefined
-null
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '02535b48-c865-4089-9026-d9f0b74dd18f' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '221704be-2709-4597-b3f2-6f7ba3ca3a05' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '2547894b-f0a8-48da-85ee-1823bd961956' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"9bbf8324-4a1c-442a-ac7d-f7a57584cd39"}],"ok":1}
-Wrote {"_id":"9bbf8324-4a1c-442a-ac7d-f7a57584cd39","type":0,"data":719.2185439629652}
-Broadcast : 9bbf8324-4a1c-442a-ac7d-f7a57584cd39, sending data {"_id":"9bbf8324-4a1c-442a-ac7d-f7a57584cd39","type":0,"data":719.2185439629652}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"4e7f69aa-d522-4515-b531-6a23a6b44971"}],"ok":1}
-Wrote {"_id":"4e7f69aa-d522-4515-b531-6a23a6b44971","type":0,"data":0}
-Broadcast : 4e7f69aa-d522-4515-b531-6a23a6b44971, sending data {"_id":"4e7f69aa-d522-4515-b531-6a23a6b44971","type":0,"data":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"}],"ok":1}
-Wrote {"_id":"1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c","type":0,"data":0}
-Broadcast : 1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c, sending data {"_id":"1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c","type":0,"data":0}
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '02535b48-c865-4089-9026-d9f0b74dd18f' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '221704be-2709-4597-b3f2-6f7ba3ca3a05' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '2547894b-f0a8-48da-85ee-1823bd961956' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '9bbf8324-4a1c-442a-ac7d-f7a57584cd39' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4e7f69aa-d522-4515-b531-6a23a6b44971' ] ],
- type: 5 }
-{ _id: '4e7f69aa-d522-4515-b531-6a23a6b44971', data: 0, type: 0 }
-{ _id: '1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c', data: 0, type: 0 }
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '02535b48-c865-4089-9026-d9f0b74dd18f' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '221704be-2709-4597-b3f2-6f7ba3ca3a05' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '2547894b-f0a8-48da-85ee-1823bd961956' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '9bbf8324-4a1c-442a-ac7d-f7a57584cd39' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4e7f69aa-d522-4515-b531-6a23a6b44971' ] ],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"b1f2da36-fef6-436c-be4a-996aa74344fa"}],"ok":1}
-Wrote {"_id":"b1f2da36-fef6-436c-be4a-996aa74344fa","type":0,"data":-1}
-Broadcast : b1f2da36-fef6-436c-be4a-996aa74344fa, sending data {"_id":"b1f2da36-fef6-436c-be4a-996aa74344fa","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data: [ 'a8235956-e798-4904-b97a-5395111c95fe' ],
- type: 1 }
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '02535b48-c865-4089-9026-d9f0b74dd18f' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '221704be-2709-4597-b3f2-6f7ba3ca3a05' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '2547894b-f0a8-48da-85ee-1823bd961956' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '9bbf8324-4a1c-442a-ac7d-f7a57584cd39' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4e7f69aa-d522-4515-b531-6a23a6b44971' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- '1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- 'b1f2da36-fef6-436c-be4a-996aa74344fa' ] ],
- type: 5 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 865.9103830695955, 147.6308758221096 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,147.6308758221096]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 865.9103830695955, 147.6308758221096 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[870.0918862321709,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[870.0918862321709,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[870.0918862321709,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[870.0918862321709,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 870.0918862321709, 145.54012424082202 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[874.2733893947462,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[874.2733893947462,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[874.2733893947462,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[874.2733893947462,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 874.2733893947462, 137.17711791567126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[878.4548925573216,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[878.4548925573216,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[878.4548925573216,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[878.4548925573216,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 878.4548925573216, 130.90486317180807 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[895.1809052076231,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[895.1809052076231,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[895.1809052076231,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[895.1809052076231,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 895.1809052076231, 122.54185684665731 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[926.5421789269384,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[926.5421789269384,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[926.5421789269384,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[926.5421789269384,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 926.5421789269384, 109.99734735893117 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[978.8109684591308,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[978.8109684591308,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[978.8109684591308,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[978.8109684591308,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 978.8109684591308, 97.45283787120502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1014.3537453410214,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1014.3537453410214,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1014.3537453410214,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1014.3537453410214,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1014.3537453410214, 89.08983154605426 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,-1129.8183403446687]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,-1129.8183403446687]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,-1129.8183403446687]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,-1129.8183403446687]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 564.8421553641682, -1129.8183403446687 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 508.39186266940044, -1121.455334019518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[441.48781206819456,-1121.455334019518]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 441.48781206819456, -1121.455334019518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[391.30977411729,-1127.727588763381]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[391.30977411729,-1127.727588763381]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[391.30977411729,-1127.727588763381]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[391.30977411729,-1127.727588763381]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 391.30977411729, -1127.727588763381 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-1142.3628498323949]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-1142.3628498323949]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-1142.3628498323949]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-1142.3628498323949]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 301.40745612191915, -1142.3628498323949 ] ],
- type: 14 }
-a user has connected
-calling update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-called update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-Broadcast : 6c3acd53-3a16-59b2-bc11-62c6d79b2cea, sending data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{ _id: '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- data: 'Prototype',
- type: 2 }
-calling update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-called update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-calling update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-called update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-calling update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-called update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-calling update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-called update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-calling update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-called update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-calling update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-called update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-calling update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-called update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-calling update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-called update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-calling update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-called update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-calling update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-called update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-calling update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-called update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-calling update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-called update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-calling update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-called update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-calling update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-called update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-calling update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-called update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-calling update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-called update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-calling update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-called update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-calling update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-called update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-calling update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-called update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-calling update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-called update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-calling update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-called update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-calling update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-called update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-calling update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-called update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-calling update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-called update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-calling update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-called update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-calling update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-called update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-calling update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-called update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-calling update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-called update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-calling update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-called update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-calling update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-called update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-calling update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-called update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-calling update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-called update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-calling update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-called update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-calling update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-called update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-calling update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-called update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-calling update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-called update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-calling update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-called update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-calling update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-called update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-calling update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-called update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-calling update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-called update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-calling update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-called update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-calling update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-called update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-Broadcast : 7b71638c-05b8-5573-9aa5-c737c9406a86, sending data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-{ _id: '7b71638c-05b8-5573-9aa5-c737c9406a86',
- data: 'X',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-Broadcast : 13a3cc01-c286-57e1-8746-baa3ced34e76, sending data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-{ _id: '13a3cc01-c286-57e1-8746-baa3ced34e76',
- data: 'Y',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-Broadcast : 911954a3-bebc-5b20-81f3-3091a2e11907, sending data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-{ _id: '911954a3-bebc-5b20-81f3-3091a2e11907',
- data: 'Page',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-Broadcast : 4cd12c43-3240-58dd-88bf-ce978edb2fde, sending data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-{ _id: '51529209-4838-51c5-a520-0044fddf139c',
- data: 'Title',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-Broadcast : 51529209-4838-51c5-a520-0044fddf139c, sending data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-{ _id: '4cd12c43-3240-58dd-88bf-ce978edb2fde',
- data: 'Author',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-Broadcast : 8efd3b8a-ce6c-5f44-9085-90a8b7cd2202, sending data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-{ _id: '048d25ac-b841-5728-a599-e3a432137881',
- data: 'PanY',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-Broadcast : 048d25ac-b841-5728-a599-e3a432137881, sending data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-{ _id: '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- data: 'PanX',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-Broadcast : f9f69d93-df75-5021-883a-efac00502b09, sending data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-{ _id: 'f9f69d93-df75-5021-883a-efac00502b09',
- data: 'Scale',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-Broadcast : ac03e21a-ec21-5402-a1ae-b66a7d8942a1, sending data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-{ _id: '2e6a5061-4d6c-5895-8022-9b4f4fc7118b',
- data: 'NativeWidth',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-Broadcast : 2e6a5061-4d6c-5895-8022-9b4f4fc7118b, sending data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-{ _id: 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- data: 'NativeHeight',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-Broadcast : 5c207bd2-0390-5c35-8972-06d185f387fb, sending data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-{ _id: '2a238eef-0bbb-5b78-b173-37b574fec97f',
- data: 'Height',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-Broadcast : 2a238eef-0bbb-5b78-b173-37b574fec97f, sending data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-{ _id: '5c207bd2-0390-5c35-8972-06d185f387fb',
- data: 'Width',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-Broadcast : 3559ca27-b3fa-5407-b822-07a1c9a0664c, sending data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-{ _id: '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- data: 'ZIndex',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-Broadcast : c4bbea89-4e57-551a-98fc-af3b6dacccb1, sending data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-{ _id: '530318f9-9b84-5b90-b926-530590cdd5c3',
- data: 'Data',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-Broadcast : 530318f9-9b84-5b90-b926-530590cdd5c3, sending data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-{ _id: 'c4bbea89-4e57-551a-98fc-af3b6dacccb1',
- data: 'Annotations',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-Broadcast : 771c0a88-bd02-5e92-953f-e9042a191928, sending data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-{ _id: '32a999d2-06a3-534f-a12e-c2d710adf3e6',
- data: 'Layout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-Broadcast : 32a999d2-06a3-534f-a12e-c2d710adf3e6, sending data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-{ _id: '771c0a88-bd02-5e92-953f-e9042a191928',
- data: 'ViewType',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-Broadcast : bf70b65d-62da-53e6-82b2-1b849418dc2e, sending data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-{ _id: 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- data: 'BackgroundColor',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-Broadcast : f2b3b5fc-7f38-5783-9218-badc8dcab185, sending data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-{ _id: '2588a9ff-2129-5018-84c9-7743d470a4cf',
- data: 'BackgroundLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-Broadcast : 2588a9ff-2129-5018-84c9-7743d470a4cf, sending data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-{ _id: 'f2b3b5fc-7f38-5783-9218-badc8dcab185',
- data: 'OverlayLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-Broadcast : d0c33158-59b4-5c4a-8a27-b24570e955f0, sending data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-{ _id: 'eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b',
- data: 'LayoutFields',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-Broadcast : eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b, sending data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-{ _id: 'd0c33158-59b4-5c4a-8a27-b24570e955f0',
- data: 'LayoutKeys',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-Broadcast : 249e18fb-d914-5c26-a367-64a52fdd1daa, sending data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-{ _id: '249e18fb-d914-5c26-a367-64a52fdd1daa',
- data: 'SchemaColumns',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-Broadcast : 29e3ad9f-39a2-5fe3-9258-08977e55d7ee, sending data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-{ _id: 'e51646f0-30ef-5838-8371-9a88b0bc2a30',
- data: 'SchemaSplitPercentage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-Broadcast : e51646f0-30ef-5838-8371-9a88b0bc2a30, sending data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-{ _id: '29e3ad9f-39a2-5fe3-9258-08977e55d7ee',
- data: 'Caption',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-Broadcast : 87bcf74b-a9de-5523-a148-39e5f7e35c5f, sending data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-{ _id: '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- data: 'ActiveWorkspace',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-Broadcast : 77aeae9e-9bc5-5318-b4cf-219d29204f73, sending data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-{ _id: '87bcf74b-a9de-5523-a148-39e5f7e35c5f',
- data: 'ActiveFrame',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-Broadcast : ebdc0250-58e7-5b19-9061-fd9a60d42e07, sending data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-{ _id: 'ebdc0250-58e7-5b19-9061-fd9a60d42e07',
- data: 'ActiveDB',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-Broadcast : 91ed6e52-c6aa-57aa-b98b-04602411c3d3, sending data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-{ _id: 'db106646-3e58-5a71-8121-84753b400f96',
- data: 'DocumentText',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-Broadcast : db106646-3e58-5a71-8121-84753b400f96, sending data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-{ _id: '91ed6e52-c6aa-57aa-b98b-04602411c3d3',
- data: 'LinkedToDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-Broadcast : 8b33881b-415d-5c37-9270-f26cc3a7935e, sending data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-{ _id: '0c28246e-1e14-5c7c-897f-916c5e8695b8',
- data: 'LinkDescription',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-Broadcast : 0c28246e-1e14-5c7c-897f-916c5e8695b8, sending data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-{ _id: '8b33881b-415d-5c37-9270-f26cc3a7935e',
- data: 'LinkedFromDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-Broadcast : ae45a701-5adf-5ca2-822a-27127becbb91, sending data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-{ _id: 'ae45a701-5adf-5ca2-822a-27127becbb91',
- data: 'LinkTag',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-Broadcast : 10fe3599-dd7d-5e3e-9a28-23c624c99140, sending data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-{ _id: '22b8e67b-50b6-5e6e-9f3d-9810b8d07619',
- data: 'Thumbnail',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-Broadcast : 22b8e67b-50b6-5e6e-9f3d-9810b8d07619, sending data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-{ _id: '10fe3599-dd7d-5e3e-9a28-23c624c99140',
- data: 'CurPage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-Broadcast : 7860dbf1-c302-50ac-9f2f-4106c641dd8a, sending data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-{ _id: '59b58624-916f-50a0-8efa-7003a805bfad',
- data: 'Ink',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-Broadcast : 59b58624-916f-50a0-8efa-7003a805bfad, sending data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-{ _id: '7860dbf1-c302-50ac-9f2f-4106c641dd8a',
- data: 'NumPages',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-Broadcast : 43606ee9-0825-51a3-98b2-06d36fdfd153, sending data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-{ _id: '43606ee9-0825-51a3-98b2-06d36fdfd153',
- data: 'Cursors',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-Broadcast : 9cca7b47-80dc-5c45-8090-15f8e9082020, sending data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-{ _id: '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- data: 'OptionalRightCollection',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-Broadcast : 7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5, sending data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-{ _id: '9cca7b47-80dc-5c45-8090-15f8e9082020',
- data: 'Archives',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-Broadcast : 1daeded7-02d2-50b9-8da8-1f1f36f7cc67, sending data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-{ _id: 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- data: 'Workspaces',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-Broadcast : d5aa5533-2f9b-5ef2-bd26-787dcbccaca2, sending data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{ _id: '1daeded7-02d2-50b9-8da8-1f1f36f7cc67',
- data: 'Updated',
- type: 2 }
-calling update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-called update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-Broadcast : f98e47b3-f8ee-4117-86fb-6948460f5cc9, sending data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{ _id: 'f98e47b3-f8ee-4117-86fb-6948460f5cc9',
- data:
- [ [ 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- 'eec28478-5239-485f-a4ef-f1b9716fab89' ],
- [ '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- 'd9c82294-7b0b-4dd9-9cdc-b5f00bc84408' ],
- [ '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- '66c1ad11-6717-4186-b5bd-ac182f1c4d3e' ] ],
- type: 5 }
-S sending : 52b01269-5377-480c-87c8-1155d86cc5ee, receiving Get Field with data {"_id":"52b01269-5377-480c-87c8-1155d86cc5ee","data":3,"type":0}
-S sending : 8dd0dbc7-bce1-4c1f-9d57-46090545a413, receiving Get Field with data {"_id":"8dd0dbc7-bce1-4c1f-9d57-46090545a413","data":1,"type":0}
-S sending : b8c25898-ab6c-438d-a7e2-85b9c40a4fe6, receiving Get Field with data {"_id":"b8c25898-ab6c-438d-a7e2-85b9c40a4fe6","data":54.69876952997183,"type":0}
-S sending : c968815c-6ac5-43ad-9592-e31f4587bf1e, receiving Get Field with data {"_id":"c968815c-6ac5-43ad-9592-e31f4587bf1e","data":-160.75498241782444,"type":0}
-S sending : 5d676023-b2f3-48c2-924f-487aae09368e, receiving Get Field with data {"_id":"5d676023-b2f3-48c2-924f-487aae09368e","data":0.4782969000000001,"type":0}
-S sending : b1f2da36-fef6-436c-be4a-996aa74344fa, receiving Get Field with data {"_id":"b1f2da36-fef6-436c-be4a-996aa74344fa","data":-1,"type":0}
-S sending : 02535b48-c865-4089-9026-d9f0b74dd18f, receiving Get Field with data {"_id":"02535b48-c865-4089-9026-d9f0b74dd18f","data":-196.19142022455082,"type":0}
-S sending : 221704be-2709-4597-b3f2-6f7ba3ca3a05, receiving Get Field with data {"_id":"221704be-2709-4597-b3f2-6f7ba3ca3a05","data":-571.5876681408556,"type":0}
-S sending : 2547894b-f0a8-48da-85ee-1823bd961956, receiving Get Field with data {"_id":"2547894b-f0a8-48da-85ee-1823bd961956","data":1062.1018032941463,"type":0}
-S sending : 9bbf8324-4a1c-442a-ac7d-f7a57584cd39, receiving Get Field with data {"_id":"9bbf8324-4a1c-442a-ac7d-f7a57584cd39","data":719.2185439629652,"type":0}
-S sending : cfe7bf1f-062c-4992-a9e4-553241619bc4, receiving Get Field with data {"_id":"cfe7bf1f-062c-4992-a9e4-553241619bc4","data":1,"type":0}
-S sending : 4e7f69aa-d522-4515-b531-6a23a6b44971, receiving Get Field with data {"_id":"4e7f69aa-d522-4515-b531-6a23a6b44971","data":0,"type":0}
-S sending : 1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c, receiving Get Field with data {"_id":"1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c","data":0,"type":0}
-S sending : ba3184a2-b966-432b-b8bd-83ae68ba1c8f, receiving Get Field with data {"_id":"ba3184a2-b966-432b-b8bd-83ae68ba1c8f","data":1,"type":0}
-S sending : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Get Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","data":0,"type":0}
-S sending : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Get Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","data":0,"type":0}
-S sending : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Get Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","data":0,"type":0}
-S sending : 42373536-4991-4b59-aaf5-34559e43adef, receiving Get Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","data":-398.02750749824247,"type":0}
-S sending : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Get Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","data":-74.73311872096588,"type":0}
-S sending : 47f3540c-7ded-4c5a-a35e-67b8770c7564, receiving Get Field with data {"_id":"47f3540c-7ded-4c5a-a35e-67b8770c7564","data":200,"type":0}
-S sending : 9c48c01b-ff87-4633-ab32-620bbe191b04, receiving Get Field with data {"_id":"9c48c01b-ff87-4633-ab32-620bbe191b04","data":200,"type":0}
-S sending : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Get Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","data":-103.70194957048432,"type":0}
-S sending : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Get Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","data":299.5,"type":0}
-S sending : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Get Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","data":2,"type":0}
-S sending : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Get Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","data":-168.80171170567712,"type":0}
-S sending : 4233a5b1-f703-44d8-a4f1-55a230db04e7, receiving Get Field with data {"_id":"4233a5b1-f703-44d8-a4f1-55a230db04e7","data":200,"type":0}
-S sending : 8a50fbb3-768f-4f03-84b5-fc84aaa4f21c, receiving Get Field with data {"_id":"8a50fbb3-768f-4f03-84b5-fc84aaa4f21c","data":200,"type":0}
-S sending : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Get Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","data":3,"type":0}
-S sending : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Get Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","data":299.5,"type":0}
-S sending : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Get Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","data":142.33700820255547,"type":0}
-S sending : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Get Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","data":-4.18636328696482,"type":0}
-S sending : 9d04275c-0bc8-4e43-8142-034824b2deae, receiving Get Field with data {"_id":"9d04275c-0bc8-4e43-8142-034824b2deae","data":200,"type":0}
-S sending : f2822f08-9fd6-4816-ba61-0dc0ea45a0c0, receiving Get Field with data {"_id":"f2822f08-9fd6-4816-ba61-0dc0ea45a0c0","data":200,"type":0}
-S sending : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Get Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","data":4,"type":0}
-S sending : 42d06ec3-2f96-4bf0-af73-568f20eb4ec5, receiving Get Field with data {"_id":"42d06ec3-2f96-4bf0-af73-568f20eb4ec5","data":300,"type":0}
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 300,
- type: 0 }
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 300,
- type: 0 }
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 299.5,
- type: 0 }
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 299.5,
- type: 0 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.98912579195047,-1125.6368371820934]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.98912579195047,-1125.6368371820934]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.98912579195047,-1125.6368371820934]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.98912579195047,-1125.6368371820934]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -467.98912579195047, -1125.6368371820934 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.81108784104595,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.81108784104595,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.81108784104595,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.81108784104595,-1081.7310539750517]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -417.81108784104595, -1081.7310539750517 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-1042.0067739305857]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-1042.0067739305857]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-1042.0067739305857]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.81282044688135,-1042.0067739305857]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -394.81282044688135, -1042.0067739305857 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-1019.0085065364211]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -390.63131728430596, -1019.0085065364211 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.90357202816904,-996.0102391422565]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.90357202816904,-996.0102391422565]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.90357202816904,-996.0102391422565]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.90357202816904,-996.0102391422565]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -396.90357202816904, -996.0102391422565 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-977.1934749106673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -409.4480815158952, -977.1934749106673 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -411.5388330971829, -975.1027233293796 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -413.62958467847056, -973.0119717480919 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -413.62958467847056, -970.9212201668042 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-968.8304685855165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -415.72033625975826, -968.8304685855165 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-415.72033625975826,-964.6489654229412]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -415.72033625975826, -964.6489654229412 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-413.62958467847056,-958.3767106790781]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -413.62958467847056, -958.3767106790781 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-401.0850751907444,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-401.0850751907444,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-401.0850751907444,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-401.0850751907444,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -401.0850751907444, -945.8322011913519 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-933.2876917036258]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -371.81455305271675, -933.2876917036258 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-355.0885404024152,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -355.0885404024152, -924.924685378475 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-342.5440309146891,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-342.5440309146891,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-342.5440309146891,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-342.5440309146891,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -342.5440309146891, -920.7431822158997 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -329.99952142696293, -914.4709274720367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -321.6365151018123, -914.4709274720367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.81975087022306,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.81975087022306,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.81975087022306,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.81975087022306,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -302.81975087022306, -922.8339337971875 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-924.924685378475]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -296.54749612636, -924.924685378475 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-927.0154369597628]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-927.0154369597628]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-927.0154369597628]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-927.0154369597628]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -296.54749612636, -927.0154369597628 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-929.1061885410504]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -296.54749612636, -929.1061885410504 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-939.559946447489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-939.559946447489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-939.559946447489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-298.6382477076477,-939.559946447489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -298.6382477076477, -939.559946447489 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -294.4567445450723, -935.3784432849136 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-931.1969401223382]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-931.1969401223382]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-931.1969401223382]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-931.1969401223382]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -294.4567445450723, -931.1969401223382 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-922.8339337971875]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -294.4567445450723, -922.8339337971875 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-912.3801758907489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-912.3801758907489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-912.3801758907489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-912.3801758907489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -292.3659929637846, -912.3801758907489 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-288.1844898012092,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-288.1844898012092,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-288.1844898012092,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-288.1844898012092,-891.472660077872]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -288.1844898012092, -891.472660077872 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-855.9298831959813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-855.9298831959813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-855.9298831959813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-855.9298831959813]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -290.2752413824969, -855.9298831959813 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-809.9333484076521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -296.54749612636, -809.9333484076521 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-776.4813231070491]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -292.3659929637846, -776.4813231070491 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-290.2752413824969,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -290.2752413824969, -747.2108009690214 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -286.09373821992153, -713.7587756684184 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-699.1235145994046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-699.1235145994046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-699.1235145994046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-699.1235145994046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -279.82148347605846, -699.1235145994046 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-261.00471924446924,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -261.00471924446924, -671.9437440426647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -250.5509613380308, -651.0362282297878 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-636.4009671607739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-636.4009671607739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-636.4009671607739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-244.27870659416772,-636.4009671607739]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -244.27870659416772, -636.4009671607739 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -238.00645185030464, -625.9472092543355 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -238.00645185030464, -621.7657060917601 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -238.00645185030464, -619.6749545104724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-621.7657060917601]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -240.09720343159233, -621.7657060917601 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -240.09720343159233, -623.8564576730478 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-242.18795501288002,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -242.18795501288002, -625.9472092543355 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -246.3694581754554, -632.2194639981985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-254.73246450060617,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-254.73246450060617,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-254.73246450060617,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-254.73246450060617,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -254.73246450060617, -632.2194639981985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -271.4584771509077, -632.2194639981985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -309.09200561408613, -634.3102155794862 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -325.81801826438755, -634.3102155794862 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-338.3625277521137,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-338.3625277521137,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-338.3625277521137,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-338.3625277521137,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -338.3625277521137, -634.3102155794862 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -344.63478249597676, -634.3102155794862 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-348.81628565855215,-634.3102155794862]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -348.81628565855215, -634.3102155794862 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-352.99778882112753,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-352.99778882112753,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-352.99778882112753,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-352.99778882112753,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -352.99778882112753, -632.2194639981985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-357.1792919837029,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-357.1792919837029,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-357.1792919837029,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-357.1792919837029,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -357.1792919837029, -632.2194639981985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-382.2683109591552,-632.2194639981985]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -382.2683109591552, -632.2194639981985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -453.3538647229367, -640.5824703233493 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-543.2561827183074,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-543.2561827183074,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-543.2561827183074,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-543.2561827183074,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -543.2561827183074, -663.5807377175139 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-683.3365386645826,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-683.3365386645826,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-683.3365386645826,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-683.3365386645826,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -683.3365386645826, -682.3975019491031 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-875.6856841430499,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-875.6856841430499,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-875.6856841430499,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-875.6856841430499,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -875.6856841430499, -709.5772725058431 ] ],
- type: 14 }
-a user has connected
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-1104.7293213692164]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-1104.7293213692164]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-1104.7293213692164]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-1104.7293213692164]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 190.59762231367165, -1104.7293213692164 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-1058.7327865808873]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 194.77912547624703, -1058.7327865808873 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-973.0119717480919]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 213.59588970783636, -973.0119717480919 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-912.3801758907489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-912.3801758907489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-912.3801758907489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-912.3801758907489]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 232.41265393942547, -912.3801758907489 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 244.9571634271516, -878.928150590146 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-860.1113863585567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-860.1113863585567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-860.1113863585567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-860.1113863585567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 249.138666589727, -860.1113863585567 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 249.138666589727, -849.6576284521183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[236.59415710200085,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 236.59415710200085, -849.6576284521183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 230.3219023581379, -849.6576284521183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-851.748380033406]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-851.748380033406]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-851.748380033406]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-851.748380033406]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 230.3219023581379, -851.748380033406 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 230.3219023581379, -853.8391316146937 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 232.41265393942547, -853.8391316146937 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-851.748380033406]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-851.748380033406]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-851.748380033406]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-851.748380033406]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 232.41265393942547, -851.748380033406 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-849.6576284521183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 230.3219023581379, -849.6576284521183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-845.4761252895429]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-845.4761252895429]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-845.4761252895429]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,-845.4761252895429]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 230.3219023581379, -845.4761252895429 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.95889603298713,-835.0223673831044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.95889603298713,-835.0223673831044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.95889603298713,-835.0223673831044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[221.95889603298713,-835.0223673831044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 221.95889603298713, -835.0223673831044 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[217.77739287041175,-824.568609476666]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[217.77739287041175,-824.568609476666]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[217.77739287041175,-824.568609476666]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[217.77739287041175,-824.568609476666]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 217.77739287041175, -824.568609476666 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 209.41438654526098, -814.1148515702275 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 201.05138022011022, -799.4795905012138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[192.68837389495945,-782.7535778509123]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[192.68837389495945,-782.7535778509123]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[192.68837389495945,-782.7535778509123]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[192.68837389495945,-782.7535778509123]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 192.68837389495945, -782.7535778509123 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-759.7553104567476]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 184.3253675698087, -759.7553104567476 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 180.1438644072333, -734.6662914812953 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.78085808208255,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.78085808208255, -709.5772725058431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 159.2363485943564, -684.4882535303908 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.9640938504932,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.9640938504932,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.9640938504932,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.9640938504932,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 152.9640938504932, -651.0362282297878 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-592.4951839537324]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-592.4951839537324]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-592.4951839537324]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-592.4951839537324]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 134.1473296189041, -592.4951839537324 ] ],
- type: 14 }
-calling update on data {"type":1,"data":[],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-called update on data {"type":1,"data":[],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}],"ok":1}
-Wrote {"type":1,"data":[],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-Broadcast : edeb4f68-fb13-49ce-a673-16950754ae66, sending data {"type":1,"data":[],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-{ _id: 'edeb4f68-fb13-49ce-a673-16950754ae66',
- data: [],
- type: 1 }
-calling update on data {"type":1,"data":[],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-called update on data {"type":1,"data":[],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":1,"data":[],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-Broadcast : edeb4f68-fb13-49ce-a673-16950754ae66, sending data {"type":1,"data":[],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-{ _id: 'edeb4f68-fb13-49ce-a673-16950754ae66',
- data: [],
- type: 1 }
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"],["43606ee9-0825-51a3-98b2-06d36fdfd153","edeb4f68-fb13-49ce-a673-16950754ae66"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"],["43606ee9-0825-51a3-98b2-06d36fdfd153","edeb4f68-fb13-49ce-a673-16950754ae66"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"],["43606ee9-0825-51a3-98b2-06d36fdfd153","edeb4f68-fb13-49ce-a673-16950754ae66"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"],["43606ee9-0825-51a3-98b2-06d36fdfd153","edeb4f68-fb13-49ce-a673-16950754ae66"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '02535b48-c865-4089-9026-d9f0b74dd18f' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '221704be-2709-4597-b3f2-6f7ba3ca3a05' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '2547894b-f0a8-48da-85ee-1823bd961956' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '9bbf8324-4a1c-442a-ac7d-f7a57584cd39' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4e7f69aa-d522-4515-b531-6a23a6b44971' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- '1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- 'b1f2da36-fef6-436c-be4a-996aa74344fa' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- 'edeb4f68-fb13-49ce-a673-16950754ae66' ] ],
- type: 5 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-207.9844065474815,-331.33874984345493]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-207.9844065474815,-331.33874984345493]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}],"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-207.9844065474815,-331.33874984345493]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-207.9844065474815,-331.33874984345493]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-207.9844065474815,-331.33874984345493]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-207.9844065474815,-331.33874984345493]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-calling update on data {"type":1,"data":["6e0fa9fd-1a07-4b46-b099-26f596df7406"],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-called update on data {"type":1,"data":["6e0fa9fd-1a07-4b46-b099-26f596df7406"],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.87507487504092,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.87507487504092,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-207.9844065474815,-331.33874984345493]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-207.9844065474815,-331.33874984345493]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -207.9844065474815, -331.33874984345493 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6e0fa9fd-1a07-4b46-b099-26f596df7406"],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-Broadcast : edeb4f68-fb13-49ce-a673-16950754ae66, sending data {"type":1,"data":["6e0fa9fd-1a07-4b46-b099-26f596df7406"],"_id":"edeb4f68-fb13-49ce-a673-16950754ae66"}
-{ _id: 'edeb4f68-fb13-49ce-a673-16950754ae66',
- data: [ '6e0fa9fd-1a07-4b46-b099-26f596df7406' ],
- type: 1 }
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -207.9844065474815, -331.33874984345493 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.87507487504092,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.87507487504092,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 127.87507487504092, -542.3171460028279 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.1659097100569,-276.97920872997497]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.1659097100569,-276.97920872997497]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.1659097100569,-276.97920872997497]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-212.1659097100569,-276.97920872997497]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -212.1659097100569, -276.97920872997497 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 123.69357171246554, -487.957604889348 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-218.43816445391985,-235.16417710422115]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-218.43816445391985,-235.16417710422115]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-218.43816445391985,-235.16417710422115]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-218.43816445391985,-235.16417710422115]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -218.43816445391985, -235.16417710422115 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 123.69357171246554, -487.957604889348 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.42131696860258,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977828,-201.7121518036181]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977828,-201.7121518036181]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977828,-201.7121518036181]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977828,-201.7121518036181]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -224.7104191977828, -201.7121518036181 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-412.6905479629911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-412.6905479629911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-412.6905479629911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-412.6905479629911]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 111.14906222473962, -412.6905479629911 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.61966761649524,-180.8046359907413]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.61966761649524,-180.8046359907413]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.61966761649524,-180.8046359907413]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.61966761649524,-180.8046359907413]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -222.61966761649524, -180.8046359907413 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.2398138060272, -391.7830321501143 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.61966761649524,-166.16937492172747]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.61966761649524,-166.16937492172747]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.2398138060272,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977828,-157.8063685965767]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977828,-157.8063685965767]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -222.61966761649524, -180.8046359907413 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.61966761649524,-166.16937492172747]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-222.61966761649524,-166.16937492172747]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.2398138060272, -377.1477710811005 ] ],
- type: 14 }
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -222.61966761649524, -166.16937492172747 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977828,-157.8063685965767]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-224.7104191977828,-157.8063685965767]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 111.14906222473962, -368.7847647559497 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-226.80117077907062,-155.715617015289]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-226.80117077907062,-155.715617015289]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-226.80117077907062,-155.715617015289]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-226.80117077907062,-155.715617015289]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -226.80117077907062, -155.715617015289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.05831064345182,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.05831064345182,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 111.14906222473962, -368.7847647559497 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.05831064345182,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.05831064345182,-366.694013174662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-230.982673941646,-147.35261069013825]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-230.982673941646,-147.35261069013825]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-230.982673941646,-147.35261069013825]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-230.982673941646,-147.35261069013825]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -230.982673941646, -147.35261069013825 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.87680748087644,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.87680748087644,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.87680748087644,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.87680748087644,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 104.87680748087644, -358.33100684951125 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.07342552293358,-143.17110752756287]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.07342552293358,-143.17110752756287]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.07342552293358,-143.17110752756287]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.07342552293358,-143.17110752756287]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -233.07342552293358, -143.17110752756287 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 102.78605589958886, -354.1495036869359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-124.35434329597365]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-124.35434329597365]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-124.35434329597365]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-124.35434329597365]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -243.52718342937214, -124.35434329597365 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-335.33273945534665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-335.33273945534665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-335.33273945534665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-335.33273945534665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 92.33229799315029, -335.33273945534665 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-251.8901897545229,-105.53757906438443]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-251.8901897545229,-105.53757906438443]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-251.8901897545229,-105.53757906438443]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-251.8901897545229,-105.53757906438443]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -251.8901897545229, -105.53757906438443 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[83.96929166799953,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 83.96929166799953, -316.51597522375744 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.52545082353674,-86.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.52545082353674,-86.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.52545082353674,-86.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.52545082353674,-86.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -266.52545082353674, -86.72081483279521 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 69.33403059898569, -297.6992109921682 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.4363207804695,28.060366411229097]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.4363207804695,28.060366411229097]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.4363207804695,28.060366411229097]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.4363207804695,28.060366411229097]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 177.4363207804695, 28.060366411229097 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.0699603112629,-55.35954111347985]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.0699603112629,-55.35954111347985]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.0699603112629,-55.35954111347985]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.0699603112629,-55.35954111347985]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -279.0699603112629, -55.35954111347985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-266.33793727285286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-266.33793727285286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-266.33793727285286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-266.33793727285286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 56.789521111259546, -266.33793727285286 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.21117443308572,75.1022769902022]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.21117443308572,75.1022769902022]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.21117443308572,75.1022769902022]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[149.21117443308572,75.1022769902022]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 149.21117443308572, 75.1022769902022 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-297.8867245428521,-23.998267394164486]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-297.8867245428521,-23.998267394164486]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-297.8867245428521,-23.998267394164486]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-297.8867245428521,-23.998267394164486]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -297.8867245428521, -23.998267394164486 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.97275687967033,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.97275687967033,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.97275687967033,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.97275687967033,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 37.97275687967033, -234.9766635535375 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[130.3944102014966,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[130.3944102014966,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[130.3944102014966,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[130.3944102014966,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 130.3944102014966, 125.28031494110678 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-310.43123403057814,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-310.43123403057814,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -297.8867245428521, -23.998267394164486 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.428247391944296,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.428247391944296,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.428247391944296,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[25.428247391944296,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-310.43123403057814,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-310.43123403057814,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 25.428247391944296, -201.52463825293455 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.57764596990728,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.57764596990728,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.57764596990728,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.57764596990728,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 111.57764596990728, 169.18609814814818 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -322.9757435183043, 38.72428004446624 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 12.883737904218151, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.4415185979758,206.8196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.4415185979758,206.8196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.4415185979758,206.8196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.4415185979758,206.8196266113266]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 108.4415185979758, 206.8196266113266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,63.81329901991853]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,63.81329901991853]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,63.81329901991853]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,63.81329901991853]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -325.066495099592, 63.81329901991853 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-147.16509713945447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 10.79298632293046, -147.16509713945447 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.4415185979758,235.04477295871038]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.4415185979758,235.04477295871038]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.4415185979758,235.04477295871038]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[108.4415185979758,235.04477295871038]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 108.4415185979758, 235.04477295871038 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,82.63006325150764]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,82.63006325150764]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,82.63006325150764]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,82.63006325150764]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -325.066495099592, 82.63006325150764 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 10.79298632293046, -147.16509713945447 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,253.8615371902997]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,253.8615371902997]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,253.8615371902997]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,253.8615371902997]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 102.16926385411284, 253.8615371902997 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,95.17457273923378]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,95.17457273923378]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,95.17457273923378]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,95.17457273923378]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -329.24799826216736, 95.17457273923378 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-115.80382342013922]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 6.611483160355078, -115.80382342013922 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,260.1337919341627]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,260.1337919341627]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,260.1337919341627]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,260.1337919341627]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 102.16926385411284, 260.1337919341627 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,99.35607590180916]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,99.35607590180916]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,99.35607590180916]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,99.35607590180916]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -329.24799826216736, 99.35607590180916 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 6.611483160355078, -111.62232025756384 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.03313648218113,263.2699193060944]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.03313648218113,263.2699193060944]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.03313648218113,263.2699193060944]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.03313648218113,263.2699193060944]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 99.03313648218113, 263.2699193060944 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-331.33874984345505,101.44682748309674]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-331.33874984345505,101.44682748309674]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-331.33874984345505,101.44682748309674]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-331.33874984345505,101.44682748309674]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -331.33874984345505, 101.44682748309674 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 4.520731579067387, -109.53156867627627 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.03313648218113,256.9976645622312]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.03313648218113,256.9976645622312]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.03313648218113,256.9976645622312]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[99.03313648218113,256.9976645622312]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 99.03313648218113, 256.9976645622312 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-331.33874984345505,97.26532432052136]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-331.33874984345505,97.26532432052136]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-331.33874984345505,97.26532432052136]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-331.33874984345505,97.26532432052136]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -331.33874984345505, 97.26532432052136 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-113.71307183885165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-113.71307183885165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-113.71307183885165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-113.71307183885165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 4.520731579067387, -113.71307183885165 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,244.45315507450505]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,244.45315507450505]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,244.45315507450505]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,244.45315507450505]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 102.16926385411284, 244.45315507450505 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,88.9023179953706]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,88.9023179953706]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,88.9023179953706]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,88.9023179953706]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -329.24799826216736, 88.9023179953706 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-122.07607816400241]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 6.611483160355078, -122.07607816400241 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[105.30539122604432,228.77251821484742]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[105.30539122604432,228.77251821484742]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[105.30539122604432,228.77251821484742]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[105.30539122604432,228.77251821484742]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 105.30539122604432, 228.77251821484742 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.15724668087967,78.44856008893225]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.15724668087967,78.44856008893225]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.15724668087967,78.44856008893225]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.15724668087967,78.44856008893225]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -327.15724668087967, 78.44856008893225 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-132.52983607044075]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-132.52983607044075]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-132.52983607044075]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-132.52983607044075]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 8.70223474164277, -132.52983607044075 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.84990071377047,200.54737186746365]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.84990071377047,200.54737186746365]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.84990071377047,200.54737186746365]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[117.84990071377047,200.54737186746365]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 117.84990071377047, 200.54737186746365 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-318.7942403557289,59.63179585734315]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-318.7942403557289,59.63179585734315]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-318.7942403557289,59.63179585734315]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-318.7942403557289,59.63179585734315]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -318.7942403557289, 59.63179585734315 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[17.065241066793533,-151.34660030202986]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[17.065241066793533,-151.34660030202986]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 8.70223474164277, -132.52983607044075 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[17.065241066793533,-151.34660030202986]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[17.065241066793533,-151.34660030202986]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.5305375734281,178.59448026394284]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.5305375734281,178.59448026394284]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.5305375734281,178.59448026394284]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.5305375734281,178.59448026394284]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 133.5305375734281, 178.59448026394284 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-308.34048244929045,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-308.34048244929045,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-308.34048244929045,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-308.34048244929045,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -308.34048244929045, 44.9965347883292 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[27.518998973231987,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 27.518998973231987, -165.9818613710438 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.93891968922276,156.64158866042203]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.93891968922276,156.64158866042203]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.93891968922276,156.64158866042203]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.93891968922276,156.64158866042203]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 142.93891968922276, 156.64158866042203 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.0682277054275,30.361273719315363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.0682277054275,30.361273719315363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.0682277054275,30.361273719315363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-302.0682277054275,30.361273719315363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -302.0682277054275, 30.361273719315363 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.791253717094946,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 33.791253717094946, -180.61712244005764 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,128.41644231303826]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,128.41644231303826]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,128.41644231303826]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,128.41644231303826]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 152.34730180501742, 128.41644231303826 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,11.544509487726145]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,11.544509487726145]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,11.544509487726145]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,11.544509487726145]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -295.7959729615644, 11.544509487726145 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 33.791253717094946, -180.61712244005764 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,109.59967808144916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,109.59967808144916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,109.59967808144916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,109.59967808144916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 158.61955654888038, 109.59967808144916 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-1]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-1]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-1]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-1]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -291.61446979898903, -1 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 44.2450116235334, -211.978396159373 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,106.46355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,106.46355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,106.46355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,106.46355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 158.61955654888038, 106.46355070951768 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-3.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-3.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-3.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-3.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -291.61446979898903, -3.090751581287691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 44.2450116235334, -214.0691477406607 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,106.46355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,106.46355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,106.46355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,106.46355070951768]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 106.46355070951768 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-3.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-3.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-3.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-3.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -293.7052213802767, -3.090751581287691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-214.0691477406607]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -214.0691477406607 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,109.59967808144916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,109.59967808144916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,109.59967808144916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,109.59967808144916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 109.59967808144916 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-1]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-1]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-1]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-1]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -293.7052213802767, -1 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-211.978396159373]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -211.978396159373 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,112.73580545338064]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,112.73580545338064]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,112.73580545338064]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,112.73580545338064]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 112.73580545338064 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,1.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,1.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,1.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,1.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -293.7052213802767, 1.090751581287691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -209.88764457808531 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,115.87193282531211]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,115.87193282531211]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,115.87193282531211]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,115.87193282531211]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 152.34730180501742, 115.87193282531211 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,3.181503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,3.181503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,3.181503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,3.181503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -295.7959729615644, 3.181503162575382 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.06350846095802, -207.79689299679762 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,119.00806019724382]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,119.00806019724382]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,119.00806019724382]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,119.00806019724382]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 152.34730180501742, 119.00806019724382 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,5.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,5.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,5.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,5.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -295.7959729615644, 5.272254743863073 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.06350846095802, -207.79689299679762 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,122.1441875691753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,122.1441875691753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,122.1441875691753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,122.1441875691753]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 122.1441875691753 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,7.363006325150764]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,7.363006325150764]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,7.363006325150764]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,7.363006325150764]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -293.7052213802767, 7.363006325150764 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-203.61538983422224]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-203.61538983422224]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-203.61538983422224]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-203.61538983422224]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -203.61538983422224 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.61955654888038,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 158.61955654888038, 125.28031494110678 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -291.61446979898903, 9.453757906438454 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 44.2450116235334, -201.52463825293455 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 161.75568392081186, 125.28031494110678 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -289.52371821770134, 9.453757906438454 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 44.2450116235334, -201.52463825293455 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.89181129274357,128.41644231303826]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.89181129274357,128.41644231303826]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.89181129274357,128.41644231303826]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.89181129274357,128.41644231303826]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 164.89181129274357, 128.41644231303826 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-287.43296663641365,11.544509487726145]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-287.43296663641365,11.544509487726145]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-287.43296663641365,11.544509487726145]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-287.43296663641365,11.544509487726145]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -287.43296663641365, 11.544509487726145 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 48.42651478610878, -199.43388667164686 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,134.68869705690145]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,134.68869705690145]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,134.68869705690145]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,134.68869705690145]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 168.02793866467505, 134.68869705690145 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,15.726012650301527]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,15.726012650301527]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,15.726012650301527]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,15.726012650301527]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -285.34221505512596, 15.726012650301527 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-195.25238350907148]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-195.25238350907148]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-195.25238350907148]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-195.25238350907148]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 50.51726636739647, -195.25238350907148 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,137.82482442883293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,137.82482442883293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 168.02793866467505, 134.68869705690145 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,137.82482442883293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,137.82482442883293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,17.816764231589218]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,17.816764231589218]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,17.816764231589218]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,17.816764231589218]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -283.25146347383827, 17.816764231589218 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -193.1616319277838 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,140.9609518007644]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,140.9609518007644]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,140.9609518007644]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,140.9609518007644]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.16406603660653, 140.9609518007644 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,19.90751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,19.90751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,19.90751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,19.90751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -283.25146347383827, 19.90751581287691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-191.0708803464961]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-191.0708803464961]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-191.0708803464961]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-191.0708803464961]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -191.0708803464961 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,150.36933391655907]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,150.36933391655907]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,150.36933391655907]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,150.36933391655907]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.16406603660653, 150.36933391655907 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,26.17977055673998]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,26.17977055673998]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,26.17977055673998]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,26.17977055673998]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -283.25146347383827, 26.17977055673998 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-184.79862560263302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-184.79862560263302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-184.79862560263302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-184.79862560263302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -184.79862560263302 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,156.64158866042203]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,156.64158866042203]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,156.64158866042203]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,156.64158866042203]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.16406603660653, 156.64158866042203 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,30.361273719315363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,30.361273719315363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,30.361273719315363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,30.361273719315363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -283.25146347383827, 30.361273719315363 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -180.61712244005764 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,166.0499707762167]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,166.0499707762167]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,166.0499707762167]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,166.0499707762167]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.16406603660653, 166.0499707762167 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,36.633528463178436]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,36.633528463178436]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,36.633528463178436]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,36.633528463178436]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -283.25146347383827, 36.633528463178436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -180.61712244005764 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.16406603660653, 169.18609814814818 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -283.25146347383827, 38.72428004446624 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,172.32222552007988]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,172.32222552007988]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,172.32222552007988]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,172.32222552007988]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.16406603660653, 172.32222552007988 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -283.25146347383827, 40.81503162575382 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -170.1633645336192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,178.59448026394284]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,178.59448026394284]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,178.59448026394284]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[171.16406603660653,178.59448026394284]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 171.16406603660653, 178.59448026394284 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -283.25146347383827, 44.9965347883292 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -170.1633645336192 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,181.73060763587432]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,181.73060763587432]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,181.73060763587432]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,181.73060763587432]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 168.02793866467505, 181.73060763587432 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,47.087286369617004]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,47.087286369617004]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,47.087286369617004]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,47.087286369617004]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -285.34221505512596, 47.087286369617004 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 50.51726636739647, -163.891109789756 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.89181129274357,184.86673500780603]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.89181129274357,184.86673500780603]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.89181129274357,184.86673500780603]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.89181129274357,184.86673500780603]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 164.89181129274357, 184.86673500780603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-287.43296663641365,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-287.43296663641365,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-287.43296663641365,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-287.43296663641365,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -287.43296663641365, 49.17803795090458 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[48.42651478610878,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 48.42651478610878, -161.80035820846842 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,188.0028623797375]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,188.0028623797375]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,188.0028623797375]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,188.0028623797375]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 161.75568392081186, 188.0028623797375 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,51.268789532192386]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,51.268789532192386]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,51.268789532192386]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,51.268789532192386]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -289.52371821770134, 51.268789532192386 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 46.33576320482109, -159.70960662718062 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 152.34730180501742, 194.27511712360047 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.06350846095802, -155.52810346460524 ] ],
- type: 14 }
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -289.52371821770134, 51.268789532192386 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-calling update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-called update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-Broadcast : 6c3acd53-3a16-59b2-bc11-62c6d79b2cea, sending data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{ _id: '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- data: 'Prototype',
- type: 2 }
-calling update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-called update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-calling update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-called update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-calling update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-called update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-calling update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-called update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-calling update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-called update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-calling update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-called update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-calling update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-called update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-calling update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-called update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-calling update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-called update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-calling update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-called update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-calling update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-called update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-calling update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-called update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-calling update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-called update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-calling update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-called update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-calling update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-called update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-calling update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-called update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-calling update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-called update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-calling update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-called update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-calling update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-called update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-calling update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-called update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-calling update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-called update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-calling update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-called update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-calling update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-called update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-calling update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-called update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-calling update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-called update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-calling update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-called update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-calling update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-called update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-calling update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-called update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-calling update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-called update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-calling update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-called update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-calling update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-called update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-calling update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-called update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-calling update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-called update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-calling update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-called update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-calling update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-called update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-calling update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-called update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-calling update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-called update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-calling update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-called update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-calling update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-called update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-calling update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-called update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-calling update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-called update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-calling update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-called update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-Broadcast : 7b71638c-05b8-5573-9aa5-c737c9406a86, sending data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-{ _id: '7b71638c-05b8-5573-9aa5-c737c9406a86',
- data: 'X',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-Broadcast : 13a3cc01-c286-57e1-8746-baa3ced34e76, sending data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-{ _id: '13a3cc01-c286-57e1-8746-baa3ced34e76',
- data: 'Y',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-Broadcast : 911954a3-bebc-5b20-81f3-3091a2e11907, sending data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-{ _id: '911954a3-bebc-5b20-81f3-3091a2e11907',
- data: 'Page',
- type: 2 }
-{ _id: '4cd12c43-3240-58dd-88bf-ce978edb2fde',
- data: 'Author',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-Broadcast : 4cd12c43-3240-58dd-88bf-ce978edb2fde, sending data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-Broadcast : 51529209-4838-51c5-a520-0044fddf139c, sending data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-{ _id: '51529209-4838-51c5-a520-0044fddf139c',
- data: 'Title',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-Broadcast : 8efd3b8a-ce6c-5f44-9085-90a8b7cd2202, sending data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-Broadcast : f9f69d93-df75-5021-883a-efac00502b09, sending data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-{ _id: '048d25ac-b841-5728-a599-e3a432137881',
- data: 'PanY',
- type: 2 }
-{ _id: '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- data: 'PanX',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-Broadcast : 048d25ac-b841-5728-a599-e3a432137881, sending data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-{ _id: 'f9f69d93-df75-5021-883a-efac00502b09',
- data: 'Scale',
- type: 2 }
-{ _id: 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- data: 'NativeHeight',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-Broadcast : ac03e21a-ec21-5402-a1ae-b66a7d8942a1, sending data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-Broadcast : 2e6a5061-4d6c-5895-8022-9b4f4fc7118b, sending data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-{ _id: '2e6a5061-4d6c-5895-8022-9b4f4fc7118b',
- data: 'NativeWidth',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-Broadcast : 5c207bd2-0390-5c35-8972-06d185f387fb, sending data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-Broadcast : 3559ca27-b3fa-5407-b822-07a1c9a0664c, sending data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-{ _id: '2a238eef-0bbb-5b78-b173-37b574fec97f',
- data: 'Height',
- type: 2 }
-{ _id: '5c207bd2-0390-5c35-8972-06d185f387fb',
- data: 'Width',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-Broadcast : 2a238eef-0bbb-5b78-b173-37b574fec97f, sending data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-{ _id: '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- data: 'ZIndex',
- type: 2 }
-{ _id: 'c4bbea89-4e57-551a-98fc-af3b6dacccb1',
- data: 'Annotations',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-Broadcast : c4bbea89-4e57-551a-98fc-af3b6dacccb1, sending data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-Broadcast : 530318f9-9b84-5b90-b926-530590cdd5c3, sending data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-{ _id: '530318f9-9b84-5b90-b926-530590cdd5c3',
- data: 'Data',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-Broadcast : 771c0a88-bd02-5e92-953f-e9042a191928, sending data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-Broadcast : bf70b65d-62da-53e6-82b2-1b849418dc2e, sending data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-{ _id: '32a999d2-06a3-534f-a12e-c2d710adf3e6',
- data: 'Layout',
- type: 2 }
-{ _id: '771c0a88-bd02-5e92-953f-e9042a191928',
- data: 'ViewType',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-Broadcast : 32a999d2-06a3-534f-a12e-c2d710adf3e6, sending data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-{ _id: 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- data: 'BackgroundColor',
- type: 2 }
-{ _id: 'f2b3b5fc-7f38-5783-9218-badc8dcab185',
- data: 'OverlayLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-Broadcast : f2b3b5fc-7f38-5783-9218-badc8dcab185, sending data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-Broadcast : 2588a9ff-2129-5018-84c9-7743d470a4cf, sending data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-{ _id: '2588a9ff-2129-5018-84c9-7743d470a4cf',
- data: 'BackgroundLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-Broadcast : d0c33158-59b4-5c4a-8a27-b24570e955f0, sending data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-Broadcast : 249e18fb-d914-5c26-a367-64a52fdd1daa, sending data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-{ _id: 'eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b',
- data: 'LayoutFields',
- type: 2 }
-{ _id: 'd0c33158-59b4-5c4a-8a27-b24570e955f0',
- data: 'LayoutKeys',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-Broadcast : eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b, sending data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-{ _id: '249e18fb-d914-5c26-a367-64a52fdd1daa',
- data: 'SchemaColumns',
- type: 2 }
-{ _id: '29e3ad9f-39a2-5fe3-9258-08977e55d7ee',
- data: 'Caption',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-Broadcast : 29e3ad9f-39a2-5fe3-9258-08977e55d7ee, sending data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-Broadcast : e51646f0-30ef-5838-8371-9a88b0bc2a30, sending data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-{ _id: 'e51646f0-30ef-5838-8371-9a88b0bc2a30',
- data: 'SchemaSplitPercentage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-Broadcast : 87bcf74b-a9de-5523-a148-39e5f7e35c5f, sending data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-Broadcast : ebdc0250-58e7-5b19-9061-fd9a60d42e07, sending data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-{ _id: '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- data: 'ActiveWorkspace',
- type: 2 }
-{ _id: '87bcf74b-a9de-5523-a148-39e5f7e35c5f',
- data: 'ActiveFrame',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-Broadcast : 77aeae9e-9bc5-5318-b4cf-219d29204f73, sending data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-{ _id: 'ebdc0250-58e7-5b19-9061-fd9a60d42e07',
- data: 'ActiveDB',
- type: 2 }
-{ _id: '91ed6e52-c6aa-57aa-b98b-04602411c3d3',
- data: 'LinkedToDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-Broadcast : 91ed6e52-c6aa-57aa-b98b-04602411c3d3, sending data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-Broadcast : db106646-3e58-5a71-8121-84753b400f96, sending data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-{ _id: 'db106646-3e58-5a71-8121-84753b400f96',
- data: 'DocumentText',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-Broadcast : 8b33881b-415d-5c37-9270-f26cc3a7935e, sending data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-Broadcast : ae45a701-5adf-5ca2-822a-27127becbb91, sending data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-{ _id: '0c28246e-1e14-5c7c-897f-916c5e8695b8',
- data: 'LinkDescription',
- type: 2 }
-{ _id: '8b33881b-415d-5c37-9270-f26cc3a7935e',
- data: 'LinkedFromDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-Broadcast : 0c28246e-1e14-5c7c-897f-916c5e8695b8, sending data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-{ _id: 'ae45a701-5adf-5ca2-822a-27127becbb91',
- data: 'LinkTag',
- type: 2 }
-{ _id: '10fe3599-dd7d-5e3e-9a28-23c624c99140',
- data: 'CurPage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-Broadcast : 10fe3599-dd7d-5e3e-9a28-23c624c99140, sending data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-Broadcast : 22b8e67b-50b6-5e6e-9f3d-9810b8d07619, sending data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-{ _id: '22b8e67b-50b6-5e6e-9f3d-9810b8d07619',
- data: 'Thumbnail',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-Broadcast : 7860dbf1-c302-50ac-9f2f-4106c641dd8a, sending data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-Broadcast : 43606ee9-0825-51a3-98b2-06d36fdfd153, sending data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-{ _id: '59b58624-916f-50a0-8efa-7003a805bfad',
- data: 'Ink',
- type: 2 }
-{ _id: '7860dbf1-c302-50ac-9f2f-4106c641dd8a',
- data: 'NumPages',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-Broadcast : 59b58624-916f-50a0-8efa-7003a805bfad, sending data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-{ _id: '43606ee9-0825-51a3-98b2-06d36fdfd153',
- data: 'Cursors',
- type: 2 }
-{ _id: '9cca7b47-80dc-5c45-8090-15f8e9082020',
- data: 'Archives',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-Broadcast : 9cca7b47-80dc-5c45-8090-15f8e9082020, sending data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-Broadcast : 7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5, sending data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-{ _id: '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- data: 'OptionalRightCollection',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-Broadcast : 1daeded7-02d2-50b9-8da8-1f1f36f7cc67, sending data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-{ _id: 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- data: 'Workspaces',
- type: 2 }
-{ _id: '1daeded7-02d2-50b9-8da8-1f1f36f7cc67',
- data: 'Updated',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-Broadcast : d5aa5533-2f9b-5ef2-bd26-787dcbccaca2, sending data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-calling update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-called update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-Broadcast : f98e47b3-f8ee-4117-86fb-6948460f5cc9, sending data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{ _id: 'f98e47b3-f8ee-4117-86fb-6948460f5cc9',
- data:
- [ [ 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- 'eec28478-5239-485f-a4ef-f1b9716fab89' ],
- [ '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- 'd9c82294-7b0b-4dd9-9cdc-b5f00bc84408' ],
- [ '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- '66c1ad11-6717-4186-b5bd-ac182f1c4d3e' ] ],
- type: 5 }
-S sending : 52b01269-5377-480c-87c8-1155d86cc5ee, receiving Get Field with data {"_id":"52b01269-5377-480c-87c8-1155d86cc5ee","data":3,"type":0}
-S sending : 8dd0dbc7-bce1-4c1f-9d57-46090545a413, receiving Get Field with data {"_id":"8dd0dbc7-bce1-4c1f-9d57-46090545a413","data":1,"type":0}
-S sending : b8c25898-ab6c-438d-a7e2-85b9c40a4fe6, receiving Get Field with data {"_id":"b8c25898-ab6c-438d-a7e2-85b9c40a4fe6","data":54.69876952997183,"type":0}
-S sending : c968815c-6ac5-43ad-9592-e31f4587bf1e, receiving Get Field with data {"_id":"c968815c-6ac5-43ad-9592-e31f4587bf1e","data":-160.75498241782444,"type":0}
-S sending : 5d676023-b2f3-48c2-924f-487aae09368e, receiving Get Field with data {"_id":"5d676023-b2f3-48c2-924f-487aae09368e","data":0.4782969000000001,"type":0}
-S sending : b1f2da36-fef6-436c-be4a-996aa74344fa, receiving Get Field with data {"_id":"b1f2da36-fef6-436c-be4a-996aa74344fa","data":-1,"type":0}
-S sending : 02535b48-c865-4089-9026-d9f0b74dd18f, receiving Get Field with data {"_id":"02535b48-c865-4089-9026-d9f0b74dd18f","data":-196.19142022455082,"type":0}
-S sending : 221704be-2709-4597-b3f2-6f7ba3ca3a05, receiving Get Field with data {"_id":"221704be-2709-4597-b3f2-6f7ba3ca3a05","data":-571.5876681408556,"type":0}
-S sending : 2547894b-f0a8-48da-85ee-1823bd961956, receiving Get Field with data {"_id":"2547894b-f0a8-48da-85ee-1823bd961956","data":1062.1018032941463,"type":0}
-S sending : 9bbf8324-4a1c-442a-ac7d-f7a57584cd39, receiving Get Field with data {"_id":"9bbf8324-4a1c-442a-ac7d-f7a57584cd39","data":719.2185439629652,"type":0}
-S sending : cfe7bf1f-062c-4992-a9e4-553241619bc4, receiving Get Field with data {"_id":"cfe7bf1f-062c-4992-a9e4-553241619bc4","data":1,"type":0}
-S sending : 4e7f69aa-d522-4515-b531-6a23a6b44971, receiving Get Field with data {"_id":"4e7f69aa-d522-4515-b531-6a23a6b44971","data":0,"type":0}
-S sending : 1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c, receiving Get Field with data {"_id":"1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c","data":0,"type":0}
-S sending : ba3184a2-b966-432b-b8bd-83ae68ba1c8f, receiving Get Field with data {"_id":"ba3184a2-b966-432b-b8bd-83ae68ba1c8f","data":1,"type":0}
-S sending : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Get Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","data":0,"type":0}
-S sending : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Get Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","data":0,"type":0}
-S sending : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Get Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","data":0,"type":0}
-S sending : 42373536-4991-4b59-aaf5-34559e43adef, receiving Get Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","data":-398.02750749824247,"type":0}
-S sending : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Get Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","data":-74.73311872096588,"type":0}
-S sending : 47f3540c-7ded-4c5a-a35e-67b8770c7564, receiving Get Field with data {"_id":"47f3540c-7ded-4c5a-a35e-67b8770c7564","data":200,"type":0}
-S sending : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Get Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","data":2,"type":0}
-S sending : 9c48c01b-ff87-4633-ab32-620bbe191b04, receiving Get Field with data {"_id":"9c48c01b-ff87-4633-ab32-620bbe191b04","data":200,"type":0}
-S sending : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Get Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","data":-103.70194957048432,"type":0}
-S sending : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Get Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","data":299.5,"type":0}
-S sending : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Get Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","data":-168.80171170567712,"type":0}
-S sending : 4233a5b1-f703-44d8-a4f1-55a230db04e7, receiving Get Field with data {"_id":"4233a5b1-f703-44d8-a4f1-55a230db04e7","data":200,"type":0}
-S sending : 8a50fbb3-768f-4f03-84b5-fc84aaa4f21c, receiving Get Field with data {"_id":"8a50fbb3-768f-4f03-84b5-fc84aaa4f21c","data":200,"type":0}
-S sending : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Get Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","data":3,"type":0}
-S sending : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Get Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","data":299.5,"type":0}
-S sending : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Get Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","data":142.33700820255547,"type":0}
-S sending : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Get Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","data":-4.18636328696482,"type":0}
-S sending : 9d04275c-0bc8-4e43-8142-034824b2deae, receiving Get Field with data {"_id":"9d04275c-0bc8-4e43-8142-034824b2deae","data":200,"type":0}
-S sending : f2822f08-9fd6-4816-ba61-0dc0ea45a0c0, receiving Get Field with data {"_id":"f2822f08-9fd6-4816-ba61-0dc0ea45a0c0","data":200,"type":0}
-S sending : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Get Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","data":4,"type":0}
-S sending : 42d06ec3-2f96-4bf0-af73-568f20eb4ec5, receiving Get Field with data {"_id":"42d06ec3-2f96-4bf0-af73-568f20eb4ec5","data":300,"type":0}
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":300}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 300,
- type: 0 }
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 300,
- type: 0 }
-Incoming : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Set Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-calling update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-called update on data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-Broadcast : 3585fbf3-f32c-497f-aae6-9afcba185724, sending data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","type":0,"data":299.5}
-{ _id: '3585fbf3-f32c-497f-aae6-9afcba185724',
- data: 299.5,
- type: 0 }
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 299.5,
- type: 0 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 194.27511712360047 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -293.7052213802767, 55.45029269476777 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -155.52810346460524 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 161.75568392081186, 194.27511712360047 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -289.52371821770134, 55.45029269476777 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 46.33576320482109, -155.52810346460524 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.2478871945525,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.2478871945525,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.2478871945525,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.2478871945525,194.27511712360047]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 265.2478871945525, 194.27511712360047 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-220.52891603520743,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-220.52891603520743,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-220.52891603520743,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-220.52891603520743,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -220.52891603520743, 55.45029269476777 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.330565387315,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.330565387315,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.330565387315,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.330565387315,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.81503162575359,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.81503162575359,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 376.674513048276, -155.52810346460524 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.81503162575359,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.81503162575359,55.45029269476777]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 376.674513048276, -155.52810346460524 ] ],
- type: 14 }
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.81503162575359, 55.45029269476777 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,61.72254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,61.72254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,61.72254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,61.72254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 195.53064864104272, 61.72254743863073 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 531.3901300635652, -149.25584872074228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[358.6092719814824,61.72254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[358.6092719814824,61.72254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[358.6092719814824,61.72254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[358.6092719814824,61.72254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 358.6092719814824, 61.72254743863073 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-149.25584872074228]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 694.4687534040048, -149.25584872074228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[953.7219494836785,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 953.7219494836785, -170.1633645336192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[985.0832232029937,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[985.0832232029937,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[985.0832232029937,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[985.0832232029937,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 985.0832232029937, -807.8425968263645 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[562.7514037828804,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 562.7514037828804, -623.8564576730478 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-111.80983380824773,-293.7052213802765]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-111.80983380824773,-293.7052213802765]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-111.80983380824773,-293.7052213802765]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-111.80983380824773,-293.7052213802765]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -111.80983380824773, -293.7052213802765 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[224.0496476142747,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[224.0496476142747,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 562.7514037828804, -623.8564576730478 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[224.0496476142747,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[224.0496476142747,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,-251.89018975452268]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,-251.89018975452268]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,-251.89018975452268]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-283.25146347383827,-251.89018975452268]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -283.25146347383827, -251.89018975452268 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[52.608017948684164,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 52.608017948684164, -462.8685859138957 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-316.7034887744412,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-316.7034887744412,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-316.7034887744412,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-316.7034887744412,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -316.7034887744412, -243.52718342937192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.155992648081224,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.155992648081224,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.155992648081224,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.155992648081224,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 19.155992648081224, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-318.7942403557289,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-318.7942403557289,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-318.7942403557289,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-318.7942403557289,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -318.7942403557289, -243.52718342937192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[17.065241066793533,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[17.065241066793533,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[17.065241066793533,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[17.065241066793533,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 17.065241066793533, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -322.9757435183043, -243.52718342937192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 12.883737904218151, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.066495099592,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -325.066495099592, -243.52718342937192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[10.79298632293046,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 10.79298632293046, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.15724668087967,-245.6179350106596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.15724668087967,-245.6179350106596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.15724668087967,-245.6179350106596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.15724668087967,-245.6179350106596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -327.15724668087967, -245.6179350106596 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 8.70223474164277, -456.5963311700326 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,-245.6179350106596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,-245.6179350106596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,-245.6179350106596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-322.9757435183043,-245.6179350106596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -322.9757435183043, -245.6179350106596 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.883737904218151,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 12.883737904218151, -456.5963311700326 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-253.98094133581037]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-253.98094133581037]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-253.98094133581037]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.61446979898903,-253.98094133581037]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -291.61446979898903, -253.98094133581037 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[44.2450116235334,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 44.2450116235334, -464.9593374951834 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-264.4346992422488]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-264.4346992422488]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-264.4346992422488]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-264.4346992422488]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -243.52718342937214, -264.4346992422488 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 92.33229799315029, -475.41309540162183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-239.34568026679676,-266.5254508235365]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-239.34568026679676,-266.5254508235365]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-239.34568026679676,-266.5254508235365]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-239.34568026679676,-266.5254508235365]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -239.34568026679676, -266.5254508235365 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 96.51380115572567, -477.5038469829095 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-260.25319607967344]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-260.25319607967344]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-260.25319607967344]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-243.52718342937214,-260.25319607967344]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -243.52718342937214, -260.25319607967344 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-471.23159223904645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 92.33229799315029, -471.23159223904645 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-214.25666129134424]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-214.25666129134424]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-214.25666129134424]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,-214.25666129134424]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -293.7052213802767, -214.25666129134424 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-425.23505745071725]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -425.23505745071725 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.51678779435963,-143.17110752756287]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.51678779435963,-143.17110752756287]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.51678779435963,-143.17110752756287]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-381.51678779435963,-143.17110752756287]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -381.51678779435963, -143.17110752756287 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.657306371837194,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.657306371837194,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.657306371837194,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.657306371837194,-354.1495036869359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -45.657306371837194, -354.1495036869359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-454.6930931394288,-74.17630534506907]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-454.6930931394288,-74.17630534506907]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-454.6930931394288,-74.17630534506907]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-454.6930931394288,-74.17630534506907]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -454.6930931394288, -74.17630534506907 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.83361171690638,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.83361171690638,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.83361171690638,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.83361171690638,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -118.83361171690638, -285.1547015044421 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.14338583419635,-7.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.14338583419635,-7.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.14338583419635,-7.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.14338583419635,-7.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -511.14338583419635, -7.272254743863073 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -118.83361171690638, -285.1547015044421 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.0509016470733,21.9982673941646]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.0509016470733,21.9982673941646]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.0509016470733,21.9982673941646]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.0509016470733,21.9982673941646]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -532.0509016470733, 21.9982673941646 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-188.9801287652084]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-188.9801287652084]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-188.9801287652084]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-188.9801287652084]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -196.19142022455082, -188.9801287652084 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-525.7786469032102,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-525.7786469032102,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-525.7786469032102,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-525.7786469032102,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -525.7786469032102, 32.452025300603054 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-189.91916548068775,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -189.91916548068775, -178.52637085876995 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.14338583419635,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.14338583419635,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.14338583419635,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.14338583419635,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -511.14338583419635, 40.81503162575382 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-175.28390441167392,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -175.28390441167392, -170.1633645336192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651825,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651825,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651825,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-496.5081247651825,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -496.5081247651825, 44.9965347883292 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-160.64864334266008,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -160.64864334266008, -165.9818613710438 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-483.96361527745637,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-483.96361527745637,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-483.96361527745637,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-483.96361527745637,44.9965347883292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -483.96361527745637, 44.9965347883292 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-148.10413385493393,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-148.10413385493393,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-148.10413385493393,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-148.10413385493393,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -148.10413385493393, -165.9818613710438 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715496,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715496,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715496,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715496,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -467.23760262715496, 49.17803795090458 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-131.37812120463252,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-131.37812120463252,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-131.37812120463252,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-131.37812120463252,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -131.37812120463252, -161.80035820846842 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-450.51158997685343,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-450.51158997685343,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-450.51158997685343,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-450.51158997685343,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -450.51158997685343, 49.17803795090458 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-114.652108554331,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -114.652108554331, -161.80035820846842 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-431.6948257452642,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-431.6948257452642,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-431.6948257452642,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-431.6948257452642,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -431.6948257452642, 49.17803795090458 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-95.83534432274178,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-95.83534432274178,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-95.83534432274178,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-95.83534432274178,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -95.83534432274178, -161.80035820846842 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.24106783882576,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.24106783882576,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.24106783882576,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.24106783882576,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -421.24106783882576, 49.17803795090458 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -85.38158641630332, -161.80035820846842 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-402.42430360723654,42.90578320704162]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-402.42430360723654,42.90578320704162]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-402.42430360723654,42.90578320704162]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-402.42430360723654,42.90578320704162]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -402.42430360723654, 42.90578320704162 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.5648221847141,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.5648221847141,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.5648221847141,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.5648221847141,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -66.5648221847141, -168.07261295233138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[36.310589043550635,159.77771603235374]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[36.310589043550635,159.77771603235374]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[36.310589043550635,159.77771603235374]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[36.310589043550635,159.77771603235374]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 36.310589043550635, 159.77771603235374 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-373.15378146920887,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-373.15378146920887,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-373.15378146920887,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-373.15378146920887,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -373.15378146920887, 32.452025300603054 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-37.29430004668643,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-37.29430004668643,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-37.29430004668643,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-37.29430004668643,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -37.29430004668643, -178.52637085876995 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,134.68869705690145]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,134.68869705690145]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,134.68869705690145]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.16926385411284,134.68869705690145]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 102.16926385411284, 134.68869705690145 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,15.726012650301527]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,15.726012650301527]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,15.726012650301527]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.24799826216736,15.726012650301527]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -329.24799826216736, 15.726012650301527 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-195.25238350907148]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-195.25238350907148]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -37.29430004668643, -178.52637085876995 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-195.25238350907148]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-195.25238350907148]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,112.73580545338064]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,112.73580545338064]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,112.73580545338064]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,112.73580545338064]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 152.34730180501742, 112.73580545338064 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,1.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,1.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,1.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-295.7959729615644,1.090751581287691]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -295.7959729615644, 1.090751581287691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[40.06350846095802,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 40.06350846095802, -209.88764457808531 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.5724481524012,93.91904122179153]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.5724481524012,93.91904122179153]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.5724481524012,93.91904122179153]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.5724481524012,93.91904122179153]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 180.5724481524012, 93.91904122179153 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.9792087299752,-11.45375790643834]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.9792087299752,-11.45375790643834]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.9792087299752,-11.45375790643834]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.9792087299752,-11.45375790643834]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -276.9792087299752, -11.45375790643834 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-222.43215406581135]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 58.88027269254724, -222.43215406581135 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.3892123839903,81.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.3892123839903,81.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.3892123839903,81.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.3892123839903,81.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.3892123839903, 81.37453173406539 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-264.43469924224905,-19.816764231589104]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-264.43469924224905,-19.816764231589104]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-264.43469924224905,-19.816764231589104]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-264.43469924224905,-19.816764231589104]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -264.43469924224905, -19.816764231589104 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 71.42478218027338, -230.7951603909621 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.3892123839903,81.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.3892123839903,81.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.3892123839903,81.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.3892123839903,81.37453173406539]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.3892123839903, 81.37453173406539 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-264.43469924224905,-19.816764231589104]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-264.43469924224905,-19.816764231589104]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-264.43469924224905,-19.816764231589104]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-264.43469924224905,-19.816764231589104]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -264.43469924224905, -19.816764231589104 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 71.42478218027338, -230.7951603909621 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.25308501205882,84.51065910599687]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.25308501205882,84.51065910599687]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.25308501205882,84.51065910599687]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.25308501205882,84.51065910599687]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 196.25308501205882, 84.51065910599687 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.52545082353674,-17.726012650301413]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.52545082353674,-17.726012650301413]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.52545082353674,-17.726012650301413]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.52545082353674,-17.726012650301413]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -266.52545082353674, -17.726012650301413 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-228.70440880967442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-228.70440880967442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 71.42478218027338, -230.7951603909621 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-228.70440880967442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-228.70440880967442]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.11695764012734,100.19129596565449]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.11695764012734,100.19129596565449]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.11695764012734,100.19129596565449]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.11695764012734,100.19129596565449]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.11695764012734, 100.19129596565449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-268.61620240482443,-7.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-268.61620240482443,-7.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-268.61620240482443,-7.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-268.61620240482443,-7.272254743863073]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -268.61620240482443, -7.272254743863073 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[67.243279017698,-218.25065090323608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 67.243279017698, -218.25065090323608 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.5724481524012,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.5724481524012,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.5724481524012,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.5724481524012,125.28031494110678]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 180.5724481524012, 125.28031494110678 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.9792087299752,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.9792087299752,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.9792087299752,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-276.9792087299752,9.453757906438454]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -276.9792087299752, 9.453757906438454 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 58.88027269254724, -201.52463825293455 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,147.2332065446276]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,147.2332065446276]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,147.2332065446276]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[168.02793866467505,147.2332065446276]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 168.02793866467505, 147.2332065446276 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,24.08901897545229]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,24.08901897545229]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,24.08901897545229]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-285.34221505512596,24.08901897545229]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -285.34221505512596, 24.08901897545229 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 58.88027269254724, -201.52463825293455 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,159.77771603235374]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,159.77771603235374]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,159.77771603235374]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,159.77771603235374]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 161.75568392081186, 159.77771603235374 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,32.452025300603054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -289.52371821770134, 32.452025300603054 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 46.33576320482109, -178.52637085876995 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081186,169.18609814814818]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 161.75568392081186, 169.18609814814818 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-289.52371821770134,38.72428004446624]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -289.52371821770134, 38.72428004446624 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 46.33576320482109, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,172.32222552007988]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,172.32222552007988]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,172.32222552007988]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,172.32222552007988]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 172.32222552007988 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,40.81503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -293.7052213802767, 40.81503162575382 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -170.1633645336192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,166.0499707762167]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,166.0499707762167]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,166.0499707762167]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,166.0499707762167]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 166.0499707762167 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,36.633528463178436]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,36.633528463178436]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,36.633528463178436]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,36.633528463178436]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -293.7052213802767, 36.633528463178436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -174.34486769619457 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,153.50546128849055]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,153.50546128849055]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,153.50546128849055]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,153.50546128849055]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 153.50546128849055 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,28.270522138027673]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,28.270522138027673]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,28.270522138027673]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-293.7052213802767,28.270522138027673]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -293.7052213802767, 28.270522138027673 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.15426004224571,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.15426004224571, -182.70787402134533 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-Broadcast : 8e5f8b96-0193-4acb-b426-918c42e2cbd4, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-{ _id: '8e5f8b96-0193-4acb-b426-918c42e2cbd4',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'a8235956-e798-4904-b97a-5395111c95fe',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd' ],
- type: 1 }
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-413.414291732052}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-413.414291732052}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-413.414291732052}
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-915.0277408479336}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-915.0277408479336}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-915.0277408479336}
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: -74.73311872096588,
- type: 0 }
-Incoming : 80cee8dd-24d8-4e50-9911-0d691c87217d, receiving Set Field with data {"_id":"80cee8dd-24d8-4e50-9911-0d691c87217d","type":0,"data":1}
-calling update on data {"_id":"80cee8dd-24d8-4e50-9911-0d691c87217d","type":0,"data":1}
-called update on data {"_id":"80cee8dd-24d8-4e50-9911-0d691c87217d","type":0,"data":1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"],["43606ee9-0825-51a3-98b2-06d36fdfd153","edeb4f68-fb13-49ce-a673-16950754ae66"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","80cee8dd-24d8-4e50-9911-0d691c87217d"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"],["43606ee9-0825-51a3-98b2-06d36fdfd153","edeb4f68-fb13-49ce-a673-16950754ae66"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","80cee8dd-24d8-4e50-9911-0d691c87217d"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,153.50546128849072]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,153.50546128849072]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-812.0240999889398]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-812.0240999889398]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-915.0277408479336}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-915.0277408479336}
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: -398.02750749824247,
- type: 0 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"80cee8dd-24d8-4e50-9911-0d691c87217d"}],"ok":1}
-Wrote {"_id":"80cee8dd-24d8-4e50-9911-0d691c87217d","type":0,"data":1}
-Broadcast : 80cee8dd-24d8-4e50-9911-0d691c87217d, sending data {"_id":"80cee8dd-24d8-4e50-9911-0d691c87217d","type":0,"data":1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-413.414291732052}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-413.414291732052}
-{ _id: '80cee8dd-24d8-4e50-9911-0d691c87217d', data: 1, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"],["43606ee9-0825-51a3-98b2-06d36fdfd153","edeb4f68-fb13-49ce-a673-16950754ae66"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","80cee8dd-24d8-4e50-9911-0d691c87217d"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-Broadcast : a8235956-e798-4904-b97a-5395111c95fe, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","1429712e-036b-40a7-8603-5878cf6136f8"],["7b71638c-05b8-5573-9aa5-c737c9406a86","02535b48-c865-4089-9026-d9f0b74dd18f"],["13a3cc01-c286-57e1-8746-baa3ced34e76","221704be-2709-4597-b3f2-6f7ba3ca3a05"],["5c207bd2-0390-5c35-8972-06d185f387fb","2547894b-f0a8-48da-85ee-1823bd961956"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9bbf8324-4a1c-442a-ac7d-f7a57584cd39"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4e7f69aa-d522-4515-b531-6a23a6b44971"],["048d25ac-b841-5728-a599-e3a432137881","1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c"],["911954a3-bebc-5b20-81f3-3091a2e11907","b1f2da36-fef6-436c-be4a-996aa74344fa"],["43606ee9-0825-51a3-98b2-06d36fdfd153","edeb4f68-fb13-49ce-a673-16950754ae66"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","80cee8dd-24d8-4e50-9911-0d691c87217d"]],"_id":"a8235956-e798-4904-b97a-5395111c95fe"}
-{ _id: 'a8235956-e798-4904-b97a-5395111c95fe',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '1429712e-036b-40a7-8603-5878cf6136f8' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '02535b48-c865-4089-9026-d9f0b74dd18f' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '221704be-2709-4597-b3f2-6f7ba3ca3a05' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '2547894b-f0a8-48da-85ee-1823bd961956' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '9bbf8324-4a1c-442a-ac7d-f7a57584cd39' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4e7f69aa-d522-4515-b531-6a23a6b44971' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- '1f3cb8d3-39ad-4e66-9e2f-ceb0fd27460c' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- 'b1f2da36-fef6-436c-be4a-996aa74344fa' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- 'edeb4f68-fb13-49ce-a673-16950754ae66' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- '80cee8dd-24d8-4e50-9911-0d691c87217d' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,153.50546128849072]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,153.50546128849072]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-812.0240999889398]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-812.0240999889398]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 153.50546128849072 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -309.09200561408613, -812.0240999889398 ] ],
- type: 14 }
-S sending : 80cee8dd-24d8-4e50-9911-0d691c87217d, receiving Get Field with data {"_id":"80cee8dd-24d8-4e50-9911-0d691c87217d","data":1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,144.09707917269606]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,144.09707917269606]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,144.09707917269606]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.4834291769489,144.09707917269606]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.4834291769489, 144.09707917269606 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-818.2963547328029]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-818.2963547328029]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-818.2963547328029]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-309.09200561408613,-818.2963547328029]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -309.09200561408613, -818.2963547328029 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.6195565488805,144.09707917269606]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.6195565488805,144.09707917269606]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.6195565488805,144.09707917269606]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[158.6195565488805,144.09707917269606]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 158.6195565488805, 144.09707917269606 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-818.2963547328029]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-818.2963547328029]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-818.2963547328029]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-818.2963547328029]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -307.00125403279844, -818.2963547328029 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081198,147.23320654462765]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081198,147.23320654462765]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081198,147.23320654462765]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.75568392081198,147.23320654462765]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 161.75568392081198, 147.23320654462765 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-816.2056031515152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-816.2056031515152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-816.2056031515152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-816.2056031515152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -304.91050245151075, -816.2056031515152 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[189.98083026819586,172.32222552007983]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[189.98083026819586,172.32222552007983]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[189.98083026819586,172.32222552007983]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[189.98083026819586,172.32222552007983]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 189.98083026819586, 172.32222552007983 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-286.09373821992153,-799.4795905012138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -286.09373821992153, -799.4795905012138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.56725033489488,219.36413609905293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.56725033489488,219.36413609905293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.56725033489488,219.36413609905293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.56725033489488,219.36413609905293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 249.56725033489488, 219.36413609905293 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-246.3694581754554,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -246.3694581754554, -768.1183167818983 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-200.3729233871262,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -200.3729233871262, -715.8495272497062 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-129.28736962334483,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -129.28736962334483, -640.5824703233493 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.15204886337347,-348.06476249375646]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.15204886337347,-348.06476249375646]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.15204886337347,-348.06476249375646]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-396.15204886337347,-348.06476249375646]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -396.15204886337347, -348.06476249375646 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -60.29256744085103, -559.0431586531295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-316.7034887744412,-249.799438173235]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-316.7034887744412,-249.799438173235]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-316.7034887744412,-249.799438173235]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-316.7034887744412,-249.799438173235]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -316.7034887744412, -249.799438173235 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.155992648081224,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.155992648081224,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.155992648081224,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.155992648081224,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 19.155992648081224, -460.777834332608 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-260.25319607967367,-178.7138844094536]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-260.25319607967367,-178.7138844094536]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-260.25319607967367,-178.7138844094536]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-260.25319607967367,-178.7138844094536]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -260.25319607967367, -178.7138844094536 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-389.6922805688266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.60628534284876, -389.6922805688266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-201.71215180361833,-118.08208855211058]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-201.71215180361833,-118.08208855211058]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-201.71215180361833,-118.08208855211058]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-201.71215180361833,-118.08208855211058]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -201.71215180361833, -118.08208855211058 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.1473296189041,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 134.1473296189041, -329.0604847114836 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.0768907346046,-97.17457273923367]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.0768907346046,-97.17457273923367]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.0768907346046,-97.17457273923367]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-187.0768907346046,-97.17457273923367]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -187.0768907346046, -97.17457273923367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-308.1529688986067]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 148.78259068791783, -308.1529688986067 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-178.71388440945384,-92.99306957665829]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-178.71388440945384,-92.99306957665829]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-178.71388440945384,-92.99306957665829]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-178.71388440945384,-92.99306957665829]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -178.71388440945384, -92.99306957665829 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[157.1455970130686,-303.9714657360313]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[157.1455970130686,-303.9714657360313]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[157.1455970130686,-303.9714657360313]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[157.1455970130686,-303.9714657360313]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 157.1455970130686, -303.9714657360313 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-172.44162966559065,-90.9023179953706]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-172.44162966559065,-90.9023179953706]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-172.44162966559065,-90.9023179953706]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-172.44162966559065,-90.9023179953706]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -172.44162966559065, -90.9023179953706 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-301.8807141547436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 163.41785175693178, -301.8807141547436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.1693749217277,-88.8115664140829]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.1693749217277,-88.8115664140829]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.1693749217277,-88.8115664140829]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-166.1693749217277,-88.8115664140829]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -166.1693749217277, -88.8115664140829 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-299.7899625734559]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-299.7899625734559]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-299.7899625734559]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-299.7899625734559]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 169.69010650079474, -299.7899625734559 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-159.8971201778645,-86.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-159.8971201778645,-86.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-159.8971201778645,-86.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-159.8971201778645,-86.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -159.8971201778645, -86.72081483279521 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 175.96236124465793, -297.6992109921682 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-149.44336227142617,-82.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-149.44336227142617,-82.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-149.44336227142617,-82.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-149.44336227142617,-82.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -149.44336227142617, -82.53931167021983 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[186.41611915109627,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 186.41611915109627, -293.51770782959284 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-138.9896043649876,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-138.9896043649876,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-138.9896043649876,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-138.9896043649876,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -138.9896043649876, -76.26705692635676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 196.86987705753484, -287.24545308572976 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-136.89885278370002,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-136.89885278370002,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-136.89885278370002,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-136.89885278370002,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -136.89885278370002, -76.26705692635676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[198.9606286388224,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[198.9606286388224,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[198.9606286388224,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[198.9606286388224,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 198.9606286388224, -287.24545308572976 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.53584645854926,-74.17630534506907]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.53584645854926,-74.17630534506907]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.53584645854926,-74.17630534506907]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-128.53584645854926,-74.17630534506907]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -128.53584645854926, -74.17630534506907 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[207.32363496397318,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[207.32363496397318,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[207.32363496397318,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[207.32363496397318,-285.1547015044421]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 207.32363496397318, -285.1547015044421 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-124.35434329597388,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-124.35434329597388,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-124.35434329597388,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-124.35434329597388,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -124.35434329597388, -69.99480218249369 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.50513812654856,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.50513812654856,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.50513812654856,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.50513812654856,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 211.50513812654856, -280.9731983418667 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.1728401333985,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.1728401333985,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.1728401333985,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-120.1728401333985,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -120.1728401333985, -69.99480218249369 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.68664128912394,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.68664128912394,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.68664128912394,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.68664128912394,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 215.68664128912394, -280.9731983418667 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082311,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082311,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082311,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082311,-69.99480218249369]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -115.99133697082311, -69.99480218249369 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.86814445169932,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.86814445169932,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 215.68664128912394, -280.9731983418667 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.86814445169932,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.86814445169932,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.518810503012901,150.3464916567068]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.518810503012901,150.3464916567068]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.518810503012901,150.3464916567068]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[2.518810503012901,150.3464916567068]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 2.518810503012901, 150.3464916567068 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-101.35607590180916,-67.904050601206]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-101.35607590180916,-67.904050601206]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-101.35607590180916,-67.904050601206]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-101.35607590180916,-67.904050601206]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -101.35607590180916, -67.904050601206 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[234.50340552071327,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[234.50340552071327,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[234.50340552071327,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[234.50340552071327,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 234.50340552071327, -278.882446760579 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.88008422232838,162.89100114443295]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.88008422232838,162.89100114443295]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.88008422232838,162.89100114443295]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[33.88008422232838,162.89100114443295]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 33.88008422232838, 162.89100114443295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-80.44856008893225,-59.54104427605523]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-80.44856008893225,-59.54104427605523]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-80.44856008893225,-59.54104427605523]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-80.44856008893225,-59.54104427605523]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -80.44856008893225, -59.54104427605523 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[255.41092133359018,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[255.41092133359018,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[255.41092133359018,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[255.41092133359018,-270.51944043542824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 255.41092133359018, -270.51944043542824 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[74.6497400574383,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[74.6497400574383,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[74.6497400574383,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[74.6497400574383,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 74.6497400574383, 175.4355106321591 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.268789532192386,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.268789532192386,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.268789532192386,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.268789532192386,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -53.268789532192386, -51.17803795090447 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[282.59069189033005,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 282.59069189033005, -262.1564341102775 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[93.4665042890274,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[93.4665042890274,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[93.4665042890274,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[93.4665042890274,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 93.4665042890274, 175.4355106321591 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-40.72428004446624,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-40.72428004446624,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-40.72428004446624,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-40.72428004446624,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -40.72428004446624, -51.17803795090447 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 282.59069189033005, -262.1564341102775 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[106.01101377675354,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[106.01101377675354,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[106.01101377675354,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[106.01101377675354,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 106.01101377675354, 175.4355106321591 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931548,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931548,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931548,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931548,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -32.36127371931548, -51.17803795090447 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[303.49820770320696,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[303.49820770320696,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[303.49820770320696,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[303.49820770320696,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 303.49820770320696, -262.1564341102775 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.28326852061673,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.28326852061673,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.28326852061673,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[112.28326852061673,175.4355106321591]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 112.28326852061673, 175.4355106321591 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556740095,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556740095,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556740095,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556740095,-51.17803795090447]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -28.179770556740095, -51.17803795090447 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[307.67971086578234,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[307.67971086578234,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[307.67971086578234,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[307.67971086578234,-262.1564341102775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 307.67971086578234, -262.1564341102775 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[124.82777800834288,169.1632558882959]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[124.82777800834288,169.1632558882959]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[124.82777800834288,169.1632558882959]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[124.82777800834288,169.1632558882959]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 124.82777800834288, 169.1632558882959 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-19.81676423158933,-55.35954111347985]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-19.81676423158933,-55.35954111347985]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-19.81676423158933,-55.35954111347985]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-19.81676423158933,-55.35954111347985]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -19.81676423158933, -55.35954111347985 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[316.0427171909331,-266.33793727285286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[316.0427171909331,-266.33793727285286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 307.67971086578234, -262.1564341102775 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[316.0427171909331,-266.33793727285286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[316.0427171909331,-266.33793727285286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.96390538027435,166.02712851636443]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.96390538027435,166.02712851636443]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.96390538027435,166.02712851636443]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.96390538027435,166.02712851636443]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 127.96390538027435, 166.02712851636443 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-17.726012650301755,-57.45029269476754]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-17.726012650301755,-57.45029269476754]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-17.726012650301755,-57.45029269476754]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-17.726012650301755,-57.45029269476754]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -17.726012650301755, -57.45029269476754 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[318.1334687722207,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[318.1334687722207,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[318.1334687722207,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[318.1334687722207,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 318.1334687722207, -268.42868885414055 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[137.3722874960688,159.75487377250147]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[137.3722874960688,159.75487377250147]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[137.3722874960688,159.75487377250147]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[137.3722874960688,159.75487377250147]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 137.3722874960688, 159.75487377250147 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-11.453757906438568,-61.63179585734292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-11.453757906438568,-61.63179585734292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-11.453757906438568,-61.63179585734292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-11.453757906438568,-61.63179585734292]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -11.453757906438568, -61.63179585734292 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[324.40572351608387,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 324.40572351608387, -272.6101920167159 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,153.48261902863828]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,153.48261902863828]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,153.48261902863828]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,153.48261902863828]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 143.64454223993198, 153.48261902863828 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-65.8132990199183]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-65.8132990199183]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-65.8132990199183]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-65.8132990199183]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -7.272254743863186, -65.8132990199183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 324.40572351608387, -272.6101920167159 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,150.3464916567068]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,150.3464916567068]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,150.3464916567068]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,150.3464916567068]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 143.64454223993198, 150.3464916567068 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-67.904050601206]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-67.904050601206]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-67.904050601206]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-67.904050601206]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -7.272254743863186, -67.904050601206 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-278.882446760579]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 328.58722667865925, -278.882446760579 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,144.07423691284384]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,144.07423691284384]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,144.07423691284384]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,144.07423691284384]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 143.64454223993198, 144.07423691284384 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-72.08555376378138]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-72.08555376378138]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-72.08555376378138]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-72.08555376378138]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -7.272254743863186, -72.08555376378138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-283.0639499231544]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 328.58722667865925, -283.0639499231544 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,137.80198216898066]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,137.80198216898066]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,137.80198216898066]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,137.80198216898066]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 143.64454223993198, 137.80198216898066 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-76.26705692635676]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -7.272254743863186, -76.26705692635676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-287.24545308572976]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 328.58722667865925, -287.24545308572976 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,128.393600053186]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,128.393600053186]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,128.393600053186]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.64454223993198,128.393600053186]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 143.64454223993198, 128.393600053186 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-82.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-82.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-82.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-7.272254743863186,-82.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -7.272254743863186, -82.53931167021983 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 328.58722667865925, -287.24545308572976 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[328.58722667865925,-293.51770782959284]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-called update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-Broadcast : 8e5f8b96-0193-4acb-b426-918c42e2cbd4, sending data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-{ _id: '8e5f8b96-0193-4acb-b426-918c42e2cbd4',
- data: [ '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Set Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-calling update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-called update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-Broadcast : 672c99e2-ba2a-419b-9f06-903d9aeba563, sending data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{ _id: '672c99e2-ba2a-419b-9f06-903d9aeba563',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'a8235956-e798-4904-b97a-5395111c95fe',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480' ],
- type: 1 }
-Incoming : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Set Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":146.43671701924256}
-calling update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":146.43671701924256}
-called update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":146.43671701924256}
-{ _id: 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9',
- data: -103.70194957048432,
- type: 0 }
-Incoming : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Set Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-835.5639525857666}
-calling update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-835.5639525857666}
-called update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-835.5639525857666}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.6445422399322,128.39360005318622]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.6445422399322,128.39360005318622]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,-749.3015525503092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,-749.3015525503092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":146.43671701924256}
-Broadcast : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, sending data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":146.43671701924256}
-{ _id: '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19',
- data: -168.80171170567712,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-835.5639525857666}
-Broadcast : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, sending data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-835.5639525857666}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.6445422399322,128.39360005318622]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.6445422399322,128.39360005318622]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 143.6445422399322, 128.39360005318622 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 328.58722667865925, -293.51770782959284 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,-749.3015525503092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,-749.3015525503092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.6445422399322,134.6658547970493]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.6445422399322,134.6658547970493]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.6445422399322,134.6658547970493]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[143.6445422399322,134.6658547970493]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 143.6445422399322, 134.6658547970493 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 242.86641184586404, -749.3015525503092 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.7806696118637,140.93810954091236]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.7806696118637,140.93810954091236]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.7806696118637,140.93810954091236]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.7806696118637,140.93810954091236]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 146.7806696118637, 140.93810954091236 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 244.9571634271516, -740.9385462251585 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.00581595924746,194.25227486374843]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.00581595924746,194.25227486374843]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.00581595924746,194.25227486374843]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.00581595924746,194.25227486374843]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 175.00581595924746, 194.25227486374843 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,-705.3957693432677]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,-705.3957693432677]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,-705.3957693432677]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,-705.3957693432677]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 263.77392765874094, -705.3957693432677 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[231.45610865401522,291.472223393626]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[231.45610865401522,291.472223393626]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[231.45610865401522,291.472223393626]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[231.45610865401522,291.472223393626]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 231.45610865401522, 291.472223393626 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,-640.5824703233493]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 301.40745612191915, -640.5824703233493 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[351.58549407282374,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[351.58549407282374,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[351.58549407282374,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[351.58549407282374,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 351.58549407282374, -573.6784197221433 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[93.08382115794598,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[93.08382115794598,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[93.08382115794598,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[93.08382115794598,-243.52718342937192]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 93.08382115794598, -243.52718342937192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[428.9433025804684,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[428.9433025804684,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[428.9433025804684,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[428.9433025804684,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 428.9433025804684, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[130.7173496211244,-172.44162966559054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[130.7173496211244,-172.44162966559054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[130.7173496211244,-172.44162966559054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[130.7173496211244,-172.44162966559054]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 130.7173496211244, -172.44162966559054 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[466.57683104364685,-383.42002582496355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[466.57683104364685,-383.42002582496355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[466.57683104364685,-383.42002582496355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[466.57683104364685,-383.42002582496355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 466.57683104364685, -383.42002582496355 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.16937492172724,-95.08382115794598]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.16937492172724,-95.08382115794598]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.16937492172724,-95.08382115794598]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[164.16937492172724,-95.08382115794598]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 164.16937492172724, -95.08382115794598 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-306.062217317319]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 500.0288563442497, -306.062217317319 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.89538757202877,-42.815031625753704]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.89538757202877,-42.815031625753704]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.89538757202877,-42.815031625753704]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.89538757202877,-42.815031625753704]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 180.89538757202877, -42.815031625753704 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-253.7934277851267]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 516.7548689945512, -253.7934277851267 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,-5.181503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,-5.181503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,-5.181503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,-5.181503162575382]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 195.53064864104272, -5.181503162575382 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 531.3901300635652, -216.1598993219484 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,28.270522138027673]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,28.270522138027673]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,28.270522138027673]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,28.270522138027673]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.4398970597549, 28.270522138027673 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 531.3901300635652, -216.1598993219484 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,49.17803795090458]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.4398970597549, 49.17803795090458 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-161.80035820846842]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 529.2993784822773, -161.80035820846842 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,67.99480218249391]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,67.99480218249391]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,67.99480218249391]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,67.99480218249391]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.4398970597549, 67.99480218249391 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-142.9835939768791]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-142.9835939768791]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-142.9835939768791]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-142.9835939768791]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 529.2993784822773, -142.9835939768791 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,80.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,80.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,80.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,80.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.4398970597549, 80.53931167021983 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 529.2993784822773, -130.43908448915317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,84.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,84.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,84.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[193.4398970597549,84.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 193.4398970597549, 84.72081483279521 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[529.2993784822773,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 529.2993784822773, -126.25758132657779 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,86.81156641408302]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,86.81156641408302]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,86.81156641408302]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[195.53064864104272,86.81156641408302]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 195.53064864104272, 86.81156641408302 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 529.2993784822773, -126.25758132657779 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,86.81156641408302]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,86.81156641408302]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,86.81156641408302]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,86.81156641408302]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.7121518036181, 86.81156641408302 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, -124.16682974528999 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,84.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,84.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,84.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,84.72081483279521]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.7121518036181, 84.72081483279521 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-126.25758132657779]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, -126.25758132657779 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,80.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,80.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,80.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,80.53931167021983]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.7121518036181, 80.53931167021983 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, -130.43908448915317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,65.90405060120611]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,65.90405060120611]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,65.90405060120611]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[199.7121518036181,65.90405060120611]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 199.7121518036181, 65.90405060120611 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, -145.0743455581669 ] ],
- type: 14 }
-calling update on data {"type":1,"data":[],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-called update on data {"type":1,"data":[],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":[],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-Broadcast : 8e5f8b96-0193-4acb-b426-918c42e2cbd4, sending data {"type":1,"data":[],"_id":"8e5f8b96-0193-4acb-b426-918c42e2cbd4"}
-{ _id: '8e5f8b96-0193-4acb-b426-918c42e2cbd4',
- data: [],
- type: 1 }
-Incoming : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Set Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-calling update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-called update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-Broadcast : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, sending data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{ _id: '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["a8235956-e798-4904-b97a-5395111c95fe","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Set Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":584.8248202707501}
-calling update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":584.8248202707501}
-called update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":584.8248202707501}
-{ _id: '9ffe2a20-7fcb-4460-aa91-922b69f91e24',
- data: 142.33700820255547,
- type: 0 }
-Incoming : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Set Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-815.2104632759047}
-calling update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-815.2104632759047}
-called update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-815.2104632759047}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ 'a8235956-e798-4904-b97a-5395111c95fe',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-815.2104632759047}
-Broadcast : d7d79305-cd6b-4653-a173-1284f76f5773, sending data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-815.2104632759047}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":584.8248202707501}
-Broadcast : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, sending data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":584.8248202707501}
-{ _id: 'd7d79305-cd6b-4653-a173-1284f76f5773',
- data: -815.2104632759047,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 642.1999638718127, -745.1200493877338 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 642.1999638718127, -740.9385462251585 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 642.1999638718127, -734.6662914812953 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-724.2125335748569]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-724.2125335748569]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-724.2125335748569]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-724.2125335748569]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 642.1999638718127, -724.2125335748569 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 640.1092122905251, -703.30501776198 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[635.9277091279497,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[635.9277091279497,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[635.9277091279497,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[635.9277091279497,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 635.9277091279497, -671.9437440426647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[619.2016964776482,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[619.2016964776482,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[619.2016964776482,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[619.2016964776482,-619.6749545104724]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 619.2016964776482, -619.6749545104724 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[264.5254508235364,-352.24626565633184]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[264.5254508235364,-352.24626565633184]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[264.5254508235364,-352.24626565633184]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[264.5254508235364,-352.24626565633184]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 264.5254508235364, -352.24626565633184 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, -563.2246618157048 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[243.6179350106595,-283.25146347383804]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[243.6179350106595,-283.25146347383804]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[243.6179350106595,-283.25146347383804]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[243.6179350106595,-283.25146347383804]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 243.6179350106595, -283.25146347383804 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[579.4774164331819,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 579.4774164331819, -494.22985963321105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[222.71041919778258,-210.07515812876886]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[222.71041919778258,-210.07515812876886]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[222.71041919778258,-210.07515812876886]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[222.71041919778258,-210.07515812876886]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 222.71041919778258, -210.07515812876886 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[558.569900620305,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 558.569900620305, -421.05355428814187 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.80290338490568,-157.8063685965767]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.80290338490568,-157.8063685965767]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.80290338490568,-157.8063685965767]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.80290338490568,-157.8063685965767]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 201.80290338490568, -157.8063685965767 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 558.569900620305, -421.05355428814187 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-368.7847647559497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[174.6231328281658,-122.26359171468596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[174.6231328281658,-122.26359171468596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[174.6231328281658,-122.26359171468596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[174.6231328281658,-122.26359171468596]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 174.6231328281658, -122.26359171468596 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 510.48261425068824, -333.24198787405896 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.80636859657648,-107.62833064567212]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.80636859657648,-107.62833064567212]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.80636859657648,-107.62833064567212]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[155.80636859657648,-107.62833064567212]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 155.80636859657648, -107.62833064567212 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[491.6658500190989,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[491.6658500190989,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[491.6658500190989,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[491.6658500190989,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 491.6658500190989, -318.6067268050451 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.7156170152889,-103.44682748309674]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.7156170152889,-103.44682748309674]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.7156170152889,-103.44682748309674]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[153.7156170152889,-103.44682748309674]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 153.7156170152889, -103.44682748309674 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-314.42522364246975]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-314.42522364246975]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-314.42522364246975]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-314.42522364246975]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 489.57509843781133, -314.42522364246975 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.4433622714257,-105.53757906438443]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.4433622714257,-105.53757906438443]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.4433622714257,-105.53757906438443]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[147.4433622714257,-105.53757906438443]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 147.4433622714257, -105.53757906438443 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 483.30284369394815, -316.51597522375744 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.17110752756275,-107.62833064567212]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.17110752756275,-107.62833064567212]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.17110752756275,-107.62833064567212]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[141.17110752756275,-107.62833064567212]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 141.17110752756275, -107.62833064567212 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 483.30284369394815, -316.51597522375744 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-318.6067268050451]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.8988527836998,-111.8098338082475]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.8988527836998,-111.8098338082475]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.8988527836998,-111.8098338082475]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[134.8988527836998,-111.8098338082475]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 134.8988527836998, -111.8098338082475 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[470.75833420622223,-322.7882299676205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 470.75833420622223, -322.7882299676205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.53584645854903,-120.17284013339827]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.53584645854903,-120.17284013339827]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.53584645854903,-120.17284013339827]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[126.53584645854903,-120.17284013339827]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 126.53584645854903, -120.17284013339827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 462.39532788107147, -331.1512362927713 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.99133697082289,-128.53584645854903]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.99133697082289,-128.53584645854903]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.99133697082289,-128.53584645854903]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.99133697082289,-128.53584645854903]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.99133697082289, -128.53584645854903 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[449.8508183933453,-339.51424261792204]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 449.8508183933453, -339.51424261792204 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.72081483279521,-136.8988527836998]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.72081483279521,-136.8988527836998]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.72081483279521,-136.8988527836998]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[84.72081483279521,-136.8988527836998]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 84.72081483279521, -136.8988527836998 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 420.58029625531765, -347.8772489430728 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.813299019918304,-147.35261069013825]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.813299019918304,-147.35261069013825]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.813299019918304,-147.35261069013825]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.813299019918304,-147.35261069013825]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 63.813299019918304, -147.35261069013825 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 420.58029625531765, -347.8772489430728 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[399.67278044244074,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[51.26878953219216,-151.53411385271363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[51.26878953219216,-151.53411385271363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[51.26878953219216,-151.53411385271363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[51.26878953219216,-151.53411385271363]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 51.26878953219216, -151.53411385271363 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.1282709547146,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.1282709547146,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.1282709547146,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[387.1282709547146,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 387.1282709547146, -362.51251001208664 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[47.08728636961678,-153.62486543400132]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[47.08728636961678,-153.62486543400132]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[47.08728636961678,-153.62486543400132]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-Broadcast : 6e0fa9fd-1a07-4b46-b099-26f596df7406, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[47.08728636961678,-153.62486543400132]],"_id":"6e0fa9fd-1a07-4b46-b099-26f596df7406"}
-{ _id: '6e0fa9fd-1a07-4b46-b099-26f596df7406',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 47.08728636961678, -153.62486543400132 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 382.9467677921392, -364.6032615933743 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,323.25400865027564]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,323.25400865027564]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,323.25400865027564]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,323.25400865027564]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 483.30284369394815, 323.25400865027564 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,321.16325706898783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,321.16325706898783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,321.16325706898783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,321.16325706898783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 483.30284369394815, 321.16325706898783 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,316.98175390641245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,316.98175390641245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,316.98175390641245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[483.30284369394815,316.98175390641245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 483.30284369394815, 316.98175390641245 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,302.3464928373987]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,302.3464928373987]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,302.3464928373987]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,302.3464928373987]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 485.39359527523595, 302.3464928373987 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,279.348225443234]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,279.348225443234]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,279.348225443234]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,279.348225443234]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 485.39359527523595, 279.348225443234 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 472.8490857875098, 222.89793274846647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[462.39532788107147,191.53665902915122]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 462.39532788107147, 191.53665902915122 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,187.35515586657584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,187.35515586657584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,187.35515586657584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,187.35515586657584]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 460.30457629978366, 187.35515586657584 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 460.30457629978366, 176.90139796013727 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[464.48607946235904,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[464.48607946235904,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[464.48607946235904,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[464.48607946235904,166.44764005369893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 464.48607946235904, 166.44764005369893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[464.48607946235904,151.81237898468498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[464.48607946235904,151.81237898468498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[464.48607946235904,151.81237898468498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[464.48607946235904,151.81237898468498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 464.48607946235904, 151.81237898468498 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[362.0392519792623,45.18404833901286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[362.0392519792623,45.18404833901286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[362.0392519792623,45.18404833901286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[362.0392519792623,45.18404833901286]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 362.0392519792623, 45.18404833901286 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[276.3184371464671,-9.175492774467102]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[276.3184371464671,-9.175492774467102]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[276.3184371464671,-9.175492774467102]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[276.3184371464671,-9.175492774467102]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 276.3184371464671, -9.175492774467102 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-78.17029495696079]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 190.59762231367165, -78.17029495696079 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,-130.43908448915317]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 123.69357171246554, -130.43908448915317 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 60.97102427383493, -174.34486769619457 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[8.70223474164277,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 8.70223474164277, -205.70614141550993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.20354846539874,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.20354846539874,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.20354846539874,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-35.20354846539874,-230.7951603909621]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -35.20354846539874, -230.7951603909621 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-60.29256744085103,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -60.29256744085103, -232.8859119722498 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -81.20008325372794, -234.9766635535375 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-93.74459274145408,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-93.74459274145408,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-93.74459274145408,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-93.74459274145408,-234.9766635535375]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -93.74459274145408, -234.9766635535375 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-131.37812120463252,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-131.37812120463252,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-131.37812120463252,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-131.37812120463252,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -131.37812120463252, -224.52290564709904 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-196.19142022455082,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -196.19142022455082, -207.79689299679762 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -344.63478249597676, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-388.5405657030183,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-388.5405657030183,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-388.5405657030183,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-388.5405657030183,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -388.5405657030183, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -434.5371004913475, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-432.4463489100598,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -432.4463489100598, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -428.2648457474844, -172.25411611490676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -428.2648457474844, -174.34486769619457 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-178.52637085876995]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -428.2648457474844, -178.52637085876995 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -428.2648457474844, -193.1616319277838 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-434.5371004913475,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -434.5371004913475, -199.43388667164686 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-453.3538647229367,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -453.3538647229367, -163.891109789756 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-105.35006551370088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-105.35006551370088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-105.35006551370088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-463.8076226293751,-105.35006551370088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -463.8076226293751, -105.35006551370088 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,-42.62751807507016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,-42.62751807507016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,-42.62751807507016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,-42.62751807507016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -461.7168710480874, -42.62751807507016 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.98912579195047,47.27479992030044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.98912579195047,47.27479992030044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.98912579195047,47.27479992030044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.98912579195047,47.27479992030044]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -467.98912579195047, 47.27479992030044 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -482.6243868609643, 124.63260842794512 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,195.7181621917266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,195.7181621917266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,195.7181621917266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-482.6243868609643,195.7181621917266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -482.6243868609643, 195.7181621917266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-480.5336352796766,291.89273493096016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-480.5336352796766,291.89273493096016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-480.5336352796766,291.89273493096016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-480.5336352796766,291.89273493096016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -480.5336352796766, 291.89273493096016 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-476.35213211710123,377.6135497637556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-476.35213211710123,377.6135497637556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-476.35213211710123,377.6135497637556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-476.35213211710123,377.6135497637556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -476.35213211710123, 377.6135497637556 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,471.6973709217016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,471.6973709217016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,471.6973709217016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,471.6973709217016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -484.715138442252, 471.6973709217016 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-497.25964792997814,519.7846572913184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-497.25964792997814,519.7846572913184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-497.25964792997814,519.7846572913184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-497.25964792997814,519.7846572913184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -497.25964792997814, 519.7846572913184 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.894908998992,557.4181857544968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.894908998992,557.4181857544968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.894908998992,557.4181857544968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.894908998992,557.4181857544968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -511.894908998992, 557.4181857544968 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-528.6209216492935,584.5979563112367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-528.6209216492935,584.5979563112367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-528.6209216492935,584.5979563112367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-528.6209216492935,584.5979563112367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -528.6209216492935, 584.5979563112367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,595.0517142176752]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,595.0517142176752]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,595.0517142176752]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,595.0517142176752]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -551.619189043458, 595.0517142176752 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,601.3239689615382]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,601.3239689615382]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,601.3239689615382]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,601.3239689615382]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -568.3452016937596, 601.3239689615382 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-589.2527175066365,603.414720542826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-589.2527175066365,603.414720542826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-589.2527175066365,603.414720542826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-589.2527175066365,603.414720542826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -589.2527175066365, 603.414720542826 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,603.414720542826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,603.414720542826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,603.414720542826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,603.414720542826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -616.4324880633765, 603.414720542826 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-656.1567681078425,615.9592300305521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-656.1567681078425,615.9592300305521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-656.1567681078425,615.9592300305521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-656.1567681078425,615.9592300305521]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -656.1567681078425, 615.9592300305521 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-708.4255576400348,651.5020069124428]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-708.4255576400348,651.5020069124428]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-708.4255576400348,651.5020069124428]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-708.4255576400348,651.5020069124428]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -708.4255576400348, 651.5020069124428 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-764.8758503348024,676.5910258878951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-764.8758503348024,676.5910258878951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-764.8758503348024,676.5910258878951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-764.8758503348024,676.5910258878951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -764.8758503348024, 676.5910258878951 ] ],
- type: 14 }
-calling update on data {"type":5,"data":[],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-called update on data {"type":5,"data":[],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-Broadcast : 3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526, sending data {"type":5,"data":[],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-{ _id: '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526',
- data: [],
- type: 5 }
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-Broadcast : 3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-{ _id: '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526',
- data: [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'textProto' ] ],
- type: 5 }
-calling update on data {"type":6,"data":"","_id":"9671997d-85b7-4054-a84f-cebc97162166"}
-called update on data {"type":6,"data":"","_id":"9671997d-85b7-4054-a84f-cebc97162166"}
-undefined
-null
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","9671997d-85b7-4054-a84f-cebc97162166"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","9671997d-85b7-4054-a84f-cebc97162166"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-{ _id: '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526',
- data: [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'textProto' ] ],
- type: 5 }
-calling update on data {"type":6,"data":"a text note","_id":"78c2e14d-6efe-4942-9943-e618c481bd6b"}
-called update on data {"type":6,"data":"a text note","_id":"78c2e14d-6efe-4942-9943-e618c481bd6b"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"78c2e14d-6efe-4942-9943-e618c481bd6b"}],"ok":1}
-Wrote {"type":6,"data":"a text note","_id":"78c2e14d-6efe-4942-9943-e618c481bd6b"}
-Broadcast : 78c2e14d-6efe-4942-9943-e618c481bd6b, sending data {"type":6,"data":"a text note","_id":"78c2e14d-6efe-4942-9943-e618c481bd6b"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","9671997d-85b7-4054-a84f-cebc97162166"],["51529209-4838-51c5-a520-0044fddf139c","78c2e14d-6efe-4942-9943-e618c481bd6b"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","9671997d-85b7-4054-a84f-cebc97162166"],["51529209-4838-51c5-a520-0044fddf139c","78c2e14d-6efe-4942-9943-e618c481bd6b"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-calling update on data {"type":5,"data":[],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-called update on data {"type":5,"data":[],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Incoming : 483c9a83-c777-47db-a806-4a7c6e298a2d, receiving Set Field with data {"_id":"483c9a83-c777-47db-a806-4a7c6e298a2d","type":0,"data":200}
-calling update on data {"_id":"483c9a83-c777-47db-a806-4a7c6e298a2d","type":0,"data":200}
-called update on data {"_id":"483c9a83-c777-47db-a806-4a7c6e298a2d","type":0,"data":200}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Incoming : 729e1f77-82c8-42ba-a781-7442f2011a48, receiving Set Field with data {"_id":"729e1f77-82c8-42ba-a781-7442f2011a48","type":0,"data":200}
-calling update on data {"_id":"729e1f77-82c8-42ba-a781-7442f2011a48","type":0,"data":200}
-called update on data {"_id":"729e1f77-82c8-42ba-a781-7442f2011a48","type":0,"data":200}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","9671997d-85b7-4054-a84f-cebc97162166"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-Broadcast : 3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","9671997d-85b7-4054-a84f-cebc97162166"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"9671997d-85b7-4054-a84f-cebc97162166"}],"ok":1}
-Wrote {"type":6,"data":"","_id":"9671997d-85b7-4054-a84f-cebc97162166"}
-Broadcast : 9671997d-85b7-4054-a84f-cebc97162166, sending data {"type":6,"data":"","_id":"9671997d-85b7-4054-a84f-cebc97162166"}
-{ _id: '78c2e14d-6efe-4942-9943-e618c481bd6b',
- data: 'a text note',
- type: 6 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","9671997d-85b7-4054-a84f-cebc97162166"],["51529209-4838-51c5-a520-0044fddf139c","78c2e14d-6efe-4942-9943-e618c481bd6b"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-Broadcast : 3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","textProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","9671997d-85b7-4054-a84f-cebc97162166"],["51529209-4838-51c5-a520-0044fddf139c","78c2e14d-6efe-4942-9943-e618c481bd6b"]],"_id":"3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"}
-{ _id: '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'textProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '9671997d-85b7-4054-a84f-cebc97162166' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '78c2e14d-6efe-4942-9943-e618c481bd6b' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Broadcast : 2a1cad71-3e49-434a-9914-3a58edf3826c, sending data {"type":5,"data":[],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Broadcast : 2a1cad71-3e49-434a-9914-3a58edf3826c, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"483c9a83-c777-47db-a806-4a7c6e298a2d"}],"ok":1}
-Wrote {"_id":"483c9a83-c777-47db-a806-4a7c6e298a2d","type":0,"data":200}
-Broadcast : 483c9a83-c777-47db-a806-4a7c6e298a2d, sending data {"_id":"483c9a83-c777-47db-a806-4a7c6e298a2d","type":0,"data":200}
-{ _id: '2a1cad71-3e49-434a-9914-3a58edf3826c',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526' ] ],
- type: 5 }
-{ _id: '2a1cad71-3e49-434a-9914-3a58edf3826c',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526' ] ],
- type: 5 }
-{ _id: '483c9a83-c777-47db-a806-4a7c6e298a2d',
- data: 200,
- type: 0 }
-{ _id: '2a1cad71-3e49-434a-9914-3a58edf3826c',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526' ] ],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Broadcast : 2a1cad71-3e49-434a-9914-3a58edf3826c, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"729e1f77-82c8-42ba-a781-7442f2011a48"}],"ok":1}
-Wrote {"_id":"729e1f77-82c8-42ba-a781-7442f2011a48","type":0,"data":200}
-Broadcast : 729e1f77-82c8-42ba-a781-7442f2011a48, sending data {"_id":"729e1f77-82c8-42ba-a781-7442f2011a48","type":0,"data":200}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Broadcast : 2a1cad71-3e49-434a-9914-3a58edf3826c, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{ _id: '2a1cad71-3e49-434a-9914-3a58edf3826c',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '483c9a83-c777-47db-a806-4a7c6e298a2d' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '729e1f77-82c8-42ba-a781-7442f2011a48' ] ],
- type: 5 }
-Incoming : 40f594b5-c6ad-4926-9acb-fc33d688f1cd, receiving Set Field with data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":-1}
-calling update on data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":-1}
-called update on data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":-1}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd"}],"ok":1}
-Wrote {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":-1}
-Broadcast : 40f594b5-c6ad-4926-9acb-fc33d688f1cd, sending data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":-1}
-{ _id: '40f594b5-c6ad-4926-9acb-fc33d688f1cd',
- data: -1,
- type: 0 }
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Broadcast : 2a1cad71-3e49-434a-9914-3a58edf3826c, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{ _id: '2a1cad71-3e49-434a-9914-3a58edf3826c',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '483c9a83-c777-47db-a806-4a7c6e298a2d' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '729e1f77-82c8-42ba-a781-7442f2011a48' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '40f594b5-c6ad-4926-9acb-fc33d688f1cd' ] ],
- type: 5 }
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 62d2960c-ed63-4805-89c8-e01eada0f03e, receiving Set Field with data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-530.7116732305813}
-calling update on data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-530.7116732305813}
-called update on data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-530.7116732305813}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e"}],"ok":1}
-Wrote {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-530.7116732305813}
-Broadcast : 62d2960c-ed63-4805-89c8-e01eada0f03e, sending data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-530.7116732305813}
-{ _id: '62d2960c-ed63-4805-89c8-e01eada0f03e',
- data: -530.7116732305813,
- type: 0 }
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Incoming : 9ff46b19-dc58-47d7-9752-340e49e29b16, receiving Set Field with data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-157.61885504589304}
-calling update on data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-157.61885504589304}
-called update on data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-157.61885504589304}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16"}],"ok":1}
-Wrote {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-157.61885504589304}
-Broadcast : 9ff46b19-dc58-47d7-9752-340e49e29b16, sending data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-157.61885504589304}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Incoming : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Set Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":1}
-calling update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":1}
-called update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":1}
-Incoming : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Set Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-calling update on data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-called update on data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-Incoming : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Set Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-calling update on data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-called update on data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-Incoming : e878ea28-b836-487a-9b2c-28a31657f37b, receiving Set Field with data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":4}
-calling update on data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":4}
-called update on data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":4}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e878ea28-b836-487a-9b2c-28a31657f37b"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e878ea28-b836-487a-9b2c-28a31657f37b"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '2a1cad71-3e49-434a-9914-3a58edf3826c',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '483c9a83-c777-47db-a806-4a7c6e298a2d' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '729e1f77-82c8-42ba-a781-7442f2011a48' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '40f594b5-c6ad-4926-9acb-fc33d688f1cd' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Broadcast : 2a1cad71-3e49-434a-9914-3a58edf3826c, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Broadcast : 2a1cad71-3e49-434a-9914-3a58edf3826c, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{ _id: 'cc496f45-ce13-4ce5-859c-215d8634bc61', data: 3, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":1}
-Broadcast : e3b590f8-23f0-4feb-831d-cbc9a516828a, sending data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":1}
-{ _id: '9ff46b19-dc58-47d7-9752-340e49e29b16',
- data: -157.61885504589304,
- type: 0 }
-{ _id: 'e3b590f8-23f0-4feb-831d-cbc9a516828a', data: 1, type: 0 }
-{ _id: '2a1cad71-3e49-434a-9914-3a58edf3826c',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '483c9a83-c777-47db-a806-4a7c6e298a2d' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '729e1f77-82c8-42ba-a781-7442f2011a48' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '40f594b5-c6ad-4926-9acb-fc33d688f1cd' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '62d2960c-ed63-4805-89c8-e01eada0f03e' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '9ff46b19-dc58-47d7-9752-340e49e29b16' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e878ea28-b836-487a-9b2c-28a31657f37b"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Broadcast : 2a1cad71-3e49-434a-9914-3a58edf3826c, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e878ea28-b836-487a-9b2c-28a31657f37b"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{ _id: 'a59882d7-3daf-4574-b38e-4673bbac7db8', data: 4, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-Broadcast : cc496f45-ce13-4ce5-859c-215d8634bc61, sending data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":2}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"e878ea28-b836-487a-9b2c-28a31657f37b"}],"ok":1}
-Wrote {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":4}
-Broadcast : e878ea28-b836-487a-9b2c-28a31657f37b, sending data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":4}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-Broadcast : a59882d7-3daf-4574-b38e-4673bbac7db8, sending data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":3}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: 'e878ea28-b836-487a-9b2c-28a31657f37b', data: 4, type: 0 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -530.7116732305813, -157.61885504589304 ] ],
- type: 14 }
-{ _id: '2a1cad71-3e49-434a-9914-3a58edf3826c',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '483c9a83-c777-47db-a806-4a7c6e298a2d' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '729e1f77-82c8-42ba-a781-7442f2011a48' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '40f594b5-c6ad-4926-9acb-fc33d688f1cd' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '62d2960c-ed63-4805-89c8-e01eada0f03e' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '9ff46b19-dc58-47d7-9752-340e49e29b16' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- 'e878ea28-b836-487a-9b2c-28a31657f37b' ] ],
- type: 5 }
-S sending : 40f594b5-c6ad-4926-9acb-fc33d688f1cd, receiving Get Field with data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","data":-1,"type":0}
-S sending : 62d2960c-ed63-4805-89c8-e01eada0f03e, receiving Get Field with data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","data":-530.7116732305813,"type":0}
-S sending : 9ff46b19-dc58-47d7-9752-340e49e29b16, receiving Get Field with data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","data":-157.61885504589304,"type":0}
-S sending : 483c9a83-c777-47db-a806-4a7c6e298a2d, receiving Get Field with data {"_id":"483c9a83-c777-47db-a806-4a7c6e298a2d","data":200,"type":0}
-S sending : 729e1f77-82c8-42ba-a781-7442f2011a48, receiving Get Field with data {"_id":"729e1f77-82c8-42ba-a781-7442f2011a48","data":200,"type":0}
-S sending : e878ea28-b836-487a-9b2c-28a31657f37b, receiving Get Field with data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","data":4,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-159.70960662718062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -530.7116732305813, -159.70960662718062 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-526.5301700680059,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-526.5301700680059,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-526.5301700680059,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-526.5301700680059,-163.891109789756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -526.5301700680059, -163.891109789756 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-499.35039951126583,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-499.35039951126583,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-499.35039951126583,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-499.35039951126583,-182.70787402134533]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -499.35039951126583, -182.70787402134533 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,-205.70614141550993]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -442.90010681649824, -205.70614141550993 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-226.61365722838673]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -390.63131728430596, -226.61365722838673 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-344.63478249597676,-232.8859119722498]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -344.63478249597676, -232.8859119722498 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-243.33966987868826]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -307.00125403279844, -243.33966987868826 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-257.9749309477021]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -296.54749612636, -257.9749309477021 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-268.42868885414055]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -296.54749612636, -268.42868885414055 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -296.54749612636, -272.6101920167159 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -294.4567445450723, -276.7916951792913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-284.00298663863384,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-284.00298663863384,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-284.00298663863384,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-284.00298663863384,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -284.00298663863384, -280.9731983418667 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-250.5509613380308,-310.24372047989436]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -250.5509613380308, -310.24372047989436 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-240.09720343159233,-329.0604847114836]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -240.09720343159233, -329.0604847114836 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.73419710644157,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.73419710644157,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.73419710644157,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-231.73419710644157,-372.9662679185251]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -231.73419710644157, -372.9662679185251 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-402.23679005655265]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-402.23679005655265]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-402.23679005655265]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-402.23679005655265]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -221.28043920000312, -402.23679005655265 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-456.5963311700326]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -215.00818445614004, -456.5963311700326 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -215.00818445614004, -510.9558722835126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-215.00818445614004,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -215.00818445614004, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-559.0431586531295]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -221.28043920000312, -559.0431586531295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -221.28043920000312, -573.6784197221433 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-221.28043920000312,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -221.28043920000312, -600.8581902788832 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-225.4619423625785,-625.9472092543355]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -225.4619423625785, -625.9472092543355 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.82494868772926,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.82494868772926,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.82494868772926,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-233.82494868772926,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -233.82494868772926, -651.0362282297878 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-238.00645185030464,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -238.00645185030464, -671.9437440426647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -256.82321608189386, -701.2142661806923 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[202.5253397559219,291.4950656534782]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[202.5253397559219,291.4950656534782]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[202.5253397559219,291.4950656534782]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[202.5253397559219,291.4950656534782]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 202.5253397559219, 291.4950656534782 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.73073189477077,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.73073189477077,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.73073189477077,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-277.73073189477077,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -277.73073189477077, -720.0310304122816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.4363207804697,263.26991930609444]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.4363207804697,263.26991930609444]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.4363207804697,263.26991930609444]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[177.4363207804697,263.26991930609444]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 177.4363207804697, 263.26991930609444 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -294.4567445450723, -738.8477946438707 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,225.636390842916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,225.636390842916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,225.636390842916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[152.34730180501742,225.636390842916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 152.34730180501742, 225.636390842916 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-311.1827571953738,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -311.1827571953738, -763.936813619323 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.5305375734282,203.6834992393952]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.5305375734282,203.6834992393952]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.5305375734282,203.6834992393952]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[133.5305375734282,203.6834992393952]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 133.5305375734282, 203.6834992393952 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-323.72726668309997,-778.5720746883369]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-323.72726668309997,-778.5720746883369]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-323.72726668309997,-778.5720746883369]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-323.72726668309997,-778.5720746883369]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -323.72726668309997, -778.5720746883369 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.76088173831829,169.18609814814835]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.76088173831829,169.18609814814835]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.76088173831829,169.18609814814835]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.76088173831829,169.18609814814835]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 92.76088173831829, 169.18609814814835 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-801.5703420825014]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-801.5703420825014]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-801.5703420825014]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-801.5703420825014]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -350.90703723983984, -801.5703420825014 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.58284378741371,128.41644231303843]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.58284378741371,128.41644231303843]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.58284378741371,128.41644231303843]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[42.58284378741371,128.41644231303843]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 42.58284378741371, 128.41644231303843 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-384.3590625404429,-828.7501126392414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-384.3590625404429,-828.7501126392414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-384.3590625404429,-828.7501126392414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-384.3590625404429,-828.7501126392414]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -384.3590625404429, -828.7501126392414 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.90183942233364,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.90183942233364,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.90183942233364,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-419.90183942233364,-853.8391316146937]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -419.90183942233364, -853.8391316146937 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,-874.7466474275706]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,-874.7466474275706]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,-874.7466474275706]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,-874.7466474275706]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -442.90010681649824, -874.7466474275706 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,-901.9264179843105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -461.7168710480874, -901.9264179843105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.17062895452585,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.17062895452585,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.17062895452585,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-472.17062895452585,-920.7431822158997]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -472.17062895452585, -920.7431822158997 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,-935.3784432849136]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -484.715138442252, -935.3784432849136 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,-962.5582138416535]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -503.5319026738412, -962.5582138416535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,-975.1027233293796]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -513.9856605802797, -975.1027233293796 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-518.1671637428551,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-518.1671637428551,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-518.1671637428551,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-518.1671637428551,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -518.1671637428551, -983.4657296545304 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-520.2579153241427,-985.5564812358181]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-520.2579153241427,-985.5564812358181]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-520.2579153241427,-985.5564812358181]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-520.2579153241427,-985.5564812358181]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -520.2579153241427, -985.5564812358181 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-522.3486669054305,-989.7379843983935]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -522.3486669054305, -989.7379843983935 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-524.4394184867181,-993.9194875609688]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-524.4394184867181,-993.9194875609688]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-524.4394184867181,-993.9194875609688]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-524.4394184867181,-993.9194875609688]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -524.4394184867181, -993.9194875609688 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-520.2579153241427,-993.9194875609688]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-520.2579153241427,-993.9194875609688]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-520.2579153241427,-993.9194875609688]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-520.2579153241427,-993.9194875609688]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -520.2579153241427, -993.9194875609688 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-516.0764121615673,-991.8287359796811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-516.0764121615673,-991.8287359796811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-516.0764121615673,-991.8287359796811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-516.0764121615673,-991.8287359796811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -516.0764121615673, -991.8287359796811 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-501.4411510925535,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-501.4411510925535,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-501.4411510925535,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-501.4411510925535,-983.4657296545304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -501.4411510925535, -983.4657296545304 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-484.715138442252,-970.9212201668042]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -484.715138442252, -970.9212201668042 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-457.5353678855121,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-457.5353678855121,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-457.5353678855121,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-457.5353678855121,-945.8322011913519]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -457.5353678855121, -945.8322011913519 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.949315324235272,-0.1647799361545026]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.949315324235272,-0.1647799361545026]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.949315324235272,-0.1647799361545026]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.949315324235272,-0.1647799361545026]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 4.949315324235272, -0.1647799361545026 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-914.4709274720367]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -409.4480815158952, -914.4709274720367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[105.30539122604432,53.14938538668156]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[105.30539122604432,53.14938538668156]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[105.30539122604432,53.14938538668156]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[105.30539122604432,53.14938538668156]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 105.30539122604432, 53.14938538668156 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-342.5440309146891,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-342.5440309146891,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-342.5440309146891,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-342.5440309146891,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -342.5440309146891, -878.928150590146 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.88661347523725,122.14418756917536]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.88661347523725,122.14418756917536]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.88661347523725,122.14418756917536]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[233.88661347523725,122.14418756917536]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 233.88661347523725, 122.14418756917536 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-832.9316158018167]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-832.9316158018167]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-832.9316158018167]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.82321608189386,-832.9316158018167]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -256.82321608189386, -832.9316158018167 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-127.19661804205714,-791.116584176063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-127.19661804205714,-791.116584176063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-127.19661804205714,-791.116584176063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-127.19661804205714,-791.116584176063]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -127.19661804205714, -791.116584176063 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-0.6173168689183512,187.98002011988535]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-0.6173168689183512,187.98002011988535]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-0.6173168689183512,187.98002011988535]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-0.6173168689183512,187.98002011988535]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -0.6173168689183512, 187.98002011988535 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,-709.5772725058431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 146.69183910663025, -709.5772725058431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.31478346457743,263.2470770462422]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.31478346457743,263.2470770462422]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.31478346457743,263.2470770462422]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[297.31478346457743,263.2470770462422]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 297.31478346457743, 263.2470770462422 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[345.3132393289608,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[345.3132393289608,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[345.3132393289608,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[345.3132393289608,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 345.3132393289608, -659.3992345549385 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[533.4808816448527,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 533.4808816448527, -617.5842029291847 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 646.381467034388, -600.8581902788832 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[688.1964986601419,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[688.1964986601419,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[688.1964986601419,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[688.1964986601419,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 688.1964986601419, -596.6766871163078 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[694.4687534040048,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 694.4687534040048, -596.6766871163078 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[698.6502565665802,-596.6766871163078]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 698.6502565665802, -596.6766871163078 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[707.013262891731,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[707.013262891731,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[707.013262891731,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[707.013262891731,-594.5859355350201]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 707.013262891731, -594.5859355350201 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[725.8300271233203,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[725.8300271233203,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[725.8300271233203,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[725.8300271233203,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 725.8300271233203, -588.313680791157 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 746.7375429361972, -582.041426047294 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 757.1913008426355, -573.6784197221433 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[763.4635555864987,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 763.4635555864987, -573.6784197221433 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[765.5543071677863,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[765.5543071677863,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[765.5543071677863,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[765.5543071677863,-573.6784197221433]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 765.5543071677863, -573.6784197221433 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[771.8265619116495,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[771.8265619116495,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[771.8265619116495,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[771.8265619116495,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 771.8265619116495, -571.5876681408556 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[778.0988166555125,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 778.0988166555125, -571.5876681408556 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[799.0063324683894,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[799.0063324683894,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[799.0063324683894,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[799.0063324683894,-563.2246618157048]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 799.0063324683894, -563.2246618157048 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[809.4600903748279,-556.9524070718418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[809.4600903748279,-556.9524070718418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[809.4600903748279,-556.9524070718418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[809.4600903748279,-556.9524070718418]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 809.4600903748279, -556.9524070718418 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[811.5508419561155,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 811.5508419561155, -554.8616554905541 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[813.6415935374033,-554.8616554905541]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 813.6415935374033, -554.8616554905541 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-552.7709039092664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-552.7709039092664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-552.7709039092664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,-552.7709039092664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 817.8230966999787, -552.7709039092664 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[819.9138482812663,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 819.9138482812663, -550.6801523279787 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 824.0953514438417, -546.4986491654033 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,-544.4078975841156]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 832.4583577689924, -544.4078975841156 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[845.0028672567186,-542.3171460028279]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 845.0028672567186, -542.3171460028279 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 851.2751220005815, -540.2263944215402 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 857.5473767444447, -540.2263944215402 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[863.8196314883077,-536.0448912589649]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 863.8196314883077, -536.0448912589649 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 868.001134650883, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '2a1cad71-3e49-434a-9914-3a58edf3826c' ],
- type: 1 }
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-587.2859013954222}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-587.2859013954222}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-587.2859013954222}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-587.2859013954222}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-587.2859013954222}
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: -587.2859013954222,
- type: 0 }
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-151.09092722861064}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-151.09092722861064}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-151.09092722861064}
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: -915.0277408479336,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-151.09092722861064}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-151.09092722861064}
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830', data: 0, type: 0 }
-calling update on data {"type":6,"data":"200 200","_id":"c0202789-e527-47c4-9fd5-1df972a844f6"}
-called update on data {"type":6,"data":"200 200","_id":"c0202789-e527-47c4-9fd5-1df972a844f6"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","b681f3b1-5d7b-40e8-bc74-ab179b8cae4d"],["5c207bd2-0390-5c35-8972-06d185f387fb","47f3540c-7ded-4c5a-a35e-67b8770c7564"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9c48c01b-ff87-4633-ab32-620bbe191b04"],["911954a3-bebc-5b20-81f3-3091a2e11907","7d5ef008-d5df-4ce3-9755-0c11310c5830"],["7b71638c-05b8-5573-9aa5-c737c9406a86","42373536-4991-4b59-aaf5-34559e43adef"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9a0e2341-8c47-4d60-84ec-5fa6158164b1"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e3b590f8-23f0-4feb-831d-cbc9a516828a"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3585fbf3-f32c-497f-aae6-9afcba185724"],["43606ee9-0825-51a3-98b2-06d36fdfd153","77d74b99-31c4-47b2-9d57-1138275216b7"],["51529209-4838-51c5-a520-0044fddf139c","c0202789-e527-47c4-9fd5-1df972a844f6"]],"_id":"6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","b681f3b1-5d7b-40e8-bc74-ab179b8cae4d"],["5c207bd2-0390-5c35-8972-06d185f387fb","47f3540c-7ded-4c5a-a35e-67b8770c7564"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9c48c01b-ff87-4633-ab32-620bbe191b04"],["911954a3-bebc-5b20-81f3-3091a2e11907","7d5ef008-d5df-4ce3-9755-0c11310c5830"],["7b71638c-05b8-5573-9aa5-c737c9406a86","42373536-4991-4b59-aaf5-34559e43adef"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9a0e2341-8c47-4d60-84ec-5fa6158164b1"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e3b590f8-23f0-4feb-831d-cbc9a516828a"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3585fbf3-f32c-497f-aae6-9afcba185724"],["43606ee9-0825-51a3-98b2-06d36fdfd153","77d74b99-31c4-47b2-9d57-1138275216b7"],["51529209-4838-51c5-a520-0044fddf139c","c0202789-e527-47c4-9fd5-1df972a844f6"]],"_id":"6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"}
-{ _id: '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'b681f3b1-5d7b-40e8-bc74-ab179b8cae4d' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '47f3540c-7ded-4c5a-a35e-67b8770c7564' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '9c48c01b-ff87-4633-ab32-620bbe191b04' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '7d5ef008-d5df-4ce3-9755-0c11310c5830' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '42373536-4991-4b59-aaf5-34559e43adef' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '9a0e2341-8c47-4d60-84ec-5fa6158164b1' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- 'e3b590f8-23f0-4feb-831d-cbc9a516828a' ],
- [ 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- '3585fbf3-f32c-497f-aae6-9afcba185724' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- '77d74b99-31c4-47b2-9d57-1138275216b7' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '6dfbd194-3fc7-406f-afdf-4da660582c3f' ] ],
- type: 5 }
-calling update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a","2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Set Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-27.43489264412767}
-calling update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-27.43489264412767}
-called update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-27.43489264412767}
-Incoming : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Set Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-71.62713896644365}
-calling update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-71.62713896644365}
-called update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-71.62713896644365}
-Incoming : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Set Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-calling update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-called update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-calling update on data {"type":6,"data":"200 200","_id":"6d36177d-50d8-4c1e-8c1f-dba0809dfe46"}
-called update on data {"type":6,"data":"200 200","_id":"6d36177d-50d8-4c1e-8c1f-dba0809dfe46"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","8af1e1a7-3da5-4c53-a314-f0b6c892d9a6"],["5c207bd2-0390-5c35-8972-06d185f387fb","4233a5b1-f703-44d8-a4f1-55a230db04e7"],["2a238eef-0bbb-5b78-b173-37b574fec97f","8a50fbb3-768f-4f03-84b5-fc84aaa4f21c"],["911954a3-bebc-5b20-81f3-3091a2e11907","672c99e2-ba2a-419b-9f06-903d9aeba563"],["7b71638c-05b8-5573-9aa5-c737c9406a86","e45192a6-2f99-48aa-ac1f-06cc5fd219f9"],["13a3cc01-c286-57e1-8746-baa3ced34e76","82d314ed-e4d4-46e4-ab5c-6fdd8002ea19"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","cc496f45-ce13-4ce5-859c-215d8634bc61"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3a9af79b-cca5-4901-bf0a-1a657e5fdb98"],["43606ee9-0825-51a3-98b2-06d36fdfd153","026d1b3e-debe-4e63-8a93-54ebd635b78e"],["51529209-4838-51c5-a520-0044fddf139c","6d36177d-50d8-4c1e-8c1f-dba0809dfe46"]],"_id":"3f886fd6-7d94-445f-88ab-0e1077dbf480"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","8af1e1a7-3da5-4c53-a314-f0b6c892d9a6"],["5c207bd2-0390-5c35-8972-06d185f387fb","4233a5b1-f703-44d8-a4f1-55a230db04e7"],["2a238eef-0bbb-5b78-b173-37b574fec97f","8a50fbb3-768f-4f03-84b5-fc84aaa4f21c"],["911954a3-bebc-5b20-81f3-3091a2e11907","672c99e2-ba2a-419b-9f06-903d9aeba563"],["7b71638c-05b8-5573-9aa5-c737c9406a86","e45192a6-2f99-48aa-ac1f-06cc5fd219f9"],["13a3cc01-c286-57e1-8746-baa3ced34e76","82d314ed-e4d4-46e4-ab5c-6fdd8002ea19"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","cc496f45-ce13-4ce5-859c-215d8634bc61"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3a9af79b-cca5-4901-bf0a-1a657e5fdb98"],["43606ee9-0825-51a3-98b2-06d36fdfd153","026d1b3e-debe-4e63-8a93-54ebd635b78e"],["51529209-4838-51c5-a520-0044fddf139c","6d36177d-50d8-4c1e-8c1f-dba0809dfe46"]],"_id":"3f886fd6-7d94-445f-88ab-0e1077dbf480"}
-calling update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Set Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":410.9532106073798}
-calling update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":410.9532106073798}
-called update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":410.9532106073798}
-Incoming : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Set Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-51.27364965658168}
-calling update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-51.27364965658168}
-called update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-51.27364965658168}
-Incoming : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Set Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-calling update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-called update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-calling update on data {"type":6,"data":"200 200","_id":"cfaaa950-58dc-4f4f-807c-334a2eadb3a3"}
-called update on data {"type":6,"data":"200 200","_id":"cfaaa950-58dc-4f4f-807c-334a2eadb3a3"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","571ecd75-8263-47fc-9741-f9f876a4b2da"],["5c207bd2-0390-5c35-8972-06d185f387fb","9d04275c-0bc8-4e43-8142-034824b2deae"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f2822f08-9fd6-4816-ba61-0dc0ea45a0c0"],["911954a3-bebc-5b20-81f3-3091a2e11907","78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b"],["7b71638c-05b8-5573-9aa5-c737c9406a86","9ffe2a20-7fcb-4460-aa91-922b69f91e24"],["13a3cc01-c286-57e1-8746-baa3ced34e76","d7d79305-cd6b-4653-a173-1284f76f5773"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","a59882d7-3daf-4574-b38e-4673bbac7db8"],["51529209-4838-51c5-a520-0044fddf139c","cfaaa950-58dc-4f4f-807c-334a2eadb3a3"]],"_id":"80586583-40b0-4d17-9f6f-12c4bf633d3a"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","571ecd75-8263-47fc-9741-f9f876a4b2da"],["5c207bd2-0390-5c35-8972-06d185f387fb","9d04275c-0bc8-4e43-8142-034824b2deae"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f2822f08-9fd6-4816-ba61-0dc0ea45a0c0"],["911954a3-bebc-5b20-81f3-3091a2e11907","78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b"],["7b71638c-05b8-5573-9aa5-c737c9406a86","9ffe2a20-7fcb-4460-aa91-922b69f91e24"],["13a3cc01-c286-57e1-8746-baa3ced34e76","d7d79305-cd6b-4653-a173-1284f76f5773"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","a59882d7-3daf-4574-b38e-4673bbac7db8"],["51529209-4838-51c5-a520-0044fddf139c","cfaaa950-58dc-4f4f-807c-334a2eadb3a3"]],"_id":"80586583-40b0-4d17-9f6f-12c4bf633d3a"}
-calling update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-called update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-calling update on data {"type":5,"data":[],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-called update on data {"type":5,"data":[],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-calling update on data {"type":1,"data":[],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-called update on data {"type":1,"data":[],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-calling update on data {"type":6,"data":"a nested collection","_id":"34cae9e4-f490-4dcb-939e-3a12aa5f8f15"}
-called update on data {"type":6,"data":"a nested collection","_id":"34cae9e4-f490-4dcb-939e-3a12aa5f8f15"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-Incoming : 011c260c-6b9a-400f-aed6-6bf3b2e658c6, receiving Set Field with data {"_id":"011c260c-6b9a-400f-aed6-6bf3b2e658c6","type":0,"data":1}
-calling update on data {"_id":"011c260c-6b9a-400f-aed6-6bf3b2e658c6","type":0,"data":1}
-called update on data {"_id":"011c260c-6b9a-400f-aed6-6bf3b2e658c6","type":0,"data":1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-calling update on data {"type":6,"data":"Transparent","_id":"2de81eb6-3acc-41a5-9f70-7ec578a14d71"}
-called update on data {"type":6,"data":"Transparent","_id":"2de81eb6-3acc-41a5-9f70-7ec578a14d71"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","2de81eb6-3acc-41a5-9f70-7ec578a14d71"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","2de81eb6-3acc-41a5-9f70-7ec578a14d71"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-calling update on data {"type":12,"data":{},"_id":"73c54fd8-2d7b-4f1c-9169-d7be67a2a587"}
-called update on data {"type":12,"data":{},"_id":"73c54fd8-2d7b-4f1c-9169-d7be67a2a587"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","2de81eb6-3acc-41a5-9f70-7ec578a14d71"],["59b58624-916f-50a0-8efa-7003a805bfad","73c54fd8-2d7b-4f1c-9169-d7be67a2a587"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","2de81eb6-3acc-41a5-9f70-7ec578a14d71"],["59b58624-916f-50a0-8efa-7003a805bfad","73c54fd8-2d7b-4f1c-9169-d7be67a2a587"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-calling update on data {"type":5,"data":[],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Incoming : f8cdda5e-254e-403b-bbbb-9e88ace7c7bc, receiving Set Field with data {"_id":"f8cdda5e-254e-403b-bbbb-9e88ace7c7bc","type":0,"data":-520.2579153241427}
-calling update on data {"_id":"f8cdda5e-254e-403b-bbbb-9e88ace7c7bc","type":0,"data":-520.2579153241427}
-called update on data {"_id":"f8cdda5e-254e-403b-bbbb-9e88ace7c7bc","type":0,"data":-520.2579153241427}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Incoming : 58c571c6-40c9-4d2d-9574-6abe806dd750, receiving Set Field with data {"_id":"58c571c6-40c9-4d2d-9574-6abe806dd750","type":0,"data":-993.9194875609688}
-calling update on data {"_id":"58c571c6-40c9-4d2d-9574-6abe806dd750","type":0,"data":-993.9194875609688}
-called update on data {"_id":"58c571c6-40c9-4d2d-9574-6abe806dd750","type":0,"data":-993.9194875609688}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Incoming : 93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209, receiving Set Field with data {"_id":"93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209","type":0,"data":1388.2590499750258}
-calling update on data {"_id":"93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209","type":0,"data":1388.2590499750258}
-called update on data {"_id":"93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209","type":0,"data":1388.2590499750258}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Incoming : 17cda66f-a43a-46bd-a18f-0334e7ed54ba, receiving Set Field with data {"_id":"17cda66f-a43a-46bd-a18f-0334e7ed54ba","type":0,"data":459.9653478832917}
-calling update on data {"_id":"17cda66f-a43a-46bd-a18f-0334e7ed54ba","type":0,"data":459.9653478832917}
-called update on data {"_id":"17cda66f-a43a-46bd-a18f-0334e7ed54ba","type":0,"data":459.9653478832917}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Incoming : 4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc, receiving Set Field with data {"_id":"4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc","type":0,"data":0}
-calling update on data {"_id":"4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc","type":0,"data":0}
-called update on data {"_id":"4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Incoming : bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2, receiving Set Field with data {"_id":"bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2","type":0,"data":0}
-calling update on data {"_id":"bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2","type":0,"data":0}
-called update on data {"_id":"bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Incoming : 2a2713bd-a3d5-4fc4-bb4b-37f4149bed64, receiving Set Field with data {"_id":"2a2713bd-a3d5-4fc4-bb4b-37f4149bed64","type":0,"data":-1}
-calling update on data {"_id":"2a2713bd-a3d5-4fc4-bb4b-37f4149bed64","type":0,"data":-1}
-called update on data {"_id":"2a2713bd-a3d5-4fc4-bb4b-37f4149bed64","type":0,"data":-1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-calling update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","b681f3b1-5d7b-40e8-bc74-ab179b8cae4d"],["5c207bd2-0390-5c35-8972-06d185f387fb","47f3540c-7ded-4c5a-a35e-67b8770c7564"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9c48c01b-ff87-4633-ab32-620bbe191b04"],["911954a3-bebc-5b20-81f3-3091a2e11907","7d5ef008-d5df-4ce3-9755-0c11310c5830"],["7b71638c-05b8-5573-9aa5-c737c9406a86","42373536-4991-4b59-aaf5-34559e43adef"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9a0e2341-8c47-4d60-84ec-5fa6158164b1"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e3b590f8-23f0-4feb-831d-cbc9a516828a"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3585fbf3-f32c-497f-aae6-9afcba185724"],["43606ee9-0825-51a3-98b2-06d36fdfd153","77d74b99-31c4-47b2-9d57-1138275216b7"],["51529209-4838-51c5-a520-0044fddf139c","c0202789-e527-47c4-9fd5-1df972a844f6"]],"_id":"6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"}
-Broadcast : 6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","b681f3b1-5d7b-40e8-bc74-ab179b8cae4d"],["5c207bd2-0390-5c35-8972-06d185f387fb","47f3540c-7ded-4c5a-a35e-67b8770c7564"],["2a238eef-0bbb-5b78-b173-37b574fec97f","9c48c01b-ff87-4633-ab32-620bbe191b04"],["911954a3-bebc-5b20-81f3-3091a2e11907","7d5ef008-d5df-4ce3-9755-0c11310c5830"],["7b71638c-05b8-5573-9aa5-c737c9406a86","42373536-4991-4b59-aaf5-34559e43adef"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9a0e2341-8c47-4d60-84ec-5fa6158164b1"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e3b590f8-23f0-4feb-831d-cbc9a516828a"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3585fbf3-f32c-497f-aae6-9afcba185724"],["43606ee9-0825-51a3-98b2-06d36fdfd153","77d74b99-31c4-47b2-9d57-1138275216b7"],["51529209-4838-51c5-a520-0044fddf139c","c0202789-e527-47c4-9fd5-1df972a844f6"]],"_id":"6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"c0202789-e527-47c4-9fd5-1df972a844f6"}],"ok":1}
-Wrote {"type":6,"data":"200 200","_id":"c0202789-e527-47c4-9fd5-1df972a844f6"}
-Broadcast : c0202789-e527-47c4-9fd5-1df972a844f6, sending data {"type":6,"data":"200 200","_id":"c0202789-e527-47c4-9fd5-1df972a844f6"}
-{ _id: 'c0202789-e527-47c4-9fd5-1df972a844f6',
- data: '200 200',
- type: 6 }
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '2a1cad71-3e49-434a-9914-3a58edf3826c' ],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-27.43489264412767}
-Broadcast : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, sending data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":-27.43489264412767}
-{ _id: 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9',
- data: -27.43489264412767,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-Broadcast : 672c99e2-ba2a-419b-9f06-903d9aeba563, sending data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":0}
-{ _id: '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19',
- data: -835.5639525857666,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-71.62713896644365}
-Broadcast : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, sending data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-71.62713896644365}
-{ _id: '672c99e2-ba2a-419b-9f06-903d9aeba563', data: 0, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","8af1e1a7-3da5-4c53-a314-f0b6c892d9a6"],["5c207bd2-0390-5c35-8972-06d185f387fb","4233a5b1-f703-44d8-a4f1-55a230db04e7"],["2a238eef-0bbb-5b78-b173-37b574fec97f","8a50fbb3-768f-4f03-84b5-fc84aaa4f21c"],["911954a3-bebc-5b20-81f3-3091a2e11907","672c99e2-ba2a-419b-9f06-903d9aeba563"],["7b71638c-05b8-5573-9aa5-c737c9406a86","e45192a6-2f99-48aa-ac1f-06cc5fd219f9"],["13a3cc01-c286-57e1-8746-baa3ced34e76","82d314ed-e4d4-46e4-ab5c-6fdd8002ea19"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","cc496f45-ce13-4ce5-859c-215d8634bc61"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3a9af79b-cca5-4901-bf0a-1a657e5fdb98"],["43606ee9-0825-51a3-98b2-06d36fdfd153","026d1b3e-debe-4e63-8a93-54ebd635b78e"],["51529209-4838-51c5-a520-0044fddf139c","6d36177d-50d8-4c1e-8c1f-dba0809dfe46"]],"_id":"3f886fd6-7d94-445f-88ab-0e1077dbf480"}
-Broadcast : 3f886fd6-7d94-445f-88ab-0e1077dbf480, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","8af1e1a7-3da5-4c53-a314-f0b6c892d9a6"],["5c207bd2-0390-5c35-8972-06d185f387fb","4233a5b1-f703-44d8-a4f1-55a230db04e7"],["2a238eef-0bbb-5b78-b173-37b574fec97f","8a50fbb3-768f-4f03-84b5-fc84aaa4f21c"],["911954a3-bebc-5b20-81f3-3091a2e11907","672c99e2-ba2a-419b-9f06-903d9aeba563"],["7b71638c-05b8-5573-9aa5-c737c9406a86","e45192a6-2f99-48aa-ac1f-06cc5fd219f9"],["13a3cc01-c286-57e1-8746-baa3ced34e76","82d314ed-e4d4-46e4-ab5c-6fdd8002ea19"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","cc496f45-ce13-4ce5-859c-215d8634bc61"],["ac03e21a-ec21-5402-a1ae-b66a7d8942a1","3a9af79b-cca5-4901-bf0a-1a657e5fdb98"],["43606ee9-0825-51a3-98b2-06d36fdfd153","026d1b3e-debe-4e63-8a93-54ebd635b78e"],["51529209-4838-51c5-a520-0044fddf139c","6d36177d-50d8-4c1e-8c1f-dba0809dfe46"]],"_id":"3f886fd6-7d94-445f-88ab-0e1077dbf480"}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"6d36177d-50d8-4c1e-8c1f-dba0809dfe46"}],"ok":1}
-Wrote {"type":6,"data":"200 200","_id":"6d36177d-50d8-4c1e-8c1f-dba0809dfe46"}
-Broadcast : 6d36177d-50d8-4c1e-8c1f-dba0809dfe46, sending data {"type":6,"data":"200 200","_id":"6d36177d-50d8-4c1e-8c1f-dba0809dfe46"}
-{ _id: '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '8af1e1a7-3da5-4c53-a314-f0b6c892d9a6' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '4233a5b1-f703-44d8-a4f1-55a230db04e7' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '8a50fbb3-768f-4f03-84b5-fc84aaa4f21c' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '672c99e2-ba2a-419b-9f06-903d9aeba563' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- 'cc496f45-ce13-4ce5-859c-215d8634bc61' ],
- [ 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- '3a9af79b-cca5-4901-bf0a-1a657e5fdb98' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- '026d1b3e-debe-4e63-8a93-54ebd635b78e' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '6d36177d-50d8-4c1e-8c1f-dba0809dfe46' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '9ffe2a20-7fcb-4460-aa91-922b69f91e24',
- data: 584.8248202707501,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":410.9532106073798}
-Broadcast : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, sending data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":410.9532106073798}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data: [ '2a1cad71-3e49-434a-9914-3a58edf3826c' ],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-51.27364965658168}
-Broadcast : d7d79305-cd6b-4653-a173-1284f76f5773, sending data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-51.27364965658168}
-{ _id: 'd7d79305-cd6b-4653-a173-1284f76f5773',
- data: -51.27364965658168,
- type: 0 }
-{ _id: '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b',
- data: -1,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-Broadcast : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, sending data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":0}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"cfaaa950-58dc-4f4f-807c-334a2eadb3a3"}],"ok":1}
-Wrote {"type":6,"data":"200 200","_id":"cfaaa950-58dc-4f4f-807c-334a2eadb3a3"}
-Broadcast : cfaaa950-58dc-4f4f-807c-334a2eadb3a3, sending data {"type":6,"data":"200 200","_id":"cfaaa950-58dc-4f4f-807c-334a2eadb3a3"}
-{ _id: 'cfaaa950-58dc-4f4f-807c-334a2eadb3a3',
- data: '200 200',
- type: 6 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-Broadcast : 0dc04257-8187-4391-a1bf-a63c30a9e922, sending data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-{ _id: '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '571ecd75-8263-47fc-9741-f9f876a4b2da' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '9d04275c-0bc8-4e43-8142-034824b2deae' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- 'f2822f08-9fd6-4816-ba61-0dc0ea45a0c0' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '9ffe2a20-7fcb-4460-aa91-922b69f91e24' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- 'd7d79305-cd6b-4653-a173-1284f76f5773' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- 'a59882d7-3daf-4574-b38e-4673bbac7db8' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '255415d7-52dd-4a1f-8b8f-4503a6f56771' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","571ecd75-8263-47fc-9741-f9f876a4b2da"],["5c207bd2-0390-5c35-8972-06d185f387fb","9d04275c-0bc8-4e43-8142-034824b2deae"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f2822f08-9fd6-4816-ba61-0dc0ea45a0c0"],["911954a3-bebc-5b20-81f3-3091a2e11907","78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b"],["7b71638c-05b8-5573-9aa5-c737c9406a86","9ffe2a20-7fcb-4460-aa91-922b69f91e24"],["13a3cc01-c286-57e1-8746-baa3ced34e76","d7d79305-cd6b-4653-a173-1284f76f5773"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","a59882d7-3daf-4574-b38e-4673bbac7db8"],["51529209-4838-51c5-a520-0044fddf139c","cfaaa950-58dc-4f4f-807c-334a2eadb3a3"]],"_id":"80586583-40b0-4d17-9f6f-12c4bf633d3a"}
-Broadcast : 80586583-40b0-4d17-9f6f-12c4bf633d3a, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","571ecd75-8263-47fc-9741-f9f876a4b2da"],["5c207bd2-0390-5c35-8972-06d185f387fb","9d04275c-0bc8-4e43-8142-034824b2deae"],["2a238eef-0bbb-5b78-b173-37b574fec97f","f2822f08-9fd6-4816-ba61-0dc0ea45a0c0"],["911954a3-bebc-5b20-81f3-3091a2e11907","78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b"],["7b71638c-05b8-5573-9aa5-c737c9406a86","9ffe2a20-7fcb-4460-aa91-922b69f91e24"],["13a3cc01-c286-57e1-8746-baa3ced34e76","d7d79305-cd6b-4653-a173-1284f76f5773"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","a59882d7-3daf-4574-b38e-4673bbac7db8"],["51529209-4838-51c5-a520-0044fddf139c","cfaaa950-58dc-4f4f-807c-334a2eadb3a3"]],"_id":"80586583-40b0-4d17-9f6f-12c4bf633d3a"}
-{ _id: '0dc04257-8187-4391-a1bf-a63c30a9e922',
- data: {},
- type: 12 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-Broadcast : a9ab3cae-9c8f-4d45-a84f-1c748c805792, sending data {"type":5,"data":[],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-{ _id: 'a9ab3cae-9c8f-4d45-a84f-1c748c805792',
- data: [],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-Broadcast : a9ab3cae-9c8f-4d45-a84f-1c748c805792, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-{ _id: 'a9ab3cae-9c8f-4d45-a84f-1c748c805792',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}],"ok":1}
-Wrote {"type":1,"data":[],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-Broadcast : 21840dfa-8d74-465d-86ca-09b8e949a5a0, sending data {"type":1,"data":[],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-{ _id: '21840dfa-8d74-465d-86ca-09b8e949a5a0',
- data: [],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-Broadcast : a9ab3cae-9c8f-4d45-a84f-1c748c805792, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-{ _id: '21840dfa-8d74-465d-86ca-09b8e949a5a0',
- data: [],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-Broadcast : 21840dfa-8d74-465d-86ca-09b8e949a5a0, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-{ _id: 'a9ab3cae-9c8f-4d45-a84f-1c748c805792',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '21840dfa-8d74-465d-86ca-09b8e949a5a0' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"34cae9e4-f490-4dcb-939e-3a12aa5f8f15"}],"ok":1}
-Wrote {"type":6,"data":"a nested collection","_id":"34cae9e4-f490-4dcb-939e-3a12aa5f8f15"}
-Broadcast : 34cae9e4-f490-4dcb-939e-3a12aa5f8f15, sending data {"type":6,"data":"a nested collection","_id":"34cae9e4-f490-4dcb-939e-3a12aa5f8f15"}
-{ _id: 'a9ab3cae-9c8f-4d45-a84f-1c748c805792',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '21840dfa-8d74-465d-86ca-09b8e949a5a0' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-Broadcast : a9ab3cae-9c8f-4d45-a84f-1c748c805792, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-{ _id: '34cae9e4-f490-4dcb-939e-3a12aa5f8f15',
- data: 'a nested collection',
- type: 6 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"011c260c-6b9a-400f-aed6-6bf3b2e658c6"}],"ok":1}
-Wrote {"_id":"011c260c-6b9a-400f-aed6-6bf3b2e658c6","type":0,"data":1}
-Broadcast : 011c260c-6b9a-400f-aed6-6bf3b2e658c6, sending data {"_id":"011c260c-6b9a-400f-aed6-6bf3b2e658c6","type":0,"data":1}
-{ _id: '011c260c-6b9a-400f-aed6-6bf3b2e658c6', data: 1, type: 0 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"2de81eb6-3acc-41a5-9f70-7ec578a14d71"}],"ok":1}
-Wrote {"type":6,"data":"Transparent","_id":"2de81eb6-3acc-41a5-9f70-7ec578a14d71"}
-Broadcast : 2de81eb6-3acc-41a5-9f70-7ec578a14d71, sending data {"type":6,"data":"Transparent","_id":"2de81eb6-3acc-41a5-9f70-7ec578a14d71"}
-{ _id: 'a9ab3cae-9c8f-4d45-a84f-1c748c805792',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '21840dfa-8d74-465d-86ca-09b8e949a5a0' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '34cae9e4-f490-4dcb-939e-3a12aa5f8f15' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-Broadcast : a9ab3cae-9c8f-4d45-a84f-1c748c805792, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-{ _id: '2de81eb6-3acc-41a5-9f70-7ec578a14d71',
- data: 'Transparent',
- type: 6 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","2de81eb6-3acc-41a5-9f70-7ec578a14d71"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-Broadcast : a9ab3cae-9c8f-4d45-a84f-1c748c805792, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","2de81eb6-3acc-41a5-9f70-7ec578a14d71"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"73c54fd8-2d7b-4f1c-9169-d7be67a2a587"}],"ok":1}
-Wrote {"type":12,"data":{},"_id":"73c54fd8-2d7b-4f1c-9169-d7be67a2a587"}
-Broadcast : 73c54fd8-2d7b-4f1c-9169-d7be67a2a587, sending data {"type":12,"data":{},"_id":"73c54fd8-2d7b-4f1c-9169-d7be67a2a587"}
-{ _id: 'a9ab3cae-9c8f-4d45-a84f-1c748c805792',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '21840dfa-8d74-465d-86ca-09b8e949a5a0' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '34cae9e4-f490-4dcb-939e-3a12aa5f8f15' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '011c260c-6b9a-400f-aed6-6bf3b2e658c6' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- '2de81eb6-3acc-41a5-9f70-7ec578a14d71' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","2de81eb6-3acc-41a5-9f70-7ec578a14d71"],["59b58624-916f-50a0-8efa-7003a805bfad","73c54fd8-2d7b-4f1c-9169-d7be67a2a587"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-Broadcast : a9ab3cae-9c8f-4d45-a84f-1c748c805792, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","21840dfa-8d74-465d-86ca-09b8e949a5a0"],["51529209-4838-51c5-a520-0044fddf139c","34cae9e4-f490-4dcb-939e-3a12aa5f8f15"],["771c0a88-bd02-5e92-953f-e9042a191928","011c260c-6b9a-400f-aed6-6bf3b2e658c6"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","2de81eb6-3acc-41a5-9f70-7ec578a14d71"],["59b58624-916f-50a0-8efa-7003a805bfad","73c54fd8-2d7b-4f1c-9169-d7be67a2a587"]],"_id":"a9ab3cae-9c8f-4d45-a84f-1c748c805792"}
-{ _id: 'a9ab3cae-9c8f-4d45-a84f-1c748c805792',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- '21840dfa-8d74-465d-86ca-09b8e949a5a0' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- '34cae9e4-f490-4dcb-939e-3a12aa5f8f15' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '011c260c-6b9a-400f-aed6-6bf3b2e658c6' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- '2de81eb6-3acc-41a5-9f70-7ec578a14d71' ],
- [ '59b58624-916f-50a0-8efa-7003a805bfad',
- '73c54fd8-2d7b-4f1c-9169-d7be67a2a587' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"d56974e0-5327-4f68-9268-128975957d7b"}],"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data: [],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"}],"ok":1}
-Wrote {"_id":"f8cdda5e-254e-403b-bbbb-9e88ace7c7bc","type":0,"data":-520.2579153241427}
-Broadcast : f8cdda5e-254e-403b-bbbb-9e88ace7c7bc, sending data {"_id":"f8cdda5e-254e-403b-bbbb-9e88ace7c7bc","type":0,"data":-520.2579153241427}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'f8cdda5e-254e-403b-bbbb-9e88ace7c7bc' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"58c571c6-40c9-4d2d-9574-6abe806dd750"}],"ok":1}
-Wrote {"_id":"58c571c6-40c9-4d2d-9574-6abe806dd750","type":0,"data":-993.9194875609688}
-Broadcast : 58c571c6-40c9-4d2d-9574-6abe806dd750, sending data {"_id":"58c571c6-40c9-4d2d-9574-6abe806dd750","type":0,"data":-993.9194875609688}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'f8cdda5e-254e-403b-bbbb-9e88ace7c7bc' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-{ _id: '58c571c6-40c9-4d2d-9574-6abe806dd750',
- data: -993.9194875609688,
- type: 0 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"}],"ok":1}
-Wrote {"_id":"93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209","type":0,"data":1388.2590499750258}
-Broadcast : 93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209, sending data {"_id":"93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209","type":0,"data":1388.2590499750258}
-{ _id: '93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209',
- data: 1388.2590499750258,
- type: 0 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"17cda66f-a43a-46bd-a18f-0334e7ed54ba"}],"ok":1}
-Wrote {"_id":"17cda66f-a43a-46bd-a18f-0334e7ed54ba","type":0,"data":459.9653478832917}
-Broadcast : 17cda66f-a43a-46bd-a18f-0334e7ed54ba, sending data {"_id":"17cda66f-a43a-46bd-a18f-0334e7ed54ba","type":0,"data":459.9653478832917}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'f8cdda5e-254e-403b-bbbb-9e88ace7c7bc' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '58c571c6-40c9-4d2d-9574-6abe806dd750' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-{ _id: '17cda66f-a43a-46bd-a18f-0334e7ed54ba',
- data: 459.9653478832917,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"}],"ok":1}
-Wrote {"_id":"4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc","type":0,"data":0}
-Broadcast : 4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc, sending data {"_id":"4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc","type":0,"data":0}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'f8cdda5e-254e-403b-bbbb-9e88ace7c7bc' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '58c571c6-40c9-4d2d-9574-6abe806dd750' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '17cda66f-a43a-46bd-a18f-0334e7ed54ba' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'f8cdda5e-254e-403b-bbbb-9e88ace7c7bc' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '58c571c6-40c9-4d2d-9574-6abe806dd750' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '17cda66f-a43a-46bd-a18f-0334e7ed54ba' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"}],"ok":1}
-Wrote {"_id":"bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2","type":0,"data":0}
-Broadcast : bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2, sending data {"_id":"bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2","type":0,"data":0}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'f8cdda5e-254e-403b-bbbb-9e88ace7c7bc' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '58c571c6-40c9-4d2d-9574-6abe806dd750' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '17cda66f-a43a-46bd-a18f-0334e7ed54ba' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- 'bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"}],"ok":1}
-Wrote {"_id":"2a2713bd-a3d5-4fc4-bb4b-37f4149bed64","type":0,"data":-1}
-Broadcast : 2a2713bd-a3d5-4fc4-bb4b-37f4149bed64, sending data {"_id":"2a2713bd-a3d5-4fc4-bb4b-37f4149bed64","type":0,"data":-1}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'f8cdda5e-254e-403b-bbbb-9e88ace7c7bc' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '58c571c6-40c9-4d2d-9574-6abe806dd750' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '17cda66f-a43a-46bd-a18f-0334e7ed54ba' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- 'bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-{ _id: '2a2713bd-a3d5-4fc4-bb4b-37f4149bed64',
- data: -1,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '2a1cad71-3e49-434a-9914-3a58edf3826c',
- 'd56974e0-5327-4f68-9268-128975957d7b' ],
- type: 1 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[868.001134650883,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 868.001134650883, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":1,"data":[],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-called update on data {"type":1,"data":[],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}],"ok":1}
-Wrote {"type":1,"data":[],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-Broadcast : 6ea228be-7e01-4131-a9a9-b5b61b29f342, sending data {"type":1,"data":[],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-{ _id: '6ea228be-7e01-4131-a9a9-b5b61b29f342',
- data: [],
- type: 1 }
-calling update on data {"type":1,"data":[],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-called update on data {"type":1,"data":[],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":1,"data":[],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-Broadcast : 6ea228be-7e01-4131-a9a9-b5b61b29f342, sending data {"type":1,"data":[],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"],["43606ee9-0825-51a3-98b2-06d36fdfd153","6ea228be-7e01-4131-a9a9-b5b61b29f342"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"],["43606ee9-0825-51a3-98b2-06d36fdfd153","6ea228be-7e01-4131-a9a9-b5b61b29f342"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'f8cdda5e-254e-403b-bbbb-9e88ace7c7bc' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '58c571c6-40c9-4d2d-9574-6abe806dd750' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '17cda66f-a43a-46bd-a18f-0334e7ed54ba' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- 'bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '2a2713bd-a3d5-4fc4-bb4b-37f4149bed64' ] ],
- type: 5 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[691.0387734062253,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[691.0387734062253,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-undefined
-null
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[691.0387734062253,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[691.0387734062253,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-calling update on data {"type":1,"data":["bf792c34-1f36-4536-aba0-c0f9ecd3f410"],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-called update on data {"type":1,"data":["bf792c34-1f36-4536-aba0-c0f9ecd3f410"],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '6ea228be-7e01-4131-a9a9-b5b61b29f342',
- data: [],
- type: 1 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}],"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[691.0387734062253,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[691.0387734062253,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"],["43606ee9-0825-51a3-98b2-06d36fdfd153","6ea228be-7e01-4131-a9a9-b5b61b29f342"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"],["43606ee9-0825-51a3-98b2-06d36fdfd153","6ea228be-7e01-4131-a9a9-b5b61b29f342"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[691.0387734062253,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[691.0387734062253,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 691.0387734062253, 228.98267394164577 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["bf792c34-1f36-4536-aba0-c0f9ecd3f410"],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-Broadcast : 6ea228be-7e01-4131-a9a9-b5b61b29f342, sending data {"type":1,"data":["bf792c34-1f36-4536-aba0-c0f9ecd3f410"],"_id":"6ea228be-7e01-4131-a9a9-b5b61b29f342"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 868.001134650883, -533.9541396776772 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[865.9103830695955,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '6ea228be-7e01-4131-a9a9-b5b61b29f342',
- data: [ 'bf792c34-1f36-4536-aba0-c0f9ecd3f410' ],
- type: 1 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[686.85727024365,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[686.85727024365,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[686.85727024365,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[686.85727024365,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 686.85727024365, 228.98267394164577 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[861.7288799070201,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 861.7288799070201, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[682.6757670810746,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[682.6757670810746,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[682.6757670810746,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[682.6757670810746,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 682.6757670810746, 222.7104191977827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[857.5473767444447,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 857.5473767444447, -540.2263944215402 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[676.4035123372114,216.43816445391963]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[676.4035123372114,216.43816445391963]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[676.4035123372114,216.43816445391963]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[676.4035123372114,216.43816445391963]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 676.4035123372114, 216.43816445391963 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[851.2751220005815,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 851.2751220005815, -546.4986491654033 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[672.222009174636,216.43816445391963]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[672.222009174636,216.43816445391963]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[672.222009174636,216.43816445391963]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[672.222009174636,216.43816445391963]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 672.222009174636, 216.43816445391963 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[847.0936188380061,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[847.0936188380061,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[847.0936188380061,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[847.0936188380061,-546.4986491654033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 847.0936188380061, -546.4986491654033 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[657.5867481056223,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[657.5867481056223,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[657.5867481056223,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[657.5867481056223,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 657.5867481056223, 222.7104191977827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[832.4583577689924,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 832.4583577689924, -540.2263944215402 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[809.4600903748279,-529.7726365151018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[809.4600903748279,-529.7726365151018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[809.4600903748279,-529.7726365151018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[809.4600903748279,-529.7726365151018]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 809.4600903748279, -529.7726365151018 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[786.4618229806632,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 786.4618229806632, -515.137375446088 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 773.9173134929371, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[769.7358103303617,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 769.7358103303617, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 767.6450587490741, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[765.5543071677863,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[765.5543071677863,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[765.5543071677863,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[765.5543071677863,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 765.5543071677863, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,-508.8651207022249]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 761.3728040052109, -508.8651207022249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[757.1913008426355,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 757.1913008426355, -510.9558722835126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[755.100549261348,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[755.100549261348,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[748.8282945174848,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[748.8282945174848,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 757.1913008426355, -510.9558722835126 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[755.100549261348,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[755.100549261348,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 755.100549261348, -513.0466238648003 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[748.8282945174848,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[748.8282945174848,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[746.7375429361972,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 746.7375429361972, -515.137375446088 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[742.5560397736218,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[742.5560397736218,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[742.5560397736218,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[742.5560397736218,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 742.5560397736218, -515.137375446088 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[740.465288192334,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[740.465288192334,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[740.465288192334,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[740.465288192334,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 740.465288192334, -515.137375446088 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[736.2837850297586,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[736.2837850297586,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[736.2837850297586,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[736.2837850297586,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 736.2837850297586, -515.137375446088 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[719.5577723794571,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[719.5577723794571,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[719.5577723794571,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[719.5577723794571,-510.9558722835126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 719.5577723794571, -510.9558722835126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[707.013262891731,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[707.013262891731,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[707.013262891731,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[707.013262891731,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 707.013262891731, -504.6836175396495 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[684.0149954975665,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[684.0149954975665,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[684.0149954975665,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[684.0149954975665,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 684.0149954975665, -492.13910805192336 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 675.6519891724157, -485.8668533080603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[671.4704860098403,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 671.4704860098403, -485.8668533080603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[669.3797344285525,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[669.3797344285525,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[669.3797344285525,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[669.3797344285525,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 669.3797344285525, -485.8668533080603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 667.288982847265, -485.8668533080603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[661.0167281034018,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[661.0167281034018,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[661.0167281034018,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[661.0167281034018,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 661.0167281034018, -485.8668533080603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 650.5629701969634, -485.8668533080603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, -485.8668533080603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[598.2941806647713,-485.8668533080603]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 598.2941806647713, -485.8668533080603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[571.1144101080312,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 571.1144101080312, -487.957604889348 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-494.22985963321105]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 546.0253911325789, -494.22985963321105 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[523.0271237384144,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 523.0271237384144, -496.32061121449874 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[481.21209211266057,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 481.21209211266057, -496.32061121449874 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[431.034054161756,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[431.034054161756,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[431.034054161756,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[431.034054161756,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 431.034054161756, -496.32061121449874 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 382.9467677921392, -496.32061121449874 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 336.95023300381, -496.32061121449874 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,-492.13910805192336]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, -492.13910805192336 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.32016975230238,-490.04835647063567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.32016975230238,-490.04835647063567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.32016975230238,-490.04835647063567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.32016975230238,-490.04835647063567]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 253.32016975230238, -490.04835647063567 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.86814445169932,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.86814445169932,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.86814445169932,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[219.86814445169932,-479.5945985641972]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 219.86814445169932, -479.5945985641972 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-475.41309540162183]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 203.1421318013978, -475.41309540162183 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[182.2346159885209,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 182.2346159885209, -469.14084065775876 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.59935491950716,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.59935491950716,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.59935491950716,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[167.59935491950716,-464.9593374951834]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 167.59935491950716, -464.9593374951834 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[148.78259068791783,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 148.78259068791783, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 77.69703692413657, -421.05355428814187 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-12.20528107123414,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -12.20528107123414, -391.7830321501143 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-152.28563701750932,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -152.28563701750932, -343.6957457804974 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-289.33620466701745]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-289.33620466701745]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-289.33620466701745]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-350.90703723983984,-289.33620466701745]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -350.90703723983984, -289.33620466701745 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-224.52290564709904]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -568.3452016937596, -224.52290564709904 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-810.8723851231316,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-810.8723851231316,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-810.8723851231316,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-810.8723851231316,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-923.7729705126668,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-923.7729705126668,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -810.8723851231316, -172.25411611490676 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -810.8723851231316, -172.25411611490676 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-923.7729705126668,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-923.7729705126668,-155.52810346460524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-a user has connected
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-848.50591358631,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-848.50591358631,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-848.50591358631,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-848.50591358631,-513.0466238648003]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -848.50591358631, -513.0466238648003 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -371.81455305271675, -370.8755163372374 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.5595049852926,-113.71307183885165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.5595049852926,-113.71307183885165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.5595049852926,-113.71307183885165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.5595049852926,-113.71307183885165]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 696.5595049852926, -113.71307183885165 ] ],
- type: 14 }
-calling update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-called update on data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-Broadcast : 6c3acd53-3a16-59b2-bc11-62c6d79b2cea, sending data {"type":2,"data":"Prototype","_id":"6c3acd53-3a16-59b2-bc11-62c6d79b2cea"}
-{ _id: '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- data: 'Prototype',
- type: 2 }
-calling update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-called update on data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-calling update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-called update on data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-calling update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-called update on data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-calling update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-called update on data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-calling update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-called update on data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-calling update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-called update on data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-calling update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-called update on data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-calling update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-called update on data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-calling update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-called update on data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-calling update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-called update on data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-calling update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-called update on data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-calling update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-called update on data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-calling update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-called update on data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-calling update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-called update on data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-calling update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-called update on data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-calling update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-called update on data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-calling update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-called update on data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-calling update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-called update on data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-calling update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-called update on data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-calling update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-called update on data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-calling update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-called update on data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-calling update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-called update on data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-calling update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-called update on data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-calling update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-called update on data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-calling update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-called update on data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-calling update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-called update on data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-calling update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-called update on data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-calling update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-called update on data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-calling update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-called update on data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-calling update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-called update on data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-calling update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-called update on data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-calling update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-called update on data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-calling update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-called update on data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-calling update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-called update on data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-calling update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-called update on data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-calling update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-called update on data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-calling update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-called update on data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-calling update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-called update on data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-calling update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-called update on data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-calling update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-called update on data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-calling update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-called update on data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-calling update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-called update on data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-Broadcast : 7b71638c-05b8-5573-9aa5-c737c9406a86, sending data {"type":2,"data":"X","_id":"7b71638c-05b8-5573-9aa5-c737c9406a86"}
-{ _id: '7b71638c-05b8-5573-9aa5-c737c9406a86',
- data: 'X',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-Broadcast : 13a3cc01-c286-57e1-8746-baa3ced34e76, sending data {"type":2,"data":"Y","_id":"13a3cc01-c286-57e1-8746-baa3ced34e76"}
-{ _id: '13a3cc01-c286-57e1-8746-baa3ced34e76',
- data: 'Y',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-Broadcast : 911954a3-bebc-5b20-81f3-3091a2e11907, sending data {"type":2,"data":"Page","_id":"911954a3-bebc-5b20-81f3-3091a2e11907"}
-{ _id: '911954a3-bebc-5b20-81f3-3091a2e11907',
- data: 'Page',
- type: 2 }
-{ _id: '51529209-4838-51c5-a520-0044fddf139c',
- data: 'Title',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-Broadcast : 4cd12c43-3240-58dd-88bf-ce978edb2fde, sending data {"type":2,"data":"Author","_id":"4cd12c43-3240-58dd-88bf-ce978edb2fde"}
-{ _id: '4cd12c43-3240-58dd-88bf-ce978edb2fde',
- data: 'Author',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-Broadcast : 51529209-4838-51c5-a520-0044fddf139c, sending data {"type":2,"data":"Title","_id":"51529209-4838-51c5-a520-0044fddf139c"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-Broadcast : 8efd3b8a-ce6c-5f44-9085-90a8b7cd2202, sending data {"type":2,"data":"PanX","_id":"8efd3b8a-ce6c-5f44-9085-90a8b7cd2202"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-Broadcast : 048d25ac-b841-5728-a599-e3a432137881, sending data {"type":2,"data":"PanY","_id":"048d25ac-b841-5728-a599-e3a432137881"}
-{ _id: '048d25ac-b841-5728-a599-e3a432137881',
- data: 'PanY',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-Broadcast : f9f69d93-df75-5021-883a-efac00502b09, sending data {"type":2,"data":"Scale","_id":"f9f69d93-df75-5021-883a-efac00502b09"}
-{ _id: '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- data: 'PanX',
- type: 2 }
-{ _id: 'f9f69d93-df75-5021-883a-efac00502b09',
- data: 'Scale',
- type: 2 }
-{ _id: '2e6a5061-4d6c-5895-8022-9b4f4fc7118b',
- data: 'NativeWidth',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-Broadcast : ac03e21a-ec21-5402-a1ae-b66a7d8942a1, sending data {"type":2,"data":"NativeHeight","_id":"ac03e21a-ec21-5402-a1ae-b66a7d8942a1"}
-{ _id: 'ac03e21a-ec21-5402-a1ae-b66a7d8942a1',
- data: 'NativeHeight',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-Broadcast : 2e6a5061-4d6c-5895-8022-9b4f4fc7118b, sending data {"type":2,"data":"NativeWidth","_id":"2e6a5061-4d6c-5895-8022-9b4f4fc7118b"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-Broadcast : 5c207bd2-0390-5c35-8972-06d185f387fb, sending data {"type":2,"data":"Width","_id":"5c207bd2-0390-5c35-8972-06d185f387fb"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-Broadcast : 2a238eef-0bbb-5b78-b173-37b574fec97f, sending data {"type":2,"data":"Height","_id":"2a238eef-0bbb-5b78-b173-37b574fec97f"}
-{ _id: '2a238eef-0bbb-5b78-b173-37b574fec97f',
- data: 'Height',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-Broadcast : 3559ca27-b3fa-5407-b822-07a1c9a0664c, sending data {"type":2,"data":"ZIndex","_id":"3559ca27-b3fa-5407-b822-07a1c9a0664c"}
-{ _id: '5c207bd2-0390-5c35-8972-06d185f387fb',
- data: 'Width',
- type: 2 }
-{ _id: '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- data: 'ZIndex',
- type: 2 }
-{ _id: '530318f9-9b84-5b90-b926-530590cdd5c3',
- data: 'Data',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-Broadcast : c4bbea89-4e57-551a-98fc-af3b6dacccb1, sending data {"type":2,"data":"Annotations","_id":"c4bbea89-4e57-551a-98fc-af3b6dacccb1"}
-{ _id: 'c4bbea89-4e57-551a-98fc-af3b6dacccb1',
- data: 'Annotations',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-Broadcast : 530318f9-9b84-5b90-b926-530590cdd5c3, sending data {"type":2,"data":"Data","_id":"530318f9-9b84-5b90-b926-530590cdd5c3"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-Broadcast : 771c0a88-bd02-5e92-953f-e9042a191928, sending data {"type":2,"data":"ViewType","_id":"771c0a88-bd02-5e92-953f-e9042a191928"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-Broadcast : 32a999d2-06a3-534f-a12e-c2d710adf3e6, sending data {"type":2,"data":"Layout","_id":"32a999d2-06a3-534f-a12e-c2d710adf3e6"}
-{ _id: '32a999d2-06a3-534f-a12e-c2d710adf3e6',
- data: 'Layout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-Broadcast : bf70b65d-62da-53e6-82b2-1b849418dc2e, sending data {"type":2,"data":"BackgroundColor","_id":"bf70b65d-62da-53e6-82b2-1b849418dc2e"}
-{ _id: '771c0a88-bd02-5e92-953f-e9042a191928',
- data: 'ViewType',
- type: 2 }
-{ _id: 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- data: 'BackgroundColor',
- type: 2 }
-{ _id: '2588a9ff-2129-5018-84c9-7743d470a4cf',
- data: 'BackgroundLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-Broadcast : f2b3b5fc-7f38-5783-9218-badc8dcab185, sending data {"type":2,"data":"OverlayLayout","_id":"f2b3b5fc-7f38-5783-9218-badc8dcab185"}
-{ _id: 'f2b3b5fc-7f38-5783-9218-badc8dcab185',
- data: 'OverlayLayout',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-Broadcast : 2588a9ff-2129-5018-84c9-7743d470a4cf, sending data {"type":2,"data":"BackgroundLayout","_id":"2588a9ff-2129-5018-84c9-7743d470a4cf"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-Broadcast : d0c33158-59b4-5c4a-8a27-b24570e955f0, sending data {"type":2,"data":"LayoutKeys","_id":"d0c33158-59b4-5c4a-8a27-b24570e955f0"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-Broadcast : eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b, sending data {"type":2,"data":"LayoutFields","_id":"eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b"}
-{ _id: 'eb3eeb75-e2fc-5a13-92a7-7e4ff8c2c44b',
- data: 'LayoutFields',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-Broadcast : 249e18fb-d914-5c26-a367-64a52fdd1daa, sending data {"type":2,"data":"SchemaColumns","_id":"249e18fb-d914-5c26-a367-64a52fdd1daa"}
-{ _id: 'd0c33158-59b4-5c4a-8a27-b24570e955f0',
- data: 'LayoutKeys',
- type: 2 }
-{ _id: '249e18fb-d914-5c26-a367-64a52fdd1daa',
- data: 'SchemaColumns',
- type: 2 }
-{ _id: 'e51646f0-30ef-5838-8371-9a88b0bc2a30',
- data: 'SchemaSplitPercentage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-Broadcast : 29e3ad9f-39a2-5fe3-9258-08977e55d7ee, sending data {"type":2,"data":"Caption","_id":"29e3ad9f-39a2-5fe3-9258-08977e55d7ee"}
-{ _id: '29e3ad9f-39a2-5fe3-9258-08977e55d7ee',
- data: 'Caption',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-Broadcast : e51646f0-30ef-5838-8371-9a88b0bc2a30, sending data {"type":2,"data":"SchemaSplitPercentage","_id":"e51646f0-30ef-5838-8371-9a88b0bc2a30"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-Broadcast : 87bcf74b-a9de-5523-a148-39e5f7e35c5f, sending data {"type":2,"data":"ActiveFrame","_id":"87bcf74b-a9de-5523-a148-39e5f7e35c5f"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-Broadcast : 77aeae9e-9bc5-5318-b4cf-219d29204f73, sending data {"type":2,"data":"ActiveWorkspace","_id":"77aeae9e-9bc5-5318-b4cf-219d29204f73"}
-{ _id: '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- data: 'ActiveWorkspace',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-Broadcast : ebdc0250-58e7-5b19-9061-fd9a60d42e07, sending data {"type":2,"data":"ActiveDB","_id":"ebdc0250-58e7-5b19-9061-fd9a60d42e07"}
-{ _id: '87bcf74b-a9de-5523-a148-39e5f7e35c5f',
- data: 'ActiveFrame',
- type: 2 }
-{ _id: 'ebdc0250-58e7-5b19-9061-fd9a60d42e07',
- data: 'ActiveDB',
- type: 2 }
-{ _id: 'db106646-3e58-5a71-8121-84753b400f96',
- data: 'DocumentText',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-Broadcast : 91ed6e52-c6aa-57aa-b98b-04602411c3d3, sending data {"type":2,"data":"LinkedToDocs","_id":"91ed6e52-c6aa-57aa-b98b-04602411c3d3"}
-{ _id: '91ed6e52-c6aa-57aa-b98b-04602411c3d3',
- data: 'LinkedToDocs',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-Broadcast : db106646-3e58-5a71-8121-84753b400f96, sending data {"type":2,"data":"DocumentText","_id":"db106646-3e58-5a71-8121-84753b400f96"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-Broadcast : 8b33881b-415d-5c37-9270-f26cc3a7935e, sending data {"type":2,"data":"LinkedFromDocs","_id":"8b33881b-415d-5c37-9270-f26cc3a7935e"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-Broadcast : 0c28246e-1e14-5c7c-897f-916c5e8695b8, sending data {"type":2,"data":"LinkDescription","_id":"0c28246e-1e14-5c7c-897f-916c5e8695b8"}
-{ _id: '0c28246e-1e14-5c7c-897f-916c5e8695b8',
- data: 'LinkDescription',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-Broadcast : ae45a701-5adf-5ca2-822a-27127becbb91, sending data {"type":2,"data":"LinkTag","_id":"ae45a701-5adf-5ca2-822a-27127becbb91"}
-{ _id: '8b33881b-415d-5c37-9270-f26cc3a7935e',
- data: 'LinkedFromDocs',
- type: 2 }
-{ _id: 'ae45a701-5adf-5ca2-822a-27127becbb91',
- data: 'LinkTag',
- type: 2 }
-{ _id: '22b8e67b-50b6-5e6e-9f3d-9810b8d07619',
- data: 'Thumbnail',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-Broadcast : 10fe3599-dd7d-5e3e-9a28-23c624c99140, sending data {"type":2,"data":"CurPage","_id":"10fe3599-dd7d-5e3e-9a28-23c624c99140"}
-{ _id: '10fe3599-dd7d-5e3e-9a28-23c624c99140',
- data: 'CurPage',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-Broadcast : 22b8e67b-50b6-5e6e-9f3d-9810b8d07619, sending data {"type":2,"data":"Thumbnail","_id":"22b8e67b-50b6-5e6e-9f3d-9810b8d07619"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-Broadcast : 7860dbf1-c302-50ac-9f2f-4106c641dd8a, sending data {"type":2,"data":"NumPages","_id":"7860dbf1-c302-50ac-9f2f-4106c641dd8a"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-Broadcast : 59b58624-916f-50a0-8efa-7003a805bfad, sending data {"type":2,"data":"Ink","_id":"59b58624-916f-50a0-8efa-7003a805bfad"}
-{ _id: '59b58624-916f-50a0-8efa-7003a805bfad',
- data: 'Ink',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-Broadcast : 43606ee9-0825-51a3-98b2-06d36fdfd153, sending data {"type":2,"data":"Cursors","_id":"43606ee9-0825-51a3-98b2-06d36fdfd153"}
-{ _id: '7860dbf1-c302-50ac-9f2f-4106c641dd8a',
- data: 'NumPages',
- type: 2 }
-{ _id: '43606ee9-0825-51a3-98b2-06d36fdfd153',
- data: 'Cursors',
- type: 2 }
-{ _id: '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- data: 'OptionalRightCollection',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-Broadcast : 9cca7b47-80dc-5c45-8090-15f8e9082020, sending data {"type":2,"data":"Archives","_id":"9cca7b47-80dc-5c45-8090-15f8e9082020"}
-{ _id: '9cca7b47-80dc-5c45-8090-15f8e9082020',
- data: 'Archives',
- type: 2 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-Broadcast : 7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5, sending data {"type":2,"data":"OptionalRightCollection","_id":"7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-Broadcast : 1daeded7-02d2-50b9-8da8-1f1f36f7cc67, sending data {"type":2,"data":"Updated","_id":"1daeded7-02d2-50b9-8da8-1f1f36f7cc67"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-Broadcast : d5aa5533-2f9b-5ef2-bd26-787dcbccaca2, sending data {"type":2,"data":"Workspaces","_id":"d5aa5533-2f9b-5ef2-bd26-787dcbccaca2"}
-{ _id: 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- data: 'Workspaces',
- type: 2 }
-{ _id: '1daeded7-02d2-50b9-8da8-1f1f36f7cc67',
- data: 'Updated',
- type: 2 }
-calling update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-called update on data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-Broadcast : f98e47b3-f8ee-4117-86fb-6948460f5cc9, sending data {"type":5,"data":[["d5aa5533-2f9b-5ef2-bd26-787dcbccaca2","eec28478-5239-485f-a4ef-f1b9716fab89"],["7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5","d9c82294-7b0b-4dd9-9cdc-b5f00bc84408"],["77aeae9e-9bc5-5318-b4cf-219d29204f73","66c1ad11-6717-4186-b5bd-ac182f1c4d3e"]],"_id":"f98e47b3-f8ee-4117-86fb-6948460f5cc9"}
-{ _id: 'f98e47b3-f8ee-4117-86fb-6948460f5cc9',
- data:
- [ [ 'd5aa5533-2f9b-5ef2-bd26-787dcbccaca2',
- 'eec28478-5239-485f-a4ef-f1b9716fab89' ],
- [ '7d590fe5-25ee-55dc-80b6-1d1b11d4f9d5',
- 'd9c82294-7b0b-4dd9-9cdc-b5f00bc84408' ],
- [ '77aeae9e-9bc5-5318-b4cf-219d29204f73',
- '66c1ad11-6717-4186-b5bd-ac182f1c4d3e' ] ],
- type: 5 }
-S sending : 52b01269-5377-480c-87c8-1155d86cc5ee, receiving Get Field with data {"_id":"52b01269-5377-480c-87c8-1155d86cc5ee","data":3,"type":0}
-S sending : 8dd0dbc7-bce1-4c1f-9d57-46090545a413, receiving Get Field with data {"_id":"8dd0dbc7-bce1-4c1f-9d57-46090545a413","data":1,"type":0}
-S sending : b8c25898-ab6c-438d-a7e2-85b9c40a4fe6, receiving Get Field with data {"_id":"b8c25898-ab6c-438d-a7e2-85b9c40a4fe6","data":54.69876952997183,"type":0}
-S sending : c968815c-6ac5-43ad-9592-e31f4587bf1e, receiving Get Field with data {"_id":"c968815c-6ac5-43ad-9592-e31f4587bf1e","data":-160.75498241782444,"type":0}
-S sending : 5d676023-b2f3-48c2-924f-487aae09368e, receiving Get Field with data {"_id":"5d676023-b2f3-48c2-924f-487aae09368e","data":0.4782969000000001,"type":0}
-S sending : 40f594b5-c6ad-4926-9acb-fc33d688f1cd, receiving Get Field with data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","data":-1,"type":0}
-S sending : 2a2713bd-a3d5-4fc4-bb4b-37f4149bed64, receiving Get Field with data {"_id":"2a2713bd-a3d5-4fc4-bb4b-37f4149bed64","data":-1,"type":0}
-S sending : 62d2960c-ed63-4805-89c8-e01eada0f03e, receiving Get Field with data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","data":-530.7116732305813,"type":0}
-S sending : 9ff46b19-dc58-47d7-9752-340e49e29b16, receiving Get Field with data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","data":-157.61885504589304,"type":0}
-S sending : 483c9a83-c777-47db-a806-4a7c6e298a2d, receiving Get Field with data {"_id":"483c9a83-c777-47db-a806-4a7c6e298a2d","data":200,"type":0}
-S sending : 729e1f77-82c8-42ba-a781-7442f2011a48, receiving Get Field with data {"_id":"729e1f77-82c8-42ba-a781-7442f2011a48","data":200,"type":0}
-S sending : f8cdda5e-254e-403b-bbbb-9e88ace7c7bc, receiving Get Field with data {"_id":"f8cdda5e-254e-403b-bbbb-9e88ace7c7bc","data":-520.2579153241427,"type":0}
-S sending : e878ea28-b836-487a-9b2c-28a31657f37b, receiving Get Field with data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","data":4,"type":0}
-S sending : 93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209, receiving Get Field with data {"_id":"93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209","data":1388.2590499750258,"type":0}
-S sending : 58c571c6-40c9-4d2d-9574-6abe806dd750, receiving Get Field with data {"_id":"58c571c6-40c9-4d2d-9574-6abe806dd750","data":-993.9194875609688,"type":0}
-S sending : 17cda66f-a43a-46bd-a18f-0334e7ed54ba, receiving Get Field with data {"_id":"17cda66f-a43a-46bd-a18f-0334e7ed54ba","data":459.9653478832917,"type":0}
-S sending : 011c260c-6b9a-400f-aed6-6bf3b2e658c6, receiving Get Field with data {"_id":"011c260c-6b9a-400f-aed6-6bf3b2e658c6","data":1,"type":0}
-S sending : 4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc, receiving Get Field with data {"_id":"4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc","data":0,"type":0}
-S sending : bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2, receiving Get Field with data {"_id":"bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2","data":0,"type":0}
-S sending : ba3184a2-b966-432b-b8bd-83ae68ba1c8f, receiving Get Field with data {"_id":"ba3184a2-b966-432b-b8bd-83ae68ba1c8f","data":1,"type":0}
-S sending : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Get Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","data":0,"type":0}
-S sending : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Get Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","data":0,"type":0}
-S sending : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Get Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","data":0,"type":0}
-S sending : 42373536-4991-4b59-aaf5-34559e43adef, receiving Get Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","data":-587.2859013954222,"type":0}
-S sending : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Get Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","data":-151.09092722861064,"type":0}
-S sending : 47f3540c-7ded-4c5a-a35e-67b8770c7564, receiving Get Field with data {"_id":"47f3540c-7ded-4c5a-a35e-67b8770c7564","data":200,"type":0}
-S sending : 3585fbf3-f32c-497f-aae6-9afcba185724, receiving Get Field with data {"_id":"3585fbf3-f32c-497f-aae6-9afcba185724","data":299.5,"type":0}
-S sending : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Get Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","data":-27.43489264412767,"type":0}
-S sending : 9c48c01b-ff87-4633-ab32-620bbe191b04, receiving Get Field with data {"_id":"9c48c01b-ff87-4633-ab32-620bbe191b04","data":200,"type":0}
-S sending : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Get Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","data":1,"type":0}
-S sending : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Get Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","data":-71.62713896644365,"type":0}
-S sending : 4233a5b1-f703-44d8-a4f1-55a230db04e7, receiving Get Field with data {"_id":"4233a5b1-f703-44d8-a4f1-55a230db04e7","data":200,"type":0}
-S sending : 8a50fbb3-768f-4f03-84b5-fc84aaa4f21c, receiving Get Field with data {"_id":"8a50fbb3-768f-4f03-84b5-fc84aaa4f21c","data":200,"type":0}
-S sending : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Get Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","data":2,"type":0}
-S sending : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Get Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","data":299.5,"type":0}
-S sending : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Get Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","data":410.9532106073798,"type":0}
-S sending : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Get Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","data":-51.27364965658168,"type":0}
-S sending : 9d04275c-0bc8-4e43-8142-034824b2deae, receiving Get Field with data {"_id":"9d04275c-0bc8-4e43-8142-034824b2deae","data":200,"type":0}
-S sending : f2822f08-9fd6-4816-ba61-0dc0ea45a0c0, receiving Get Field with data {"_id":"f2822f08-9fd6-4816-ba61-0dc0ea45a0c0","data":200,"type":0}
-S sending : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Get Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","data":3,"type":0}
-S sending : 42d06ec3-2f96-4bf0-af73-568f20eb4ec5, receiving Get Field with data {"_id":"42d06ec3-2f96-4bf0-af73-568f20eb4ec5","data":300,"type":0}
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":300}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 300,
- type: 0 }
-Incoming : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, receiving Set Field with data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-calling update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-called update on data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-Broadcast : 3a9af79b-cca5-4901-bf0a-1a657e5fdb98, sending data {"_id":"3a9af79b-cca5-4901-bf0a-1a657e5fdb98","type":0,"data":299.5}
-{ _id: '3a9af79b-cca5-4901-bf0a-1a657e5fdb98',
- data: 299.5,
- type: 0 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[911.9069178579247,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[911.9069178579247,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[911.9069178579247,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[911.9069178579247,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 911.9069178579247, -165.9818613710438 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,11.732023038409807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 332.76872984123463, 11.732023038409807 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-223.3711907812908,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-223.3711907812908,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-223.3711907812908,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-223.3711907812908,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -223.3711907812908, 145.54012424082202 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-773.2388566599532,210.35342326074033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-773.2388566599532,210.35342326074033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-773.2388566599532,210.35342326074033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-773.2388566599532,210.35342326074033]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -773.2388566599532, 210.35342326074033 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1022.7167516661722,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1022.7167516661722, 222.89793274846647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[842.9121156754308,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[842.9121156754308,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[842.9121156754308,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[842.9121156754308,222.89793274846647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 842.9121156754308, 222.89793274846647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,208.26267167945275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,208.26267167945275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,208.26267167945275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,208.26267167945275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 583.6589195957573, 208.26267167945275 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[439.39706048690675,174.8106463788497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[439.39706048690675,174.8106463788497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[439.39706048690675,174.8106463788497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[439.39706048690675,174.8106463788497]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 439.39706048690675, 174.8106463788497 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 370.40225830441307, 145.54012424082202 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[347.40399091024835,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[347.40399091024835,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[347.40399091024835,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[347.40399091024835,124.63260842794512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 347.40399091024835, 124.63260842794512 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[339.0409845850976,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[339.0409845850976,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[339.0409845850976,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[339.0409845850976,116.26960210279435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 339.0409845850976, 116.26960210279435 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[332.76872984123463,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 332.76872984123463, 114.17885052150655 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[316.0427171909331,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[316.0427171909331,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[316.0427171909331,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[316.0427171909331,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 316.0427171909331, 107.90659577764359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 301.40745612191915, 118.36035368408193 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 280.4999403090425, 145.54012424082202 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,164.35688847241113]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,164.35688847241113]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,164.35688847241113]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,164.35688847241113]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 263.77392765874094, 164.35688847241113 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,181.08290112271266]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 251.2294181710148, 181.08290112271266 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,183.17365270400046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,183.17365270400046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,183.17365270400046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,183.17365270400046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 247.04791500843942, 183.17365270400046 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[247.04791500843942,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 247.04791500843942, 185.26440428528804 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,185.26440428528804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 249.138666589727, 185.26440428528804 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,183.17365270400046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,183.17365270400046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,183.17365270400046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,183.17365270400046]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 251.2294181710148, 183.17365270400046 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[255.41092133359018,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[255.41092133359018,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[255.41092133359018,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[255.41092133359018,176.90139796013727]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 255.41092133359018, 176.90139796013727 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,149.7216274033974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,149.7216274033974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,149.7216274033974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,149.7216274033974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 280.4999403090425, 149.7216274033974 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,139.26786949695884]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,139.26786949695884]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,139.26786949695884]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[299.3167045406316,139.26786949695884]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 299.3167045406316, 139.26786949695884 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[305.58895928449454,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[305.58895928449454,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[305.58895928449454,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[305.58895928449454,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 305.58895928449454, 137.17711791567126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,132.99561475309588]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 309.7704624470699, 132.99561475309588 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[301.40745612191915,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 301.40745612191915, 114.17885052150655 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[244.9571634271516,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 244.9571634271516, 97.45283787120502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.05831064345182,55.6378062454512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.05831064345182,55.6378062454512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.05831064345182,55.6378062454512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[109.05831064345182,55.6378062454512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 109.05831064345182, 55.6378062454512 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-2.903238030603916]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-2.903238030603916]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-2.903238030603916]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-2.903238030603916]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -116.74286013561868, -2.903238030603916 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -332.0902730082506, -59.353530725371684 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-541.1654311370196,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-541.1654311370196,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-541.1654311370196,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-541.1654311370196,-99.0778107698377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -541.1654311370196, -99.0778107698377 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-618.5232396446642,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-618.5232396446642,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-618.5232396446642,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-618.5232396446642,-111.62232025756384]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -618.5232396446642, -111.62232025756384 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-649.8845133639795,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-649.8845133639795,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-649.8845133639795,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-649.8845133639795,-109.53156867627627]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -649.8845133639795, -109.53156867627627 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-660.3382712704179,-105.35006551370088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-660.3382712704179,-105.35006551370088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-660.3382712704179,-105.35006551370088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-660.3382712704179,-105.35006551370088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -660.3382712704179, -105.35006551370088 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-660.3382712704179,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-660.3382712704179,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-660.3382712704179,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-660.3382712704179,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -660.3382712704179, -96.98705918855012 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-656.1567681078425,-67.71653705052245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-656.1567681078425,-67.71653705052245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-656.1567681078425,-67.71653705052245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-656.1567681078425,-67.71653705052245]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -656.1567681078425, -67.71653705052245 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-639.430755457541,-38.446014912494775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-639.430755457541,-38.446014912494775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-639.430755457541,-38.446014912494775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-639.430755457541,-38.446014912494775]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -639.430755457541, -38.446014912494775 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-608.0694817382257,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-608.0694817382257,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-608.0694817382257,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-608.0694817382257,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -608.0694817382257, -7.084741193179298 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,9.64127145712223]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,9.64127145712223]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,9.64127145712223]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-564.1636985311842,9.64127145712223]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -564.1636985311842, 9.64127145712223 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,13.822774619697611]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -503.5319026738412, 13.822774619697611 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,5.459768294546848]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,5.459768294546848]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,5.459768294546848]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-461.7168710480874,5.459768294546848]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -461.7168710480874, 5.459768294546848 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-13.356995937042484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-13.356995937042484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-13.356995937042484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-13.356995937042484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -440.80935523521055, -13.356995937042484 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-32.17376016863159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-32.17376016863159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-32.17376016863159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-32.17376016863159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -428.2648457474844, -32.17376016863159 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-50.99052440022092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-50.99052440022092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-50.99052440022092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-50.99052440022092]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -426.1740941661967, -50.99052440022092 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-426.1740941661967,-65.62578546923464]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -426.1740941661967, -65.62578546923464 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-428.2648457474844,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -428.2648457474844, -69.80728863181002 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-69.80728863181002]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -440.80935523521055, -69.80728863181002 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-478.4428836983889,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-478.4428836983889,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-478.4428836983889,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-478.4428836983889,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -478.4428836983889, -40.53676649378235 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,41.00254517643748]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -503.5319026738412, 41.00254517643748 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-513.9856605802797,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -513.9856605802797, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-507.7134058364166,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-507.7134058364166,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-507.7134058364166,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-507.7134058364166,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -507.7134058364166, 137.17711791567126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,139.26786949695884]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,139.26786949695884]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,139.26786949695884]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-503.5319026738412,139.26786949695884]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -503.5319026738412, 139.26786949695884 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-442.90010681649824,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -442.90010681649824, 122.54185684665731 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,78.63607363961592]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,78.63607363961592]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,78.63607363961592]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-392.72206886559366,78.63607363961592]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -392.72206886559366, 78.63607363961592 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -361.3607951462783, 38.9117935951499 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-361.3607951462783,-7.084741193179298]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -361.3607951462783, -7.084741193179298 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -371.81455305271675, -40.53676649378235 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-384.3590625404429,-57.26277914408388]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-384.3590625404429,-57.26277914408388]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-384.3590625404429,-57.26277914408388]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-384.3590625404429,-57.26277914408388]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -384.3590625404429, -57.26277914408388 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-403.1758267720321,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-403.1758267720321,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-403.1758267720321,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-403.1758267720321,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -403.1758267720321, -61.44428230665926 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.81108784104595,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.81108784104595,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.81108784104595,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-417.81108784104595,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -417.81108784104595, -61.44428230665926 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-61.44428230665926]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -421.9925910036213, -61.44428230665926 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -424.083342584909, -59.353530725371684 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-421.9925910036213,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -421.9925910036213, -59.353530725371684 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-359.2700435649906,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -359.2700435649906, -59.353530725371684 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -265.1862224070446, -59.353530725371684 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-64.47407060342641,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-64.47407060342641,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-64.47407060342641,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-64.47407060342641,-59.353530725371684]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -64.47407060342641, -59.353530725371684 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-63.535033887947066]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-63.535033887947066]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-63.535033887947066]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[280.4999403090425,-63.535033887947066]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 280.4999403090425, -63.535033887947066 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-107.44081709498846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-107.44081709498846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-107.44081709498846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,-107.44081709498846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 773.9173134929371, -107.44081709498846 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-884.0486904682007,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-884.0486904682007,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-884.0486904682007,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-884.0486904682007,-174.34486769619457]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -884.0486904682007, -174.34486769619457 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-488.8966416048274,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-488.8966416048274,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-488.8966416048274,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-488.8966416048274,-276.7916951792913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -488.8966416048274, -276.7916951792913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[355.7669972353991,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[355.7669972353991,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[355.7669972353991,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[355.7669972353991,-487.957604889348]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 355.7669972353991, -487.957604889348 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[630.4069775488824,180.895387572029]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[630.4069775488824,180.895387572029]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[630.4069775488824,180.895387572029]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[630.4069775488824,180.895387572029]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 630.4069775488824, 180.895387572029 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[805.2785872122525,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[805.2785872122525,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[805.2785872122525,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[805.2785872122525,-582.041426047294]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 805.2785872122525, -582.041426047294 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[876.3641409760338,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[876.3641409760338,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[876.3641409760338,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[876.3641409760338,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 876.3641409760338, -377.1477710811005 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 638.0184607092373, -398.0552868939774 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[456.1230731372083,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[456.1230731372083,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[456.1230731372083,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[456.1230731372083,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 456.1230731372083, -398.0552868939774 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[460.30457629978366,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 460.30457629978366, -398.0552868939774 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 477.0305889500852, -398.0552868939774 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-400.14603847526496]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-400.14603847526496]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-400.14603847526496]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[510.48261425068824,-400.14603847526496]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 510.48261425068824, -400.14603847526496 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,-408.5090448004157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,-408.5090448004157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,-408.5090448004157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,-408.5090448004157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 508.39186266940044, -408.5090448004157 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-416.8720511255665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-416.8720511255665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-416.8720511255665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-416.8720511255665]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 489.57509843781133, -416.8720511255665 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[435.21555732433137,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[435.21555732433137,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[435.21555732433137,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[435.21555732433137,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 435.21555732433137, -433.598063775868 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[382.9467677921392,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 382.9467677921392, -450.32407642616954 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[357.8577488166869,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[357.8577488166869,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[357.8577488166869,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[357.8577488166869,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 357.8577488166869, -458.6870827513203 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,-458.6870827513203]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 336.95023300381, -458.6870827513203 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[326.49647509737144,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[326.49647509737144,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[326.49647509737144,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[326.49647509737144,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 326.49647509737144, -460.777834332608 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 313.9519656096453, -460.777834332608 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[290.9536982154808,-460.777834332608]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 290.9536982154808, -460.777834332608 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.50513812654856,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.50513812654856,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.50513812654856,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[211.50513812654856,-450.32407642616954]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 211.50513812654856, -450.32407642616954 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-448.23332484488185]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-448.23332484488185]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-448.23332484488185]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-448.23332484488185]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 175.96236124465793, -448.23332484488185 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-444.05182168230647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-444.05182168230647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-444.05182168230647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-444.05182168230647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 60.97102427383493, -444.05182168230647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-437.7795669384434]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-437.7795669384434]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-437.7795669384434]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[6.611483160355078,-437.7795669384434]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 6.611483160355078, -437.7795669384434 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-31.022045302823358,-441.9610701010188]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -31.022045302823358, -441.9610701010188 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.657306371837194,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.657306371837194,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.657306371837194,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-45.657306371837194,-454.5055795887449]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -45.657306371837194, -454.5055795887449 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.838809534412576,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.838809534412576,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.838809534412576,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.838809534412576,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -49.838809534412576, -462.8685859138957 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-56.11106427827565,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-56.11106427827565,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-56.11106427827565,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-56.11106427827565,-481.6853501454849]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -56.11106427827565, -481.6853501454849 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-64.47407060342641,-502.5928659583618]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-64.47407060342641,-502.5928659583618]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-64.47407060342641,-502.5928659583618]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-64.47407060342641,-502.5928659583618]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -64.47407060342641, -502.5928659583618 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.5648221847141,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.5648221847141,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.5648221847141,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-66.5648221847141,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -66.5648221847141, -504.6836175396495 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.83707692857718,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.83707692857718,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.83707692857718,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.83707692857718,-515.137375446088]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -72.83707692857718, -515.137375446088 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.83707692857718,-521.409630189951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.83707692857718,-521.409630189951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.83707692857718,-521.409630189951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.83707692857718,-521.409630189951]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -72.83707692857718, -521.409630189951 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-77.01858009115256,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-77.01858009115256,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -72.83707692857718, -521.409630189951 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-77.01858009115256,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-77.01858009115256,-527.6818849338141]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-253.98094133581037,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-253.98094133581037,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-253.98094133581037,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-253.98094133581037,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -253.98094133581037, 228.98267394164577 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -79.10933167244025, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.07169291709806,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.07169291709806,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.07169291709806,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-256.07169291709806,222.7104191977827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -256.07169291709806, 222.7104191977827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-81.20008325372794,-540.2263944215402]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -81.20008325372794, -540.2263944215402 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.5254508235365,212.25666129134424]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.5254508235365,212.25666129134424]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.5254508235365,212.25666129134424]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-266.5254508235365,212.25666129134424]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -266.5254508235365, 212.25666129134424 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -91.6538411601664, -550.6801523279787 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.06996031126266,195.53064864104272]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.06996031126266,195.53064864104272]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.06996031126266,195.53064864104272]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.06996031126266,195.53064864104272]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -279.06996031126266, 195.53064864104272 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.19835064789254,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.19835064789254,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.19835064789254,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-104.19835064789254,-567.4061649782802]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -104.19835064789254, -567.4061649782802 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.6144697989888,176.7138844094536]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.6144697989888,176.7138844094536]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.6144697989888,176.7138844094536]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-291.6144697989888,176.7138844094536]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -291.6144697989888, 176.7138844094536 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-116.74286013561868,-586.2229292098693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -116.74286013561868, -586.2229292098693 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-310.431234030578,162.07862334043978]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-310.431234030578,162.07862334043978]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-310.431234030578,162.07862334043978]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-310.431234030578,162.07862334043978]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -310.431234030578, 162.07862334043978 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-135.5596243672079,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-135.5596243672079,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-135.5596243672079,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-135.5596243672079,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -135.5596243672079, -600.8581902788832 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-339.7017561686056,139.08035594627518]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-339.7017561686056,139.08035594627518]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-339.7017561686056,139.08035594627518]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-339.7017561686056,139.08035594627518]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -339.7017561686056, 139.08035594627518 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-164.83014650523546,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-164.83014650523546,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-164.83014650523546,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-164.83014650523546,-623.8564576730478]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -164.83014650523546, -623.8564576730478 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-368.97227830663326,99.35607590180905]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-368.97227830663326,99.35607590180905]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-368.97227830663326,99.35607590180905]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-368.97227830663326,99.35607590180905]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -368.97227830663326, 99.35607590180905 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-194.10066864326313,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -194.10066864326313, -663.5807377175139 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.06129728208555,74.26705692635676]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.06129728208555,74.26705692635676]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.06129728208555,74.26705692635676]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-394.06129728208555,74.26705692635676]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -394.06129728208555, 74.26705692635676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-219.18968761871542,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -219.18968761871542, -688.6697566929662 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.21377334183921,249.2254098183683]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.21377334183921,249.2254098183683]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.21377334183921,249.2254098183683]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[113.21377334183921,249.2254098183683]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 113.21377334183921, 249.2254098183683 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.1433858341961,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.1433858341961,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.1433858341961,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-511.1433858341961,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -511.1433858341961, 15.72601265030147 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-336.271776170826,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-336.271776170826,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -219.18968761871542, -688.6697566929662 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-336.271776170826,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-336.271776170826,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.49122590320849,239.81702770257363]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.49122590320849,239.81702770257363]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.49122590320849,239.81702770257363]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.49122590320849,239.81702770257363]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 50.49122590320849, 239.81702770257363 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-552.9584174599499,9.453757906438398]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-552.9584174599499,9.453757906438398]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-552.9584174599499,9.453757906438398]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-552.9584174599499,9.453757906438398]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -552.9584174599499, 9.453757906438398 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-378.0868077965798,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -378.0868077965798, -753.4830557128846 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[9.721570068098572,227.27251821484748]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[9.721570068098572,227.27251821484748]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[9.721570068098572,227.27251821484748]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[9.721570068098572,227.27251821484748]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 9.721570068098572, 227.27251821484748 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-580.1381880166899,1.090751581287634]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-580.1381880166899,1.090751581287634]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-580.1381880166899,1.090751581287634]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-580.1381880166899,1.090751581287634]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -580.1381880166899, 1.090751581287634 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-405.2665783533198,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-405.2665783533198,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-405.2665783533198,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-405.2665783533198,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -405.2665783533198, -761.8460620380354 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[3.4493153242354992,227.27251821484748]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[3.4493153242354992,227.27251821484748]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[3.4493153242354992,227.27251821484748]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[3.4493153242354992,227.27251821484748]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 3.4493153242354992, 227.27251821484748 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-584.3196911792653,1.090751581287634]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-584.3196911792653,1.090751581287634]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -580.1381880166899, 1.090751581287634 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-761.8460620380354]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-584.3196911792653,1.090751581287634]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-584.3196911792653,1.090751581287634]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -409.4480815158952, -761.8460620380354 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,224.136390842916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,224.136390842916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,224.136390842916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,224.136390842916]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 0.31318795230390606, 224.136390842916 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-1.0000000000000568]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-1.0000000000000568]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-1.0000000000000568]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-1.0000000000000568]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -586.410442760553, -1.0000000000000568 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-763.936813619323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -411.5388330971829, -763.936813619323 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,221.0002634709844]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,221.0002634709844]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,221.0002634709844]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,221.0002634709844]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 0.31318795230390606, 221.0002634709844 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-3.0907515812877477]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-3.0907515812877477]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-3.0907515812877477]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-3.0907515812877477]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -586.410442760553, -3.0907515812877477 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-766.0275652006108]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-766.0275652006108]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-766.0275652006108]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-766.0275652006108]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -411.5388330971829, -766.0275652006108 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,214.72800872712133]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,214.72800872712133]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,214.72800872712133]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,214.72800872712133]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 0.31318795230390606, 214.72800872712133 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-7.2722547438631295]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-7.2722547438631295]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-7.2722547438631295]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-7.2722547438631295]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -586.410442760553, -7.2722547438631295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-770.2090683631861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-770.2090683631861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -411.5388330971829, -766.0275652006108 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-770.2090683631861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-770.2090683631861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,211.59188135518986]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,211.59188135518986]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,211.59188135518986]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[0.31318795230390606,211.59188135518986]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 0.31318795230390606, 211.59188135518986 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-9.36300632515082]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-9.36300632515082]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-772.2998199444737]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-772.2998199444737]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-772.2998199444737]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-411.5388330971829,-772.2998199444737]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -411.5388330971829, -772.2998199444737 ] ],
- type: 14 }
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -586.410442760553, -7.2722547438631295 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-9.36300632515082]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-586.410442760553,-9.36300632515082]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[3.4493153242354992,211.59188135518986]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[3.4493153242354992,211.59188135518986]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[3.4493153242354992,211.59188135518986]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[3.4493153242354992,211.59188135518986]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 3.4493153242354992, 211.59188135518986 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-584.3196911792653,-9.36300632515082]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-584.3196911792653,-9.36300632515082]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-584.3196911792653,-9.36300632515082]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-584.3196911792653,-9.36300632515082]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -584.3196911792653, -9.36300632515082 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-772.2998199444737]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-772.2998199444737]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-772.2998199444737]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-409.4480815158952,-772.2998199444737]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -409.4480815158952, -772.2998199444737 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.857697440030051,214.72800872712133]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.857697440030051,214.72800872712133]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.857697440030051,214.72800872712133]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[12.857697440030051,214.72800872712133]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 12.857697440030051, 214.72800872712133 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.0474364354022,-7.2722547438631295]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.0474364354022,-7.2722547438631295]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.0474364354022,-7.2722547438631295]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.0474364354022,-7.2722547438631295]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -578.0474364354022, -7.2722547438631295 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-403.1758267720321,-770.2090683631861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-403.1758267720321,-770.2090683631861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-403.1758267720321,-770.2090683631861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-403.1758267720321,-770.2090683631861]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -403.1758267720321, -770.2090683631861 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.94671641548234,242.95315507450522]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.94671641548234,242.95315507450522]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.94671641548234,242.95315507450522]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[37.94671641548234,242.95315507450522]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 37.94671641548234, 242.95315507450522 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-561.3214237851007,11.544509487726089]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-561.3214237851007,11.544509487726089]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-561.3214237851007,11.544509487726089]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-561.3214237851007,11.544509487726089]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -561.3214237851007, 11.544509487726089 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -403.1758267720321, -770.2090683631861 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-386.4498141217306,-751.3923041315968]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.3079901347977,283.72281090961513]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.3079901347977,283.72281090961513]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.3079901347977,283.72281090961513]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.3079901347977,283.72281090961513]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 69.3079901347977, 283.72281090961513 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-540.4139079722238,38.72428004446607]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-540.4139079722238,38.72428004446607]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-540.4139079722238,38.72428004446607]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-540.4139079722238,38.72428004446607]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -540.4139079722238, 38.72428004446607 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-724.2125335748569]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-724.2125335748569]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-724.2125335748569]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-365.5422983088537,-724.2125335748569]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -365.5422983088537, -724.2125335748569 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-521.5971437406346,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-521.5971437406346,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-521.5971437406346,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-521.5971437406346,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -521.5971437406346, 70.08555376378138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-346.72553407726446,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -346.72553407726446, -692.8512598555416 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.68962792775767,93.08382115794598]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.68962792775767,93.08382115794598]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.68962792775767,93.08382115794598]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-500.68962792775767,93.08382115794598]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -500.68962792775767, 93.08382115794598 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-325.81801826438755,-669.852992461377]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -325.81801826438755, -669.852992461377 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-481.87286369616857,111.9005853895352]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-481.87286369616857,111.9005853895352]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-481.87286369616857,111.9005853895352]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-481.87286369616857,111.9005853895352]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -481.87286369616857, 111.9005853895352 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -325.81801826438755, -669.852992461377 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-307.00125403279844,-651.0362282297878]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-469.3283542084424,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-469.3283542084424,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-469.3283542084424,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-469.3283542084424,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -469.3283542084424, 118.17284013339827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -294.4567445450723, -644.7639734859247 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-469.3283542084424,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-469.3283542084424,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-469.3283542084424,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-469.3283542084424,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -469.3283542084424, 118.17284013339827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-294.4567445450723,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -294.4567445450723, -644.7639734859247 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,118.17284013339827]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -467.23760262715473, 118.17284013339827 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-644.7639734859247]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -292.3659929637846, -644.7639734859247 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -467.23760262715473, 113.99133697082289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -292.3659929637846, -648.9454766485001 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,105.62833064567212]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,105.62833064567212]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,105.62833064567212]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-467.23760262715473,105.62833064567212]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -467.23760262715473, 105.62833064567212 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -292.3659929637846, -648.9454766485001 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-292.3659929637846,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-471.4191057897301,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-471.4191057897301,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-471.4191057897301,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-471.4191057897301,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -471.4191057897301, 78.44856008893214 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-296.54749612636,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -296.54749612636, -684.4882535303908 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-475.6006089523055,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-475.6006089523055,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-475.6006089523055,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-475.6006089523055,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -475.6006089523055, 49.178037950904525 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-300.72899928893537,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-300.72899928893537,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-300.72899928893537,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-300.72899928893537,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -300.72899928893537, -713.7587756684184 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.2556839208122,249.2254098183683]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.2556839208122,249.2254098183683]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.2556839208122,249.2254098183683]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.2556839208122,249.2254098183683]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 160.2556839208122, 249.2254098183683 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-479.7821121148809,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-479.7821121148809,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-479.7821121148809,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-479.7821121148809,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -479.7821121148809, 15.72601265030147 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-304.91050245151075,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -304.91050245151075, -747.2108009690214 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.57504706115458,217.86413609905293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.57504706115458,217.86413609905293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.57504706115458,217.86413609905293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.57504706115458,217.86413609905293]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 144.57504706115458, 217.86413609905293 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.23587002131933,-5.181503162575439]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.23587002131933,-5.181503162575439]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.23587002131933,-5.181503162575439]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-490.23587002131933,-5.181503162575439]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -490.23587002131933, -5.181503162575439 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -304.91050245151075, -747.2108009690214 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-768.1183167818983]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3027923172915,186.50286237973756]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3027923172915,186.50286237973756]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3027923172915,186.50286237973756]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3027923172915,186.50286237973756]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3027923172915, 186.50286237973756 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-494.4173731838947,-26.089018975452348]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-494.4173731838947,-26.089018975452348]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-494.4173731838947,-26.089018975452348]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-494.4173731838947,-26.089018975452348]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -494.4173731838947, -26.089018975452348 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-789.0258325947752]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-789.0258325947752]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-789.0258325947752]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-319.5457635205246,-789.0258325947752]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -319.5457635205246, -789.0258325947752 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,158.2777160323538]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,158.2777160323538]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,158.2777160323538]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,158.2777160323538]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 125.75828282956536, 158.2777160323538 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-502.78037950904536,-44.90578320704151]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-502.78037950904536,-44.90578320704151]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-502.78037950904536,-44.90578320704151]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-502.78037950904536,-44.90578320704151]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -502.78037950904536, -44.90578320704151 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-807.8425968263645]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -327.90876984567524, -807.8425968263645 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.62215545763377,148.86933391655913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.62215545763377,148.86933391655913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.62215545763377,148.86933391655913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[122.62215545763377,148.86933391655913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 122.62215545763377, 148.86933391655913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-504.87113109033305,-51.17803795090458]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-504.87113109033305,-51.17803795090458]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-504.87113109033305,-51.17803795090458]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-504.87113109033305,-51.17803795090458]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -504.87113109033305, -51.17803795090458 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -327.90876984567524, -807.8425968263645 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-329.99952142696293,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.48602808570229,145.73320654462765]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.48602808570229,145.73320654462765]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.48602808570229,145.73320654462765]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.48602808570229,145.73320654462765]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.48602808570229, 145.73320654462765 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-506.96188267162074,-53.26878953219227]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-506.96188267162074,-53.26878953219227]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-506.96188267162074,-53.26878953219227]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-506.96188267162074,-53.26878953219227]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -506.96188267162074, -53.26878953219227 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-816.2056031515152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-816.2056031515152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-816.2056031515152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-816.2056031515152]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -332.0902730082506, -816.2056031515152 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.48602808570229,148.86933391655913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.48602808570229,148.86933391655913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.48602808570229,148.86933391655913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.48602808570229,148.86933391655913]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.48602808570229, 148.86933391655913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-506.96188267162074,-51.17803795090458]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-506.96188267162074,-51.17803795090458]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-506.96188267162074,-51.17803795090458]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-506.96188267162074,-51.17803795090458]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -506.96188267162074, -51.17803795090458 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-332.0902730082506,-814.1148515702275]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -332.0902730082506, -814.1148515702275 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,164.54997077621687]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,164.54997077621687]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,164.54997077621687]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,164.54997077621687]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 125.75828282956536, 164.54997077621687 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-502.78037950904536,-40.72428004446613]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-502.78037950904536,-40.72428004446613]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-502.78037950904536,-40.72428004446613]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-502.78037950904536,-40.72428004446613]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -502.78037950904536, -40.72428004446613 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-803.6610936637891]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-803.6610936637891]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-803.6610936637891]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-327.90876984567524,-803.6610936637891]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -327.90876984567524, -803.6610936637891 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-Broadcast : 21840dfa-8d74-465d-86ca-09b8e949a5a0, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-{ _id: '21840dfa-8d74-465d-86ca-09b8e949a5a0',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":-1}
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '2a1cad71-3e49-434a-9914-3a58edf3826c',
- 'd56974e0-5327-4f68-9268-128975957d7b' ],
- type: 1 }
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-176.15936304654326}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-176.15936304654326}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-176.15936304654326}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-176.15936304654326}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":-176.15936304654326}
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: -176.15936304654326,
- type: 0 }
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-238.7149800920099}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-238.7149800920099}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-238.7149800920099}
-Incoming : 16e78e95-49dd-4da5-bc98-f1e0a8d2655c, receiving Set Field with data {"_id":"16e78e95-49dd-4da5-bc98-f1e0a8d2655c","type":0,"data":1}
-calling update on data {"_id":"16e78e95-49dd-4da5-bc98-f1e0a8d2655c","type":0,"data":1}
-called update on data {"_id":"16e78e95-49dd-4da5-bc98-f1e0a8d2655c","type":0,"data":1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"],["43606ee9-0825-51a3-98b2-06d36fdfd153","6ea228be-7e01-4131-a9a9-b5b61b29f342"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","16e78e95-49dd-4da5-bc98-f1e0a8d2655c"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"],["43606ee9-0825-51a3-98b2-06d36fdfd153","6ea228be-7e01-4131-a9a9-b5b61b29f342"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","16e78e95-49dd-4da5-bc98-f1e0a8d2655c"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Incoming : e878ea28-b836-487a-9b2c-28a31657f37b, receiving Set Field with data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":2}
-calling update on data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":2}
-called update on data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":2}
-Incoming : e3b590f8-23f0-4feb-831d-cbc9a516828a, receiving Set Field with data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":3}
-calling update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":3}
-called update on data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":3}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,164.54997077621692]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,164.54997077621692]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.03053757342855,164.54997077621692]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.03053757342855,164.54997077621692]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-87.47233799759101,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-87.47233799759101,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-238.7149800920099}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-238.7149800920099}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"16e78e95-49dd-4da5-bc98-f1e0a8d2655c"}],"ok":1}
-Wrote {"_id":"16e78e95-49dd-4da5-bc98-f1e0a8d2655c","type":0,"data":1}
-Broadcast : 16e78e95-49dd-4da5-bc98-f1e0a8d2655c, sending data {"_id":"16e78e95-49dd-4da5-bc98-f1e0a8d2655c","type":0,"data":1}
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: -238.7149800920099,
- type: 0 }
-{ _id: '16e78e95-49dd-4da5-bc98-f1e0a8d2655c', data: 1, type: 0 }
-{ _id: 'd56974e0-5327-4f68-9268-128975957d7b',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- 'a9ab3cae-9c8f-4d45-a84f-1c748c805792' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- 'f8cdda5e-254e-403b-bbbb-9e88ace7c7bc' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '58c571c6-40c9-4d2d-9574-6abe806dd750' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '17cda66f-a43a-46bd-a18f-0334e7ed54ba' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- 'bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '2a2713bd-a3d5-4fc4-bb4b-37f4149bed64' ],
- [ '43606ee9-0825-51a3-98b2-06d36fdfd153',
- '6ea228be-7e01-4131-a9a9-b5b61b29f342' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":2}
-Broadcast : e878ea28-b836-487a-9b2c-28a31657f37b, sending data {"_id":"e878ea28-b836-487a-9b2c-28a31657f37b","type":0,"data":2}
-{ _id: 'e878ea28-b836-487a-9b2c-28a31657f37b', data: 2, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"],["43606ee9-0825-51a3-98b2-06d36fdfd153","6ea228be-7e01-4131-a9a9-b5b61b29f342"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","16e78e95-49dd-4da5-bc98-f1e0a8d2655c"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-Broadcast : d56974e0-5327-4f68-9268-128975957d7b, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","a9ab3cae-9c8f-4d45-a84f-1c748c805792"],["7b71638c-05b8-5573-9aa5-c737c9406a86","f8cdda5e-254e-403b-bbbb-9e88ace7c7bc"],["13a3cc01-c286-57e1-8746-baa3ced34e76","58c571c6-40c9-4d2d-9574-6abe806dd750"],["5c207bd2-0390-5c35-8972-06d185f387fb","93ea1b7f-f490-4d51-b5f4-4e3a1d0ea209"],["2a238eef-0bbb-5b78-b173-37b574fec97f","17cda66f-a43a-46bd-a18f-0334e7ed54ba"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4f5acfac-311d-4e4c-af2a-6d9f7cd54dfc"],["048d25ac-b841-5728-a599-e3a432137881","bbb49dd6-6825-4ab8-8fb7-fbe5e517d4c2"],["911954a3-bebc-5b20-81f3-3091a2e11907","2a2713bd-a3d5-4fc4-bb4b-37f4149bed64"],["43606ee9-0825-51a3-98b2-06d36fdfd153","6ea228be-7e01-4131-a9a9-b5b61b29f342"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","16e78e95-49dd-4da5-bc98-f1e0a8d2655c"]],"_id":"d56974e0-5327-4f68-9268-128975957d7b"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":3}
-Broadcast : e3b590f8-23f0-4feb-831d-cbc9a516828a, sending data {"_id":"e3b590f8-23f0-4feb-831d-cbc9a516828a","type":0,"data":3}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,164.54997077621692]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.75828282956536,164.54997077621692]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 125.75828282956536, 164.54997077621692 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: 'e3b590f8-23f0-4feb-831d-cbc9a516828a', data: 3, type: 0 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -91.6538411601664, -128.34833290786537 ] ],
- type: 14 }
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 125.75828282956536, 164.54997077621692 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-87.47233799759101,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-87.47233799759101,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -87.47233799759101, -128.34833290786537 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.03053757342855,164.54997077621692]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.03053757342855,164.54997077621692]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.16666494536003,155.14158866042249]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.16666494536003,155.14158866042249]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.16666494536003,155.14158866042249]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.16666494536003,155.14158866042249]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 135.16666494536003, 155.14158866042249 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-134.62058765172833]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-134.62058765172833]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-134.62058765172833]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-85.38158641630332,-134.62058765172833]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -85.38158641630332, -134.62058765172833 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.5750470611547,139.46095180076486]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.5750470611547,139.46095180076486]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.5750470611547,139.46095180076486]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[144.5750470611547,139.46095180076486]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 144.5750470611547, 139.46095180076486 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-79.10933167244025,-145.0743455581669]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -79.10933167244025, -145.0743455581669 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.25568392081232,104.9635507095179]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.25568392081232,104.9635507095179]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.25568392081232,104.9635507095179]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[160.25568392081232,104.9635507095179]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 160.25568392081232, 104.9635507095179 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.6555737660018,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.6555737660018,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.6555737660018,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-68.6555737660018,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -68.6555737660018, -168.07261295233138 ] ],
- type: 14 }
-S sending : 16e78e95-49dd-4da5-bc98-f1e0a8d2655c, receiving Get Field with data {"_id":"16e78e95-49dd-4da5-bc98-f1e0a8d2655c","data":1,"type":0}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[185.3447028962646,45.377130642818656]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[185.3447028962646,45.377130642818656]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[185.3447028962646,45.377130642818656]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-Broadcast : f7e01e7b-9646-44b8-8e8a-fa21569b07a0, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[185.3447028962646,45.377130642818656]],"_id":"f7e01e7b-9646-44b8-8e8a-fa21569b07a0"}
-{ _id: 'f7e01e7b-9646-44b8-8e8a-fa21569b07a0',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 185.3447028962646, 45.377130642818656 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-51.92956111570027,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-51.92956111570027,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -68.6555737660018, -168.07261295233138 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-51.92956111570027,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-51.92956111570027,-207.79689299679762]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-26.840542140247976,-272.6101920167159]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -26.840542140247976, -272.6101920167159 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-337.42349103663435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-337.42349103663435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-337.42349103663435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[4.520731579067387,-337.42349103663435]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 4.520731579067387, -337.42349103663435 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-408.5090448004157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-408.5090448004157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-408.5090448004157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[46.33576320482109,-408.5090448004157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 46.33576320482109, -408.5090448004157 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-477.5038469829095]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.60628534284876, -477.5038469829095 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.08555376378126,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.08555376378126,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.08555376378126,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.08555376378126,228.98267394164577]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -72.08555376378126, 228.98267394164577 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-533.9541396776772]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 102.78605589958886, -533.9541396776772 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,172.53238124687823]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,172.53238124687823]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,172.53238124687823]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-42.81503162575382,172.53238124687823]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -42.81503162575382, 172.53238124687823 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,-590.4044323724447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,-590.4044323724447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,-590.4044323724447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,-590.4044323724447]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 132.0565780376163, -590.4044323724447 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -32.36127371931525, 116.08208855211058 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 132.0565780376163, -590.4044323724447 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -32.36127371931525, 95.17457273923367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 142.51033594405487, -667.7622408800893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -34.452025300603054, 82.63006325150752 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 140.41958436276707, -680.3067503678154 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,80.53931167021983]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,80.53931167021983]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,80.53931167021983]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,80.53931167021983]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -36.54277688189063, 80.53931167021983 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-682.3975019491031]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, -682.3975019491031 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -36.54277688189063, 78.44856008893214 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, -684.4882535303908 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,74.26705692635676]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,74.26705692635676]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,74.26705692635676]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,74.26705692635676]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -36.54277688189063, 74.26705692635676 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, -684.4882535303908 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-688.6697566929662]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -36.54277688189063, 70.08555376378138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, -692.8512598555416 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-38.633528463178436,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -38.633528463178436, 59.63179585734292 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[136.2380812001917,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[136.2380812001917,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[136.2380812001917,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[136.2380812001917,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 136.2380812001917, -703.30501776198 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,47.087286369616834]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,47.087286369616834]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,47.087286369616834]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,47.087286369616834]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -44.905783207041395, 47.087286369616834 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-715.8495272497062]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 129.96582645632873, -715.8495272497062 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,34.54277688189069]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,34.54277688189069]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,34.54277688189069]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-46.9965347883292,34.54277688189069]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -46.9965347883292, 34.54277688189069 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.87507487504092,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.87507487504092,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.87507487504092,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[127.87507487504092,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 127.87507487504092, -728.3940367374323 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,34.54277688189069]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,34.54277688189069]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,34.54277688189069]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,34.54277688189069]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -49.08728636961678, 34.54277688189069 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 127.87507487504092, -728.3940367374323 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,30.361273719315307]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,30.361273719315307]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,30.361273719315307]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-49.08728636961678,30.361273719315307]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -49.08728636961678, 30.361273719315307 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 125.78432329375335, -732.5755399000077 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,24.089018975452234]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,24.089018975452234]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,24.089018975452234]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-44.905783207041395,24.089018975452234]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -44.905783207041395, 24.089018975452234 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,-738.8477946438707]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 129.96582645632873, -738.8477946438707 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-32.36127371931525,15.72601265030147]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -32.36127371931525, 15.72601265030147 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[142.51033594405487,-747.2108009690214]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 142.51033594405487, -747.2108009690214 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[22.97170210653394,117.48521793739167]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[22.97170210653394,117.48521793739167]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[22.97170210653394,117.48521793739167]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[22.97170210653394,117.48521793739167]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 22.97170210653394, 117.48521793739167 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-11.45375790643834,7.363006325150707]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-11.45375790643834,7.363006325150707]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-11.45375790643834,7.363006325150707]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-11.45375790643834,7.363006325150707]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -11.45375790643834, 7.363006325150707 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 142.51033594405487, -747.2108009690214 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,-755.5738072941722]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.33297582584919,114.34909056546007]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.33297582584919,114.34909056546007]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.33297582584919,114.34909056546007]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[54.33297582584919,114.34909056546007]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 54.33297582584919, 114.34909056546007 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[9.453757906438568,5.272254743863016]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[9.453757906438568,5.272254743863016]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[9.453757906438568,5.272254743863016]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[9.453757906438568,5.272254743863016]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 9.453757906438568, 5.272254743863016 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 184.3253675698087, -757.66455887546 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.741357941643855,114.34909056546007]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.741357941643855,114.34909056546007]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.741357941643855,114.34909056546007]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.741357941643855,114.34909056546007]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 63.741357941643855, 114.34909056546007 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[15.726012650301527,5.272254743863016]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[15.726012650301527,5.272254743863016]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[15.726012650301527,5.272254743863016]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[15.726012650301527,5.272254743863016]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 15.726012650301527, 5.272254743863016 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-757.66455887546]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 190.59762231367165, -757.66455887546 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.14974005743852,120.62134530932315]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.14974005743852,120.62134530932315]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.14974005743852,120.62134530932315]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[73.14974005743852,120.62134530932315]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 73.14974005743852, 120.62134530932315 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[21.998267394164714,9.453757906438398]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[21.998267394164714,9.453757906438398]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[21.998267394164714,9.453757906438398]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[21.998267394164714,9.453757906438398]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 21.998267394164714, 9.453757906438398 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[196.86987705753484,-753.4830557128846]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 196.86987705753484, -753.4830557128846 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.42199480130148,133.1658547970493]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.42199480130148,133.1658547970493]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.42199480130148,133.1658547970493]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[79.42199480130148,133.1658547970493]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 79.42199480130148, 133.1658547970493 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[26.179770556740095,17.81676423158916]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[26.179770556740095,17.81676423158916]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[26.179770556740095,17.81676423158916]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[26.179770556740095,17.81676423158916]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 26.179770556740095, 17.81676423158916 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,-745.1200493877338]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 201.05138022011022, -745.1200493877338 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,148.84649165670692]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,148.84649165670692]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,148.84649165670692]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,148.84649165670692]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 82.55812217323296, 148.84649165670692 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,28.270522138027616]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,28.270522138027616]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,28.270522138027616]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,28.270522138027616]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 28.270522138027673, 28.270522138027616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-734.6662914812953]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 203.1421318013978, -734.6662914812953 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,167.66325588829613]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,167.66325588829613]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,167.66325588829613]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,167.66325588829613]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 82.55812217323296, 167.66325588829613 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,40.81503162575376]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,40.81503162575376]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,40.81503162575376]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,40.81503162575376]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 28.270522138027673, 40.81503162575376 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-722.1217819935691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-722.1217819935691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-722.1217819935691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-722.1217819935691]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 203.1421318013978, -722.1217819935691 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[82.55812217323296,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 82.55812217323296, 180.20776537602228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[28.270522138027673,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 28.270522138027673, 49.178037950904525 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 203.1421318013978, -722.1217819935691 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[203.1421318013978,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[70.01361268550681,192.75227486374843]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[70.01361268550681,192.75227486374843]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[70.01361268550681,192.75227486374843]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[70.01361268550681,192.75227486374843]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 70.01361268550681, 192.75227486374843 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,57.54104427605523]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,57.54104427605523]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,57.54104427605523]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,57.54104427605523]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 19.90751581287691, 57.54104427605523 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-705.3957693432677]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-705.3957693432677]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-705.3957693432677]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-705.3957693432677]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 194.77912547624703, -705.3957693432677 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[41.788466338123044,220.9774212111323]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[41.788466338123044,220.9774212111323]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[41.788466338123044,220.9774212111323]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[41.788466338123044,220.9774212111323]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 41.788466338123044, 220.9774212111323 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1.0907515812878046,76.35780850764445]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1.0907515812878046,76.35780850764445]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1.0907515812878046,76.35780850764445]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1.0907515812878046,76.35780850764445]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1.0907515812878046, 76.35780850764445 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 194.77912547624703, -705.3957693432677 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[175.96236124465793,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556739868,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556739868,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556739868,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-28.179770556739868,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -28.179770556739868, 82.63006325150752 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 146.69183910663025, -680.3067503678154 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.26878953219216,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.26878953219216,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.26878953219216,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-53.26878953219216,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -53.26878953219216, 90.99306957665829 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 146.69183910663025, -680.3067503678154 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-69.99480218249369,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-69.99480218249369,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-69.99480218249369,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-69.99480218249369,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -69.99480218249369, 90.99306957665829 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.87680748087644,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.87680748087644,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.87680748087644,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.87680748087644,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 104.87680748087644, -671.9437440426647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.08555376378126,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.08555376378126,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.08555376378126,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-72.08555376378126,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -72.08555376378126, 90.99306957665829 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[102.78605589958886,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 102.78605589958886, -671.9437440426647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-78.35780850764445,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-78.35780850764445,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-78.35780850764445,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-78.35780850764445,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -78.35780850764445, 90.99306957665829 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[96.51380115572567,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 96.51380115572567, -671.9437440426647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-80.44856008893203,88.9023179953706]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-80.44856008893203,88.9023179953706]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-80.44856008893203,88.9023179953706]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-80.44856008893203,88.9023179953706]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -80.44856008893203, 88.9023179953706 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-674.0344956239524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-674.0344956239524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-674.0344956239524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-674.0344956239524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 94.4230495744381, -674.0344956239524 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-86.72081483279521,86.8115664140829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-86.72081483279521,86.8115664140829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-86.72081483279521,86.8115664140829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-86.72081483279521,86.8115664140829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -86.72081483279521, 86.8115664140829 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[88.15079483057491,-676.12524720524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[88.15079483057491,-676.12524720524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[88.15079483057491,-676.12524720524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[88.15079483057491,-676.12524720524]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 88.15079483057491, -676.12524720524 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-92.99306957665817,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-92.99306957665817,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-92.99306957665817,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-92.99306957665817,82.63006325150752]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -92.99306957665817, 82.63006325150752 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[81.87854008671195,-680.3067503678154]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 81.87854008671195, -680.3067503678154 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-99.26532432052136,76.35780850764445]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-99.26532432052136,76.35780850764445]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-99.26532432052136,76.35780850764445]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-99.26532432052136,76.35780850764445]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -99.26532432052136, 76.35780850764445 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[75.60628534284876,-686.5790051116785]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 75.60628534284876, -686.5790051116785 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-105.53757906438443,72.17630534506907]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-105.53757906438443,72.17630534506907]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-105.53757906438443,72.17630534506907]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-105.53757906438443,72.17630534506907]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -105.53757906438443, 72.17630534506907 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-690.7605082742539]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-690.7605082742539]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-690.7605082742539]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-690.7605082742539]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 69.33403059898569, -690.7605082742539 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-109.71908222695981,72.17630534506907]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-109.71908222695981,72.17630534506907]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-109.71908222695981,72.17630534506907]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-109.71908222695981,72.17630534506907]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -109.71908222695981, 72.17630534506907 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-690.7605082742539]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-690.7605082742539]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-690.7605082742539]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[65.15252743641031,-690.7605082742539]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 65.15252743641031, -690.7605082742539 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-103.44682748309674,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-103.44682748309674,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-103.44682748309674,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-103.44682748309674,70.08555376378138]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -103.44682748309674, 70.08555376378138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[71.42478218027338,-692.8512598555416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 71.42478218027338, -692.8512598555416 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-82.53931167021983,61.72254743863061]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-82.53931167021983,61.72254743863061]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-82.53931167021983,61.72254743863061]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-82.53931167021983,61.72254743863061]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -82.53931167021983, 61.72254743863061 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[92.33229799315029,-701.2142661806923]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 92.33229799315029, -701.2142661806923 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-36.54277688189063,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -36.54277688189063, 59.63179585734292 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, -703.30501776198 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[32.380084222328605,189.61614749181695]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[32.380084222328605,189.61614749181695]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[32.380084222328605,189.61614749181695]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[32.380084222328605,189.61614749181695]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 32.380084222328605, 189.61614749181695 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.181503162575382,55.45029269476754]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.181503162575382,55.45029269476754]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.181503162575382,55.45029269476754]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-5.181503162575382,55.45029269476754]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -5.181503162575382, 55.45029269476754 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,-707.4865209245554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 169.69010650079474, -707.4865209245554 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[70.01361268550681,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[70.01361268550681,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[70.01361268550681,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[70.01361268550681,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 70.01361268550681, 180.20776537602228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[19.90751581287691,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 19.90751581287691, 49.178037950904525 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 169.69010650079474, -707.4865209245554 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[194.77912547624703,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[85.69424954516467,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[85.69424954516467,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[85.69424954516467,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[85.69424954516467,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 85.69424954516467, 180.20776537602228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.361273719315477,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.361273719315477,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.361273719315477,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[30.361273719315477,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 30.361273719315477, 49.178037950904525 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.2328833826856,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.2328833826856,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.2328833826856,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[205.2328833826856,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 205.2328833826856, -713.7587756684184 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.96650428902763,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.96650428902763,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.96650428902763,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[91.96650428902763,180.20776537602228]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 91.96650428902763, 180.20776537602228 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[34.54277688189086,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[34.54277688189086,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[34.54277688189086,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[34.54277688189086,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 34.54277688189086, 49.178037950904525 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 209.41438654526098, -713.7587756684184 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[98.23875903289081,183.34389274795387]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[98.23875903289081,183.34389274795387]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[98.23875903289081,183.34389274795387]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[98.23875903289081,183.34389274795387]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 98.23875903289081, 183.34389274795387 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,51.26878953219216]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,51.26878953219216]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,51.26878953219216]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[38.72428004446624,51.26878953219216]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 38.72428004446624, 51.26878953219216 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-711.6680240871308]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-711.6680240871308]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 209.41438654526098, -713.7587756684184 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-711.6680240871308]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[213.59588970783636,-711.6680240871308]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-called update on data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-Broadcast : 21840dfa-8d74-465d-86ca-09b8e949a5a0, sending data {"type":1,"data":["80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-{ _id: '21840dfa-8d74-465d-86ca-09b8e949a5a0',
- data: [ '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 672c99e2-ba2a-419b-9f06-903d9aeba563, receiving Set Field with data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-calling update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-called update on data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-Broadcast : 672c99e2-ba2a-419b-9f06-903d9aeba563, sending data {"_id":"672c99e2-ba2a-419b-9f06-903d9aeba563","type":0,"data":-1}
-{ _id: '672c99e2-ba2a-419b-9f06-903d9aeba563',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, receiving Set Field with data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":302.15233403453146}
-calling update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":302.15233403453146}
-called update on data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":302.15233403453146}
-{ _id: 'e45192a6-2f99-48aa-ac1f-06cc5fd219f9',
- data: -27.43489264412767,
- type: 0 }
-Incoming : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, receiving Set Field with data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-295.15004461354283}
-calling update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-295.15004461354283}
-called update on data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-295.15004461354283}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-295.15004461354283}
-Broadcast : 82d314ed-e4d4-46e4-ab5c-6fdd8002ea19, sending data {"_id":"82d314ed-e4d4-46e4-ab5c-6fdd8002ea19","type":0,"data":-295.15004461354283}
-Incoming : cc496f45-ce13-4ce5-859c-215d8634bc61, receiving Set Field with data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":4}
-calling update on data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":4}
-called update on data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":4}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[98.23875903289104,183.343892747954]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[98.23875903289104,183.343892747954]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '2a1cad71-3e49-434a-9914-3a58edf3826c',
- 'd56974e0-5327-4f68-9268-128975957d7b',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480' ],
- type: 1 }
-{ _id: '82d314ed-e4d4-46e4-ab5c-6fdd8002ea19',
- data: -295.15004461354283,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":302.15233403453146}
-Broadcast : e45192a6-2f99-48aa-ac1f-06cc5fd219f9, sending data {"_id":"e45192a6-2f99-48aa-ac1f-06cc5fd219f9","type":0,"data":302.15233403453146}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":4}
-Broadcast : cc496f45-ce13-4ce5-859c-215d8634bc61, sending data {"_id":"cc496f45-ce13-4ce5-859c-215d8634bc61","type":0,"data":4}
-{ _id: 'cc496f45-ce13-4ce5-859c-215d8634bc61', data: 4, type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,-172.25411611490676]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 98.23875903289081, 183.34389274795387 ] ],
- type: 14 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 368.31150672312526, -172.25411611490676 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[98.23875903289104,183.343892747954]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[98.23875903289104,183.343892747954]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.37488640482252,192.75227486374865]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.37488640482252,192.75227486374865]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.37488640482252,192.75227486374865]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[101.37488640482252,192.75227486374865]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 101.37488640482252, 192.75227486374865 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,-165.9818613710438]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 370.40225830441307, -165.9818613710438 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.511013776754,186.4800201198857]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.511013776754,186.4800201198857]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.511013776754,186.4800201198857]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[104.511013776754,186.4800201198857]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 104.511013776754, 186.4800201198857 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[372.49300988570064,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 372.49300988570064, -170.1633645336192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[110.78326852061718,126.89360005318645]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[110.78326852061718,126.89360005318645]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[110.78326852061718,126.89360005318645]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[110.78326852061718,126.89360005318645]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 110.78326852061718, 126.89360005318645 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[376.674513048276,-209.88764457808531]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 376.674513048276, -209.88764457808531 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.87228749606925,64.17105261455572]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.87228749606925,64.17105261455572]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.87228749606925,64.17105261455572]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-Broadcast : 2fffd14d-dbbb-442d-858d-6dab6f4d4d8a, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[135.87228749606925,64.17105261455572]],"_id":"2fffd14d-dbbb-442d-858d-6dab6f4d4d8a"}
-{ _id: '2fffd14d-dbbb-442d-858d-6dab6f4d4d8a',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 135.87228749606925, 64.17105261455572 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[393.40052569857755,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[393.40052569857755,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[393.40052569857755,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[393.40052569857755,-251.70267620383902]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 393.40052569857755, -251.70267620383902 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[420.58029625531765,-297.6992109921682]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 420.58029625531765, -297.6992109921682 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[472.8490857875098,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 472.8490857875098, -352.0587521056482 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[537.6623848074281,-421.05355428814187]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 537.6623848074281, -421.05355428814187 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[564.8421553641682,-469.14084065775876]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 564.8421553641682, -469.14084065775876 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,-517.2281270273756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,-517.2281270273756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,-517.2281270273756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[583.6589195957573,-517.2281270273756]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 583.6589195957573, -517.2281270273756 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[410.878061513675,212.25666129134424]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[410.878061513675,212.25666129134424]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[410.878061513675,212.25666129134424]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[410.878061513675,212.25666129134424]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 410.878061513675, 212.25666129134424 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-550.6801523279787]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 585.7496711770451, -550.6801523279787 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[410.878061513675,191.34914547846734]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[410.878061513675,191.34914547846734]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[410.878061513675,191.34914547846734]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[410.878061513675,191.34914547846734]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 410.878061513675, 191.34914547846734 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[585.7496711770451,-571.5876681408556]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 585.7496711770451, -571.5876681408556 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[400.4243036072364,174.62313282816592]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[400.4243036072364,174.62313282816592]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[575.2959132706065,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[575.2959132706065,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 410.878061513675, 191.34914547846734 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[400.4243036072364,174.62313282816592]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[400.4243036072364,174.62313282816592]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[575.2959132706065,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[575.2959132706065,-588.313680791157]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 575.2959132706065, -588.313680791157 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[371.15378146920875,145.35261069013825]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[371.15378146920875,145.35261069013825]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[371.15378146920875,145.35261069013825]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[371.15378146920875,145.35261069013825]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 371.15378146920875, 145.35261069013825 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 575.2959132706065, -588.313680791157 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[546.0253911325789,-617.5842029291847]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.8832593311811,124.44509487726134]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.8832593311811,124.44509487726134]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.8832593311811,124.44509487726134]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[341.8832593311811,124.44509487726134]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 341.8832593311811, 124.44509487726134 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[516.7548689945512,-638.4917187420616]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 516.7548689945512, -638.4917187420616 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[331.42950142474274,120.26359171468596]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[331.42950142474274,120.26359171468596]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[331.42950142474274,120.26359171468596]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[331.42950142474274,120.26359171468596]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 331.42950142474274, 120.26359171468596 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-642.673221904637]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-642.673221904637]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-642.673221904637]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[506.30111108811286,-642.673221904637]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 506.30111108811286, -642.673221904637 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[314.7034887744412,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[314.7034887744412,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[314.7034887744412,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[314.7034887744412,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 314.7034887744412, 116.08208855211058 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[489.57509843781133,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 489.57509843781133, -646.8547250672124 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 312.6127371931534, 113.99133697082289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 487.48434685652353, -648.9454766485001 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[312.6127371931534,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 312.6127371931534, 113.99133697082289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 487.48434685652353, -648.9454766485001 ] ],
- type: 14 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[487.48434685652353,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[318.8849919370166,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[318.8849919370166,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[318.8849919370166,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[318.8849919370166,113.99133697082289]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 318.8849919370166, 113.99133697082289 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[493.7566016003867,-648.9454766485001]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 493.7566016003867, -648.9454766485001 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.9740109124689,109.8098338082475]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.9740109124689,109.8098338082475]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.9740109124689,109.8098338082475]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[343.9740109124689,109.8098338082475]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 343.9740109124689, 109.8098338082475 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[518.845620575839,-653.1269798110754]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 518.845620575839, -653.1269798110754 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[375.33528463178413,105.62833064567212]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[375.33528463178413,105.62833064567212]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[375.33528463178413,105.62833064567212]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[375.33528463178413,105.62833064567212]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 375.33528463178413, 105.62833064567212 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[550.2068942951543,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[550.2068942951543,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[550.2068942951543,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[550.2068942951543,-657.3084829736508]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 550.2068942951543, -657.3084829736508 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.96881309496257,99.35607590180905]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.96881309496257,99.35607590180905]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.96881309496257,99.35607590180905]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[412.96881309496257,99.35607590180905]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 412.96881309496257, 99.35607590180905 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[587.8404227583327,-663.5807377175139]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 587.8404227583327, -663.5807377175139 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[442.23933523299024,97.26532432052136]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[442.23933523299024,97.26532432052136]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[442.23933523299024,97.26532432052136]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[442.23933523299024,97.26532432052136]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 442.23933523299024, 97.26532432052136 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[617.1109448963604,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 617.1109448963604, -665.6714892988016 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[463.14685104586715,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[463.14685104586715,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[463.14685104586715,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[463.14685104586715,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 463.14685104586715, 95.17457273923367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[638.0184607092373,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 638.0184607092373, -667.7622408800893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[467.32835420844253,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[467.32835420844253,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[467.32835420844253,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[467.32835420844253,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 467.32835420844253, 95.17457273923367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[642.1999638718127,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 642.1999638718127, -667.7622408800893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[469.41910578973034,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[469.41910578973034,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[469.41910578973034,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[469.41910578973034,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 469.41910578973034, 95.17457273923367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[644.2907154531005,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 644.2907154531005, -667.7622408800893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[471.5098573710179,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[471.5098573710179,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[471.5098573710179,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[471.5098573710179,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 471.5098573710179, 95.17457273923367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 646.381467034388, -667.7622408800893 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[475.6913605335933,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[475.6913605335933,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[475.6913605335933,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[475.6913605335933,95.17457273923367]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 475.6913605335933, 95.17457273923367 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 646.381467034388, -667.7622408800893 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[650.5629701969634,-667.7622408800893]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.7821121148811,97.26532432052136]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.7821121148811,97.26532432052136]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.7821121148811,97.26532432052136]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.7821121148811,97.26532432052136]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 477.7821121148811, 97.26532432052136 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[652.6537217782512,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[652.6537217782512,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[652.6537217782512,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[652.6537217782512,-665.6714892988016]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 652.6537217782512, -665.6714892988016 ] ],
- type: 14 }
-calling update on data {"type":1,"data":[],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-called update on data {"type":1,"data":[],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":[],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-Broadcast : 21840dfa-8d74-465d-86ca-09b8e949a5a0, sending data {"type":1,"data":[],"_id":"21840dfa-8d74-465d-86ca-09b8e949a5a0"}
-{ _id: '21840dfa-8d74-465d-86ca-09b8e949a5a0',
- data: [],
- type: 1 }
-Incoming : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, receiving Set Field with data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-calling update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-called update on data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-Broadcast : 78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b, sending data {"_id":"78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b","type":0,"data":-1}
-{ _id: '78fcb2f1-0b9e-4eb9-829c-c3c8a5e7476b',
- data: -1,
- type: 0 }
-calling update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","d56974e0-5327-4f68-9268-128975957d7b","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '2a1cad71-3e49-434a-9914-3a58edf3826c',
- 'd56974e0-5327-4f68-9268-128975957d7b',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, receiving Set Field with data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":608.8230876649144}
-calling update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":608.8230876649144}
-called update on data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":608.8230876649144}
-Incoming : d7d79305-cd6b-4653-a173-1284f76f5773, receiving Set Field with data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-316.61158692943457}
-calling update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-316.61158692943457}
-called update on data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-316.61158692943457}
-Incoming : a59882d7-3daf-4574-b38e-4673bbac7db8, receiving Set Field with data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":5}
-calling update on data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":5}
-called update on data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":5}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":5}
-Broadcast : a59882d7-3daf-4574-b38e-4673bbac7db8, sending data {"_id":"a59882d7-3daf-4574-b38e-4673bbac7db8","type":0,"data":5}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '9ffe2a20-7fcb-4460-aa91-922b69f91e24',
- data: 410.9532106073798,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":608.8230876649144}
-Broadcast : 9ffe2a20-7fcb-4460-aa91-922b69f91e24, sending data {"_id":"9ffe2a20-7fcb-4460-aa91-922b69f91e24","type":0,"data":608.8230876649144}
-{ _id: 'd7d79305-cd6b-4653-a173-1284f76f5773',
- data: -51.27364965658168,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-316.61158692943457}
-Broadcast : d7d79305-cd6b-4653-a173-1284f76f5773, sending data {"_id":"d7d79305-cd6b-4653-a173-1284f76f5773","type":0,"data":-316.61158692943457}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-168.07261295233138]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: 'a59882d7-3daf-4574-b38e-4673bbac7db8', data: 5, type: 0 }
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 675.6519891724157, -168.07261295233138 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[675.6519891724157,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 675.6519891724157, -170.1633645336192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[663.1074796846896,-184.79862560263302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[663.1074796846896,-184.79862560263302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[663.1074796846896,-184.79862560263302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[663.1074796846896,-184.79862560263302]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 663.1074796846896, -184.79862560263302 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,-216.1598993219484]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 640.1092122905251, -216.1598993219484 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[610.8386901524974,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 610.8386901524974, -247.52117304126364 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 581.5681680144697, -280.9731983418667 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[531.3901300635652,-331.1512362927713]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 531.3901300635652, -331.1512362927713 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[502.1196079255375,-362.51251001208664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 502.1196079255375, -362.51251001208664 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[474.9398373687976,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 474.9398373687976, -391.7830321501143 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[437.3063089056192,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[437.3063089056192,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[437.3063089056192,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[437.3063089056192,-433.598063775868]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 437.3063089056192, -433.598063775868 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[391.30977411729,-467.05008907647107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[391.30977411729,-467.05008907647107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[391.30977411729,-467.05008907647107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[391.30977411729,-467.05008907647107]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 391.30977411729, -467.05008907647107 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[353.67624565411154,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 353.67624565411154, -500.5021143770741 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[313.9519656096453,-531.8633880963895]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 313.9519656096453, -531.8633880963895 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.26532432052159,197.6214002223304]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.26532432052159,197.6214002223304]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.26532432052159,197.6214002223304]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[97.26532432052159,197.6214002223304]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 97.26532432052159, 197.6214002223304 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[272.1369339838917,-565.3154133969925]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 272.1369339838917, -565.3154133969925 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[57.541044276055345,162.07862334043978]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[57.541044276055345,162.07862334043978]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[57.541044276055345,162.07862334043978]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[57.541044276055345,162.07862334043978]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 57.541044276055345, 162.07862334043978 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[232.41265393942547,-600.8581902788832]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 232.41265393942547, -600.8581902788832 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[15.726012650301527,132.8081012024121]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[15.726012650301527,132.8081012024121]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[15.726012650301527,132.8081012024121]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[15.726012650301527,132.8081012024121]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 15.726012650301527, 132.8081012024121 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-630.1287124169108]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-630.1287124169108]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-630.1287124169108]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[190.59762231367165,-630.1287124169108]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 190.59762231367165, -630.1287124169108 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-13.544509487726145,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-13.544509487726145,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-13.544509487726145,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-13.544509487726145,116.08208855211058]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -13.544509487726145, 116.08208855211058 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.32710017564398,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.32710017564398,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 190.59762231367165, -630.1287124169108 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.32710017564398,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[161.32710017564398,-646.8547250672124]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,103.53757906438443]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,103.53757906438443]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,103.53757906438443]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-34.452025300603054,103.53757906438443]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -34.452025300603054, 103.53757906438443 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[140.41958436276707,-659.3992345549385]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 140.41958436276707, -659.3992345549385 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-55.359541113479736,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-55.359541113479736,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-55.359541113479736,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-55.359541113479736,90.99306957665829]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -55.359541113479736, 90.99306957665829 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.51206854989039,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.51206854989039,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.51206854989039,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.51206854989039,-671.9437440426647]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.51206854989039, -671.9437440426647 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-74.17630534506907,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-74.17630534506907,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-74.17630534506907,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-74.17630534506907,78.44856008893214]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -74.17630534506907, 78.44856008893214 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[100.69530431830105,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[100.69530431830105,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[100.69530431830105,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[100.69530431830105,-684.4882535303908]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 100.69530431830105, -684.4882535303908 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-97.17457273923355,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-97.17457273923355,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-97.17457273923355,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-97.17457273923355,59.63179585734292]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -97.17457273923355, 59.63179585734292 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[77.69703692413657,-703.30501776198]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 77.69703692413657, -703.30501776198 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-105.53757906438443,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-105.53757906438443,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-105.53757906438443,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-105.53757906438443,49.178037950904525]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -105.53757906438443, 49.178037950904525 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 77.69703692413657, -703.30501776198 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[69.33403059898569,-713.7587756684184]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-111.8098338082475,42.90578320704145]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-111.8098338082475,42.90578320704145]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-111.8098338082475,42.90578320704145]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-111.8098338082475,42.90578320704145]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -111.8098338082475, 42.90578320704145 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.06177585512262,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.06177585512262,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.06177585512262,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[63.06177585512262,-720.0310304122816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 63.06177585512262, -720.0310304122816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-113.9005853895352,36.63352846317838]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-113.9005853895352,36.63352846317838]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-113.9005853895352,36.63352846317838]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-113.9005853895352,36.63352846317838]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -113.9005853895352, 36.63352846317838 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-726.3032851561445]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-726.3032851561445]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-726.3032851561445]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[60.97102427383493,-726.3032851561445]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 60.97102427383493, -726.3032851561445 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,32.452025300603]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,32.452025300603]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,32.452025300603]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,32.452025300603]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -115.99133697082289, 32.452025300603 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-730.4847883187199]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 58.88027269254724, -730.4847883187199 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,30.361273719315307]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,30.361273719315307]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,30.361273719315307]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,30.361273719315307]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -115.99133697082289, 30.361273719315307 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-732.5755399000077]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 58.88027269254724, -732.5755399000077 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,26.179770556739925]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,26.179770556739925]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,26.179770556739925]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-115.99133697082289,26.179770556739925]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -115.99133697082289, 26.179770556739925 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 58.88027269254724, -732.5755399000077 ] ],
- type: 14 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[58.88027269254724,-736.7570430625831]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.08208855211058,21.998267394164543]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.08208855211058,21.998267394164543]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.08208855211058,21.998267394164543]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-Broadcast : bf792c34-1f36-4536-aba0-c0f9ecd3f410, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-118.08208855211058,21.998267394164543]],"_id":"bf792c34-1f36-4536-aba0-c0f9ecd3f410"}
-{ _id: 'bf792c34-1f36-4536-aba0-c0f9ecd3f410',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -118.08208855211058, 21.998267394164543 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[56.789521111259546,-740.9385462251585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 56.789521111259546, -740.9385462251585 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[234.50340552071327,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[234.50340552071327,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[234.50340552071327,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[234.50340552071327,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 234.50340552071327, 38.9117935951499 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,72.36381889575273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,72.36381889575273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,72.36381889575273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,72.36381889575273]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 209.41438654526098, 72.36381889575273 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[192.68837389495945,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[192.68837389495945,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[192.68837389495945,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[192.68837389495945,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 192.68837389495945, 84.90832838347887 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 184.3253675698087, 91.18058312734206 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[173.87160966337012,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 173.87160966337012, 89.08983154605426 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,78.63607363961592]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,78.63607363961592]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,78.63607363961592]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[163.41785175693178,78.63607363961592]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 163.41785175693178, 78.63607363961592 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,57.72855782673901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,57.72855782673901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,57.72855782673901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,57.72855782673901]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 159.2363485943564, 57.72855782673901 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[146.69183910663025,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 146.69183910663025, 32.639538851286716 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '2a1cad71-3e49-434a-9914-3a58edf3826c',
- '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[111.14906222473962,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 111.14906222473962, -30.08300858734401 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.330565387315,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.330565387315,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.330565387315,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[115.330565387315,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 115.330565387315, -30.08300858734401 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.51206854989039,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.51206854989039,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.51206854989039,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[119.51206854989039,-30.08300858734401]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 119.51206854989039, -30.08300858734401 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[180.1438644072333,-40.53676649378235]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 180.1438644072333, -40.53676649378235 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.68664128912394,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.68664128912394,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.68664128912394,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[215.68664128912394,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 215.68664128912394, -55.1720275627963 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[477.0305889500852,-90.71480444468693]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 477.0305889500852, -90.71480444468693 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[709.1040144730188,-136.71133923301613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[709.1040144730188,-136.71133923301613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[709.1040144730188,-136.71133923301613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[709.1040144730188,-136.71133923301613]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 709.1040144730188, -136.71133923301613 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[916.0884210205,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[916.0884210205,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[916.0884210205,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[916.0884210205,-186.88937718392071]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 916.0884210205, -186.88937718392071 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[968.3572105526922,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[968.3572105526922,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[968.3572105526922,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[968.3572105526922,-199.43388667164686]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 968.3572105526922, -199.43388667164686 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[970.44796213398,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[970.44796213398,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[970.44796213398,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[970.44796213398,-201.52463825293455]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 970.44796213398, -201.52463825293455 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[951.6311979023907,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 951.6311979023907, -193.1616319277838 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[936.995936833377,-188.9801287652084]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[936.995936833377,-188.9801287652084]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[936.995936833377,-188.9801287652084]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[936.995936833377,-188.9801287652084]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 936.995936833377, -188.9801287652084 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[945.3589431585277,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[945.3589431585277,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[945.3589431585277,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[945.3589431585277,-180.61712244005764]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 945.3589431585277, -180.61712244005764 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1005.9907390158706,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1005.9907390158706,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1005.9907390158706,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[1005.9907390158706,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 1005.9907390158706, -170.1633645336192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[926.5421789269384,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[926.5421789269384,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[926.5421789269384,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[926.5421789269384,-878.928150590146]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 926.5421789269384, -878.928150590146 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[717.4670207981695,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[717.4670207981695,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[717.4670207981695,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[717.4670207981695,-728.3940367374323]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 717.4670207981695, -728.3940367374323 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[500.0288563442497,-575.769171303431]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 500.0288563442497, -575.769171303431 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[94.4230495744381,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 94.4230495744381, -312.33447206118205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-321.6365151018123,-86.53330128211155]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -321.6365151018123, -86.53330128211155 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -424.083342584909, -55.1720275627963 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-470.07987737323816,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-470.07987737323816,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-470.07987737323816,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-470.07987737323816,-55.1720275627963]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -470.07987737323816, -55.1720275627963 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -71.89804021309783 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-80.26104653824859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-80.26104653824859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-80.26104653824859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-80.26104653824859]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -80.26104653824859 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-96.98705918855012]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -96.98705918855012 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-124.16682974528999]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -124.16682974528999 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-486.8058900235397,-170.1633645336192]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -486.8058900235397, -170.1633645336192 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-474.26138053581354,-247.52117304126364]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -474.26138053581354, -247.52117304126364 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-440.80935523521055,-316.51597522375744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -440.80935523521055, -316.51597522375744 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-390.63131728430596,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -390.63131728430596, -379.23852266238816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-313.2735087766615,-462.8685859138957]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -313.2735087766615, -462.8685859138957 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-271.4584771509077,-496.32061121449874]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -271.4584771509077, -496.32061121449874 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-265.1862224070446,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -265.1862224070446, -504.6836175396495 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-267.2769739883323,-504.6836175396495]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -267.2769739883323, -504.6836175396495 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-279.82148347605846,-500.5021143770741]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -279.82148347605846, -500.5021143770741 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-483.7761017267726]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-483.7761017267726]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-483.7761017267726]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-340.4532793334014,-483.7761017267726]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -340.4532793334014, -483.7761017267726 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-405.2665783533198,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-405.2665783533198,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-405.2665783533198,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-405.2665783533198,-446.14257326359416]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -405.2665783533198, -446.14257326359416 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-499.35039951126583,-400.14603847526496]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-499.35039951126583,-400.14603847526496]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-499.35039951126583,-400.14603847526496]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-499.35039951126583,-400.14603847526496]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -499.35039951126583, -400.14603847526496 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-530.7116732305813,-377.1477710811005]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -530.7116732305813, -377.1477710811005 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-358.33100684951125]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -549.5284374621704, -358.33100684951125 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-352.0587521056482]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -352.0587521056482 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-557.8914437873211,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-557.8914437873211,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-557.8914437873211,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-557.8914437873211,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -557.8914437873211, -349.9680005243605 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-559.9821953686088,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-559.9821953686088,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-559.9821953686088,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-559.9821953686088,-347.8772489430728]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -559.9821953686088, -347.8772489430728 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-559.9821953686088,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-559.9821953686088,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-559.9821953686088,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-559.9821953686088,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -559.9821953686088, -343.6957457804974 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-557.8914437873211,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-557.8914437873211,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-557.8914437873211,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-557.8914437873211,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -557.8914437873211, -343.6957457804974 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-555.8006922060334,-343.6957457804974]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -555.8006922060334, -343.6957457804974 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-553.7099406247457,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-553.7099406247457,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-553.7099406247457,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-553.7099406247457,-345.7864973617851]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -553.7099406247457, -345.7864973617851 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -551.619189043458, -349.9680005243605 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-356.24025526822356]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-356.24025526822356]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-356.24025526822356]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-549.5284374621704,-356.24025526822356]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -549.5284374621704, -356.24025526822356 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-547.4376858808827,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-547.4376858808827,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-547.4376858808827,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-547.4376858808827,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -547.4376858808827, -364.6032615933743 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-547.4376858808827,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-547.4376858808827,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-547.4376858808827,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-547.4376858808827,-370.8755163372374]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -547.4376858808827, -370.8755163372374 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-551.619189043458,-379.23852266238816]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -551.619189043458, -379.23852266238816 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-568.3452016937596,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -568.3452016937596, -391.7830321501143 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-582.9804627627734,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-582.9804627627734,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-582.9804627627734,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-582.9804627627734,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -582.9804627627734, -398.0552868939774 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-593.4342206692119,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-593.4342206692119,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-593.4342206692119,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-593.4342206692119,-398.0552868939774]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -593.4342206692119, -398.0552868939774 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-603.8879785756503,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-603.8879785756503,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-603.8879785756503,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-603.8879785756503,-391.7830321501143]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -603.8879785756503, -391.7830321501143 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-612.2509849008011,-381.32927424367585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-612.2509849008011,-381.32927424367585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-612.2509849008011,-381.32927424367585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-612.2509849008011,-381.32927424367585]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -612.2509849008011, -381.32927424367585 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-364.6032615933743]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -616.4324880633765, -364.6032615933743 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-356.24025526822356]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-356.24025526822356]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-356.24025526822356]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-356.24025526822356]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -616.4324880633765, -356.24025526822356 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-349.9680005243605]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -616.4324880633765, -349.9680005243605 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-341.6049941992097]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-341.6049941992097]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-341.6049941992097]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-616.4324880633765,-341.6049941992097]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -616.4324880633765, -341.6049941992097 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-614.3417364820888,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-614.3417364820888,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-614.3417364820888,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-614.3417364820888,-333.24198787405896]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -614.3417364820888, -333.24198787405896 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-601.7972269943626,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-601.7972269943626,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-601.7972269943626,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-601.7972269943626,-312.33447206118205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -601.7972269943626, -312.33447206118205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.798959600198,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.798959600198,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.798959600198,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-578.798959600198,-280.9731983418667]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -578.798959600198, -280.9731983418667 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.8024248118688,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.8024248118688,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.8024248118688,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-532.8024248118688,-239.15816671611287]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -532.8024248118688, -239.15816671611287 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-478.4428836983889,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-478.4428836983889,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-478.4428836983889,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-478.4428836983889,-193.1616319277838]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -478.4428836983889, -193.1616319277838 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-424.083342584909,-157.61885504589304]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -424.083342584909, -157.61885504589304 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-371.81455305271675,-128.34833290786537]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -371.81455305271675, -128.34833290786537 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-101.1685623511255]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-101.1685623511255]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-101.1685623511255]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-315.3642603579492,-101.1685623511255]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -315.3642603579492, -101.1685623511255 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-258.91396766318155,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-258.91396766318155,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-258.91396766318155,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-258.91396766318155,-71.89804021309783]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -258.91396766318155, -71.89804021309783 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-185.73766231811237,-46.80902123764554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-185.73766231811237,-46.80902123764554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-185.73766231811237,-46.80902123764554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-185.73766231811237,-46.80902123764554]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -185.73766231811237, -46.80902123764554 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-11.26624435575468]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-11.26624435575468]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-11.26624435575468]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[-91.6538411601664,-11.26624435575468]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ -91.6538411601664, -11.26624435575468 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,24.276532526135952]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,24.276532526135952]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,24.276532526135952]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[50.51726636739647,24.276532526135952]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 50.51726636739647, 24.276532526135952 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 125.78432329375335, 32.639538851286716 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[184.3253675698087,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 184.3253675698087, 32.639538851286716 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[230.3219023581379,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 230.3219023581379, 32.639538851286716 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.8646792400285,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.8646792400285,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.8646792400285,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[265.8646792400285,32.639538851286716]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 265.8646792400285, 32.639538851286716 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,34.73029043257452]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,34.73029043257452]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,34.73029043257452]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[311.8612140283577,34.73029043257452]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 311.8612140283577, 34.73029043257452 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[370.40225830441307,38.9117935951499]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 370.40225830441307, 38.9117935951499 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[428.9433025804684,49.36555150158824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[428.9433025804684,49.36555150158824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[428.9433025804684,49.36555150158824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[428.9433025804684,49.36555150158824]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 428.9433025804684, 49.36555150158824 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,55.6378062454512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,55.6378062454512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,55.6378062454512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[479.12134053137277,55.6378062454512]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 479.12134053137277, 55.6378062454512 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,64.00081257060197]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,64.00081257060197]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,64.00081257060197]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[508.39186266940044,64.00081257060197]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 508.39186266940044, 64.00081257060197 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,70.27306731446515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,70.27306731446515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,70.27306731446515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[525.117875319702,70.27306731446515]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 525.117875319702, 70.27306731446515 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,74.45457047704053]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,74.45457047704053]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,74.45457047704053]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[535.5716332261405,74.45457047704053]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 535.5716332261405, 74.45457047704053 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[556.4791490390174,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 556.4791490390174, 80.72682522090349 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[581.5681680144697,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 581.5681680144697, 93.27133470862964 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[600.3849322460588,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 600.3849322460588, 97.45283787120502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[623.3831996402236,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 623.3831996402236, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[646.381467034388,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 646.381467034388, 118.36035368408193 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[667.288982847265,122.54185684665731]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 667.288982847265, 122.54185684665731 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.5595049852926,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.5595049852926,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.5595049852926,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[696.5595049852926,130.90486317180807]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 696.5595049852926, 130.90486317180807 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[717.4670207981695,135.08636633438346]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[717.4670207981695,135.08636633438346]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[717.4670207981695,135.08636633438346]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[717.4670207981695,135.08636633438346]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 717.4670207981695, 135.08636633438346 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[732.1022818671833,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[732.1022818671833,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[732.1022818671833,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[732.1022818671833,137.17711791567126]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 732.1022818671833, 137.17711791567126 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[750.9190460987726,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[750.9190460987726,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[750.9190460987726,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[750.9190460987726,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 750.9190460987726, 143.44937265953422 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[759.2820524239233,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[759.2820524239233,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[759.2820524239233,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[759.2820524239233,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 759.2820524239233, 145.54012424082202 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[761.3728040052109,145.54012424082202]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 761.3728040052109, 145.54012424082202 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[767.6450587490741,143.44937265953422]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 767.6450587490741, 143.44937265953422 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,141.35862107824664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,141.35862107824664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,141.35862107824664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[773.9173134929371,141.35862107824664]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 773.9173134929371, 141.35862107824664 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[780.1895682368003,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 780.1895682368003, 128.8141115905205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[792.7340777245264,118.36035368408193]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 792.7340777245264, 118.36035368408193 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[805.2785872122525,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[805.2785872122525,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[805.2785872122525,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[805.2785872122525,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 805.2785872122525, 107.90659577764359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,101.6343410337804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,101.6343410337804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,101.6343410337804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[815.7323451186909,101.6343410337804]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 815.7323451186909, 101.6343410337804 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,95.36208628991744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,95.36208628991744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,95.36208628991744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,95.36208628991744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 817.8230966999787, 95.36208628991744 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,95.36208628991744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,95.36208628991744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,95.36208628991744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,95.36208628991744]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 817.8230966999787, 95.36208628991744 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[824.0953514438417,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 824.0953514438417, 93.27133470862964 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 826.1861030251295, 93.27133470862964 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,91.18058312734206]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 826.1861030251295, 91.18058312734206 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,86.99907996476668]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,86.99907996476668]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,86.99907996476668]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,86.99907996476668]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 826.1861030251295, 86.99907996476668 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,84.90832838347887]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 828.276854606417, 84.90832838347887 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[828.276854606417,82.8175768021913]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 828.276854606417, 82.8175768021913 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[830.3676061877048,76.54532205832811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[830.3676061877048,76.54532205832811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[830.3676061877048,76.54532205832811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[830.3676061877048,76.54532205832811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 830.3676061877048, 76.54532205832811 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,76.54532205832811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,76.54532205832811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,76.54532205832811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[826.1861030251295,76.54532205832811]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 826.1861030251295, 76.54532205832811 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[817.8230966999787,80.72682522090349]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 817.8230966999787, 80.72682522090349 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,86.99907996476668]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,86.99907996476668]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,86.99907996476668]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[776.0080650742249,86.99907996476668]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 776.0080650742249, 86.99907996476668 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[753.0097976800602,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[753.0097976800602,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[753.0097976800602,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[753.0097976800602,89.08983154605426]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 753.0097976800602, 89.08983154605426 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[640.1092122905251,93.27133470862964]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 640.1092122905251, 93.27133470862964 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[560.6606522015928,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[560.6606522015928,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[560.6606522015928,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[560.6606522015928,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 560.6606522015928, 97.45283787120502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[485.39359527523595,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 485.39359527523595, 97.45283787120502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[422.6710478366052,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[422.6710478366052,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[422.6710478366052,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[422.6710478366052,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 422.6710478366052, 97.45283787120502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[368.31150672312526,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 368.31150672312526, 99.54358945249282 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[336.95023300381,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 336.95023300381, 99.54358945249282 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[309.7704624470699,99.54358945249282]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 309.7704624470699, 99.54358945249282 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[278.40918872775467,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[278.40918872775467,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[278.40918872775467,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[278.40918872775467,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 278.40918872775467, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[267.9554308213163,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 267.9554308213163, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[263.77392765874094,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 263.77392765874094, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[261.68317607745314,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[261.68317607745314,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[261.68317607745314,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[261.68317607745314,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 261.68317607745314, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[259.59242449616556,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[259.59242449616556,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[259.59242449616556,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[259.59242449616556,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 259.59242449616556, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.32016975230238,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.32016975230238,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.32016975230238,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[253.32016975230238,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 253.32016975230238, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[251.2294181710148,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 251.2294181710148, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[249.138666589727,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 249.138666589727, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[242.86641184586404,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 242.86641184586404, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[228.2311507768501,105.81584419635578]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 228.2311507768501, 105.81584419635578 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[201.05138022011022,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 201.05138022011022, 107.90659577764359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[169.69010650079474,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 169.69010650079474, 107.90659577764359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 125.78432329375335, 114.17885052150655 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 121.60282013117796, 114.17885052150655 ] ],
- type: 14 }
-calling update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd","3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd',
- '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-Incoming : 62d2960c-ed63-4805-89c8-e01eada0f03e, receiving Set Field with data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-283.296839264482}
-calling update on data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-283.296839264482}
-called update on data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-283.296839264482}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-283.296839264482}
-Broadcast : 62d2960c-ed63-4805-89c8-e01eada0f03e, sending data {"_id":"62d2960c-ed63-4805-89c8-e01eada0f03e","type":0,"data":-283.296839264482}
-{ _id: '62d2960c-ed63-4805-89c8-e01eada0f03e',
- data: -283.296839264482,
- type: 0 }
-Incoming : 9ff46b19-dc58-47d7-9752-340e49e29b16, receiving Set Field with data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-43.90578320704148}
-calling update on data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-43.90578320704148}
-called update on data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-43.90578320704148}
-Incoming : 40f594b5-c6ad-4926-9acb-fc33d688f1cd, receiving Set Field with data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":0}
-calling update on data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":0}
-called update on data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":0}
-Broadcast : 40f594b5-c6ad-4926-9acb-fc33d688f1cd, sending data {"_id":"40f594b5-c6ad-4926-9acb-fc33d688f1cd","type":0,"data":0}
-{ _id: '40f594b5-c6ad-4926-9acb-fc33d688f1cd', data: 0, type: 0 }
-calling update on data {"type":6,"data":"200 200","_id":"6bbd8508-b01f-4b79-afa6-9faa9edbe480"}
-called update on data {"type":6,"data":"200 200","_id":"6bbd8508-b01f-4b79-afa6-9faa9edbe480"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"6bbd8508-b01f-4b79-afa6-9faa9edbe480"}],"ok":1}
-Wrote {"type":6,"data":"200 200","_id":"6bbd8508-b01f-4b79-afa6-9faa9edbe480"}
-Broadcast : 6bbd8508-b01f-4b79-afa6-9faa9edbe480, sending data {"type":6,"data":"200 200","_id":"6bbd8508-b01f-4b79-afa6-9faa9edbe480"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e878ea28-b836-487a-9b2c-28a31657f37b"],["51529209-4838-51c5-a520-0044fddf139c","6bbd8508-b01f-4b79-afa6-9faa9edbe480"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e878ea28-b836-487a-9b2c-28a31657f37b"],["51529209-4838-51c5-a520-0044fddf139c","6bbd8508-b01f-4b79-afa6-9faa9edbe480"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Incoming : 42373536-4991-4b59-aaf5-34559e43adef, receiving Set Field with data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":71.25547091955599}
-calling update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":71.25547091955599}
-called update on data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":71.25547091955599}
-Incoming : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, receiving Set Field with data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-125.00190825315835}
-calling update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-125.00190825315835}
-called update on data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-125.00190825315835}
-Incoming : 7d5ef008-d5df-4ce3-9755-0c11310c5830, receiving Set Field with data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-calling update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-called update on data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-calling update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-called update on data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-calling update on data {"type":5,"data":[],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-called update on data {"type":5,"data":[],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-calling update on data {"type":1,"data":[],"_id":"a254264d-6da8-4081-9051-25ebe0b49ccb"}
-called update on data {"type":1,"data":[],"_id":"a254264d-6da8-4081-9051-25ebe0b49ccb"}
-calling update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"a254264d-6da8-4081-9051-25ebe0b49ccb"}
-called update on data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"a254264d-6da8-4081-9051-25ebe0b49ccb"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-calling update on data {"type":6,"data":"a nested collection","_id":"cb7c4eb4-2963-4988-afb7-443dd92bf8f5"}
-called update on data {"type":6,"data":"a nested collection","_id":"cb7c4eb4-2963-4988-afb7-443dd92bf8f5"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-Incoming : 6fd320d2-553c-4198-b6f0-fec09c0cb0b7, receiving Set Field with data {"_id":"6fd320d2-553c-4198-b6f0-fec09c0cb0b7","type":0,"data":1}
-calling update on data {"_id":"6fd320d2-553c-4198-b6f0-fec09c0cb0b7","type":0,"data":1}
-called update on data {"_id":"6fd320d2-553c-4198-b6f0-fec09c0cb0b7","type":0,"data":1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-calling update on data {"type":6,"data":"Transparent","_id":"beb4c116-2022-4479-8432-47ba9025f5b3"}
-called update on data {"type":6,"data":"Transparent","_id":"beb4c116-2022-4479-8432-47ba9025f5b3"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","beb4c116-2022-4479-8432-47ba9025f5b3"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","beb4c116-2022-4479-8432-47ba9025f5b3"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-calling update on data {"type":12,"data":{},"_id":"713a219f-e36a-4c69-a490-4ae5da7389a9"}
-called update on data {"type":12,"data":{},"_id":"713a219f-e36a-4c69-a490-4ae5da7389a9"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","beb4c116-2022-4479-8432-47ba9025f5b3"],["59b58624-916f-50a0-8efa-7003a805bfad","713a219f-e36a-4c69-a490-4ae5da7389a9"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","beb4c116-2022-4479-8432-47ba9025f5b3"],["59b58624-916f-50a0-8efa-7003a805bfad","713a219f-e36a-4c69-a490-4ae5da7389a9"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-calling update on data {"type":5,"data":[],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-called update on data {"type":5,"data":[],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Incoming : 485418f4-7846-4d5b-87a9-4aed3f98c2c2, receiving Set Field with data {"_id":"485418f4-7846-4d5b-87a9-4aed3f98c2c2","type":0,"data":-616.4324880633765}
-calling update on data {"_id":"485418f4-7846-4d5b-87a9-4aed3f98c2c2","type":0,"data":-616.4324880633765}
-called update on data {"_id":"485418f4-7846-4d5b-87a9-4aed3f98c2c2","type":0,"data":-616.4324880633765}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Incoming : a228720f-41e0-4ef6-924f-505c82f7c980, receiving Set Field with data {"_id":"a228720f-41e0-4ef6-924f-505c82f7c980","type":0,"data":-341.6049941992097}
-calling update on data {"_id":"a228720f-41e0-4ef6-924f-505c82f7c980","type":0,"data":-341.6049941992097}
-called update on data {"_id":"a228720f-41e0-4ef6-924f-505c82f7c980","type":0,"data":-341.6049941992097}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Incoming : 5033b111-456f-4570-b6a4-e10ff055ae7f, receiving Set Field with data {"_id":"5033b111-456f-4570-b6a4-e10ff055ae7f","type":0,"data":738.0353081945544}
-calling update on data {"_id":"5033b111-456f-4570-b6a4-e10ff055ae7f","type":0,"data":738.0353081945544}
-called update on data {"_id":"5033b111-456f-4570-b6a4-e10ff055ae7f","type":0,"data":738.0353081945544}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Incoming : 0120d01a-a82d-425a-b3fc-549398273140, receiving Set Field with data {"_id":"0120d01a-a82d-425a-b3fc-549398273140","type":0,"data":455.78384472071633}
-calling update on data {"_id":"0120d01a-a82d-425a-b3fc-549398273140","type":0,"data":455.78384472071633}
-called update on data {"_id":"0120d01a-a82d-425a-b3fc-549398273140","type":0,"data":455.78384472071633}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Incoming : 4baa5232-50bc-4292-bcf2-21fb5325550c, receiving Set Field with data {"_id":"4baa5232-50bc-4292-bcf2-21fb5325550c","type":0,"data":0}
-calling update on data {"_id":"4baa5232-50bc-4292-bcf2-21fb5325550c","type":0,"data":0}
-called update on data {"_id":"4baa5232-50bc-4292-bcf2-21fb5325550c","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Incoming : 3f474268-efca-4eec-97c4-933dcc673fbc, receiving Set Field with data {"_id":"3f474268-efca-4eec-97c4-933dcc673fbc","type":0,"data":0}
-calling update on data {"_id":"3f474268-efca-4eec-97c4-933dcc673fbc","type":0,"data":0}
-called update on data {"_id":"3f474268-efca-4eec-97c4-933dcc673fbc","type":0,"data":0}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"],["048d25ac-b841-5728-a599-e3a432137881","3f474268-efca-4eec-97c4-933dcc673fbc"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"],["048d25ac-b841-5728-a599-e3a432137881","3f474268-efca-4eec-97c4-933dcc673fbc"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Incoming : 45bfc2c1-49fe-451d-a41c-9208efabe88f, receiving Set Field with data {"_id":"45bfc2c1-49fe-451d-a41c-9208efabe88f","type":0,"data":-1}
-calling update on data {"_id":"45bfc2c1-49fe-451d-a41c-9208efabe88f","type":0,"data":-1}
-called update on data {"_id":"45bfc2c1-49fe-451d-a41c-9208efabe88f","type":0,"data":-1}
-calling update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"],["048d25ac-b841-5728-a599-e3a432137881","3f474268-efca-4eec-97c4-933dcc673fbc"],["911954a3-bebc-5b20-81f3-3091a2e11907","45bfc2c1-49fe-451d-a41c-9208efabe88f"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-called update on data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"],["048d25ac-b841-5728-a599-e3a432137881","3f474268-efca-4eec-97c4-933dcc673fbc"],["911954a3-bebc-5b20-81f3-3091a2e11907","45bfc2c1-49fe-451d-a41c-9208efabe88f"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-calling update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","809af21b-e4a4-4e37-bd26-60e41d847cca"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-called update on data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","809af21b-e4a4-4e37-bd26-60e41d847cca"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '9ff46b19-dc58-47d7-9752-340e49e29b16',
- data: -157.61885504589304,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-43.90578320704148}
-Broadcast : 9ff46b19-dc58-47d7-9752-340e49e29b16, sending data {"_id":"9ff46b19-dc58-47d7-9752-340e49e29b16","type":0,"data":-43.90578320704148}
-{ _id: '6bbd8508-b01f-4b79-afa6-9faa9edbe480',
- data: '200 200',
- type: 6 }
-{ _id: '2a1cad71-3e49-434a-9914-3a58edf3826c',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '483c9a83-c777-47db-a806-4a7c6e298a2d' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '729e1f77-82c8-42ba-a781-7442f2011a48' ],
- [ '911954a3-bebc-5b20-81f3-3091a2e11907',
- '40f594b5-c6ad-4926-9acb-fc33d688f1cd' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '62d2960c-ed63-4805-89c8-e01eada0f03e' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- '9ff46b19-dc58-47d7-9752-340e49e29b16' ],
- [ '3559ca27-b3fa-5407-b822-07a1c9a0664c',
- 'e878ea28-b836-487a-9b2c-28a31657f37b' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e878ea28-b836-487a-9b2c-28a31657f37b"],["51529209-4838-51c5-a520-0044fddf139c","6bbd8508-b01f-4b79-afa6-9faa9edbe480"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-Broadcast : 2a1cad71-3e49-434a-9914-3a58edf3826c, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","3f66365b-1c1c-4c0b-9c3c-1a1d4b1c7526"],["5c207bd2-0390-5c35-8972-06d185f387fb","483c9a83-c777-47db-a806-4a7c6e298a2d"],["2a238eef-0bbb-5b78-b173-37b574fec97f","729e1f77-82c8-42ba-a781-7442f2011a48"],["911954a3-bebc-5b20-81f3-3091a2e11907","40f594b5-c6ad-4926-9acb-fc33d688f1cd"],["7b71638c-05b8-5573-9aa5-c737c9406a86","62d2960c-ed63-4805-89c8-e01eada0f03e"],["13a3cc01-c286-57e1-8746-baa3ced34e76","9ff46b19-dc58-47d7-9752-340e49e29b16"],["3559ca27-b3fa-5407-b822-07a1c9a0664c","e878ea28-b836-487a-9b2c-28a31657f37b"],["51529209-4838-51c5-a520-0044fddf139c","6bbd8508-b01f-4b79-afa6-9faa9edbe480"]],"_id":"2a1cad71-3e49-434a-9914-3a58edf3826c"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":71.25547091955599}
-Broadcast : 42373536-4991-4b59-aaf5-34559e43adef, sending data {"_id":"42373536-4991-4b59-aaf5-34559e43adef","type":0,"data":71.25547091955599}
-{ _id: '42373536-4991-4b59-aaf5-34559e43adef',
- data: 71.25547091955599,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-125.00190825315835}
-Broadcast : 9a0e2341-8c47-4d60-84ec-5fa6158164b1, sending data {"_id":"9a0e2341-8c47-4d60-84ec-5fa6158164b1","type":0,"data":-125.00190825315835}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a' ],
- type: 1 }
-{ _id: '9a0e2341-8c47-4d60-84ec-5fa6158164b1',
- data: -125.00190825315835,
- type: 0 }
-{ _id: '7d5ef008-d5df-4ce3-9755-0c11310c5830',
- data: -1,
- type: 0 }
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-Broadcast : 0dc04257-8187-4391-a1bf-a63c30a9e922, sending data {"type":12,"data":{},"_id":"0dc04257-8187-4391-a1bf-a63c30a9e922"}
-{ _id: '0dc04257-8187-4391-a1bf-a63c30a9e922',
- data: {},
- type: 12 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-Broadcast : 7d5ef008-d5df-4ce3-9755-0c11310c5830, sending data {"_id":"7d5ef008-d5df-4ce3-9755-0c11310c5830","type":0,"data":0}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}],"ok":1}
-Wrote {"type":5,"data":[],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-Broadcast : 20c6ad58-5924-480d-b0bc-4cc710b6fbbf, sending data {"type":5,"data":[],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-Broadcast : 20c6ad58-5924-480d-b0bc-4cc710b6fbbf, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-{ _id: '20c6ad58-5924-480d-b0bc-4cc710b6fbbf',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"a254264d-6da8-4081-9051-25ebe0b49ccb"}],"ok":1}
-Wrote {"type":1,"data":[],"_id":"a254264d-6da8-4081-9051-25ebe0b49ccb"}
-Broadcast : a254264d-6da8-4081-9051-25ebe0b49ccb, sending data {"type":1,"data":[],"_id":"a254264d-6da8-4081-9051-25ebe0b49ccb"}
-{ _id: '20c6ad58-5924-480d-b0bc-4cc710b6fbbf',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ] ],
- type: 5 }
-{ _id: 'a254264d-6da8-4081-9051-25ebe0b49ccb',
- data: [],
- type: 1 }
-{ _id: 'a254264d-6da8-4081-9051-25ebe0b49ccb',
- data: [],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-Broadcast : 20c6ad58-5924-480d-b0bc-4cc710b6fbbf, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-{ _id: '20c6ad58-5924-480d-b0bc-4cc710b6fbbf',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'a254264d-6da8-4081-9051-25ebe0b49ccb' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"a254264d-6da8-4081-9051-25ebe0b49ccb"}
-Broadcast : a254264d-6da8-4081-9051-25ebe0b49ccb, sending data {"type":1,"data":["2a1cad71-3e49-434a-9914-3a58edf3826c","6eb58b00-a8e9-4c65-ba8c-028cc7a55ecd"],"_id":"a254264d-6da8-4081-9051-25ebe0b49ccb"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"cb7c4eb4-2963-4988-afb7-443dd92bf8f5"}],"ok":1}
-Wrote {"type":6,"data":"a nested collection","_id":"cb7c4eb4-2963-4988-afb7-443dd92bf8f5"}
-Broadcast : cb7c4eb4-2963-4988-afb7-443dd92bf8f5, sending data {"type":6,"data":"a nested collection","_id":"cb7c4eb4-2963-4988-afb7-443dd92bf8f5"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-Broadcast : 20c6ad58-5924-480d-b0bc-4cc710b6fbbf, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-{ _id: '20c6ad58-5924-480d-b0bc-4cc710b6fbbf',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'a254264d-6da8-4081-9051-25ebe0b49ccb' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- 'cb7c4eb4-2963-4988-afb7-443dd92bf8f5' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"6fd320d2-553c-4198-b6f0-fec09c0cb0b7"}],"ok":1}
-Wrote {"_id":"6fd320d2-553c-4198-b6f0-fec09c0cb0b7","type":0,"data":1}
-Broadcast : 6fd320d2-553c-4198-b6f0-fec09c0cb0b7, sending data {"_id":"6fd320d2-553c-4198-b6f0-fec09c0cb0b7","type":0,"data":1}
-{ _id: 'cb7c4eb4-2963-4988-afb7-443dd92bf8f5',
- data: 'a nested collection',
- type: 6 }
-{ _id: '6fd320d2-553c-4198-b6f0-fec09c0cb0b7', data: 1, type: 0 }
-{ _id: '20c6ad58-5924-480d-b0bc-4cc710b6fbbf',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'a254264d-6da8-4081-9051-25ebe0b49ccb' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- 'cb7c4eb4-2963-4988-afb7-443dd92bf8f5' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"beb4c116-2022-4479-8432-47ba9025f5b3"}],"ok":1}
-Wrote {"type":6,"data":"Transparent","_id":"beb4c116-2022-4479-8432-47ba9025f5b3"}
-Broadcast : beb4c116-2022-4479-8432-47ba9025f5b3, sending data {"type":6,"data":"Transparent","_id":"beb4c116-2022-4479-8432-47ba9025f5b3"}
-{ _id: 'beb4c116-2022-4479-8432-47ba9025f5b3',
- data: 'Transparent',
- type: 6 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-Broadcast : 20c6ad58-5924-480d-b0bc-4cc710b6fbbf, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","beb4c116-2022-4479-8432-47ba9025f5b3"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-Broadcast : 20c6ad58-5924-480d-b0bc-4cc710b6fbbf, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","beb4c116-2022-4479-8432-47ba9025f5b3"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"713a219f-e36a-4c69-a490-4ae5da7389a9"}],"ok":1}
-Wrote {"type":12,"data":{},"_id":"713a219f-e36a-4c69-a490-4ae5da7389a9"}
-Broadcast : 713a219f-e36a-4c69-a490-4ae5da7389a9, sending data {"type":12,"data":{},"_id":"713a219f-e36a-4c69-a490-4ae5da7389a9"}
-{ _id: '713a219f-e36a-4c69-a490-4ae5da7389a9',
- data: {},
- type: 12 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","beb4c116-2022-4479-8432-47ba9025f5b3"],["59b58624-916f-50a0-8efa-7003a805bfad","713a219f-e36a-4c69-a490-4ae5da7389a9"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-Broadcast : 20c6ad58-5924-480d-b0bc-4cc710b6fbbf, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","collectionProto"],["530318f9-9b84-5b90-b926-530590cdd5c3","a254264d-6da8-4081-9051-25ebe0b49ccb"],["51529209-4838-51c5-a520-0044fddf139c","cb7c4eb4-2963-4988-afb7-443dd92bf8f5"],["771c0a88-bd02-5e92-953f-e9042a191928","6fd320d2-553c-4198-b6f0-fec09c0cb0b7"],["bf70b65d-62da-53e6-82b2-1b849418dc2e","beb4c116-2022-4479-8432-47ba9025f5b3"],["59b58624-916f-50a0-8efa-7003a805bfad","713a219f-e36a-4c69-a490-4ae5da7389a9"]],"_id":"20c6ad58-5924-480d-b0bc-4cc710b6fbbf"}
-{ _id: '20c6ad58-5924-480d-b0bc-4cc710b6fbbf',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'a254264d-6da8-4081-9051-25ebe0b49ccb' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- 'cb7c4eb4-2963-4988-afb7-443dd92bf8f5' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '6fd320d2-553c-4198-b6f0-fec09c0cb0b7' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- 'beb4c116-2022-4479-8432-47ba9025f5b3' ],
- [ '59b58624-916f-50a0-8efa-7003a805bfad',
- '713a219f-e36a-4c69-a490-4ae5da7389a9' ] ],
- type: 5 }
-{ _id: '20c6ad58-5924-480d-b0bc-4cc710b6fbbf',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea', 'collectionProto' ],
- [ '530318f9-9b84-5b90-b926-530590cdd5c3',
- 'a254264d-6da8-4081-9051-25ebe0b49ccb' ],
- [ '51529209-4838-51c5-a520-0044fddf139c',
- 'cb7c4eb4-2963-4988-afb7-443dd92bf8f5' ],
- [ '771c0a88-bd02-5e92-953f-e9042a191928',
- '6fd320d2-553c-4198-b6f0-fec09c0cb0b7' ],
- [ 'bf70b65d-62da-53e6-82b2-1b849418dc2e',
- 'beb4c116-2022-4479-8432-47ba9025f5b3' ],
- [ '59b58624-916f-50a0-8efa-7003a805bfad',
- '713a219f-e36a-4c69-a490-4ae5da7389a9' ] ],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}],"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Broadcast : 809af21b-e4a4-4e37-bd26-60e41d847cca, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-{ _id: '809af21b-e4a4-4e37-bd26-60e41d847cca',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '20c6ad58-5924-480d-b0bc-4cc710b6fbbf' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Broadcast : 809af21b-e4a4-4e37-bd26-60e41d847cca, sending data {"type":5,"data":[],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"485418f4-7846-4d5b-87a9-4aed3f98c2c2"}],"ok":1}
-Wrote {"_id":"485418f4-7846-4d5b-87a9-4aed3f98c2c2","type":0,"data":-616.4324880633765}
-Broadcast : 485418f4-7846-4d5b-87a9-4aed3f98c2c2, sending data {"_id":"485418f4-7846-4d5b-87a9-4aed3f98c2c2","type":0,"data":-616.4324880633765}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Broadcast : 809af21b-e4a4-4e37-bd26-60e41d847cca, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-{ _id: '809af21b-e4a4-4e37-bd26-60e41d847cca',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '20c6ad58-5924-480d-b0bc-4cc710b6fbbf' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '485418f4-7846-4d5b-87a9-4aed3f98c2c2' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"a228720f-41e0-4ef6-924f-505c82f7c980"}],"ok":1}
-Wrote {"_id":"a228720f-41e0-4ef6-924f-505c82f7c980","type":0,"data":-341.6049941992097}
-Broadcast : a228720f-41e0-4ef6-924f-505c82f7c980, sending data {"_id":"a228720f-41e0-4ef6-924f-505c82f7c980","type":0,"data":-341.6049941992097}
-{ _id: '485418f4-7846-4d5b-87a9-4aed3f98c2c2',
- data: -616.4324880633765,
- type: 0 }
-{ _id: 'a228720f-41e0-4ef6-924f-505c82f7c980',
- data: -341.6049941992097,
- type: 0 }
-{ _id: '809af21b-e4a4-4e37-bd26-60e41d847cca',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '20c6ad58-5924-480d-b0bc-4cc710b6fbbf' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '485418f4-7846-4d5b-87a9-4aed3f98c2c2' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"5033b111-456f-4570-b6a4-e10ff055ae7f"}],"ok":1}
-Wrote {"_id":"5033b111-456f-4570-b6a4-e10ff055ae7f","type":0,"data":738.0353081945544}
-Broadcast : 5033b111-456f-4570-b6a4-e10ff055ae7f, sending data {"_id":"5033b111-456f-4570-b6a4-e10ff055ae7f","type":0,"data":738.0353081945544}
-{ _id: '5033b111-456f-4570-b6a4-e10ff055ae7f',
- data: 738.0353081945544,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Broadcast : 809af21b-e4a4-4e37-bd26-60e41d847cca, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Broadcast : 809af21b-e4a4-4e37-bd26-60e41d847cca, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"0120d01a-a82d-425a-b3fc-549398273140"}],"ok":1}
-Wrote {"_id":"0120d01a-a82d-425a-b3fc-549398273140","type":0,"data":455.78384472071633}
-Broadcast : 0120d01a-a82d-425a-b3fc-549398273140, sending data {"_id":"0120d01a-a82d-425a-b3fc-549398273140","type":0,"data":455.78384472071633}
-{ _id: '0120d01a-a82d-425a-b3fc-549398273140',
- data: 455.78384472071633,
- type: 0 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Broadcast : 809af21b-e4a4-4e37-bd26-60e41d847cca, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-{ _id: '809af21b-e4a4-4e37-bd26-60e41d847cca',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '20c6ad58-5924-480d-b0bc-4cc710b6fbbf' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '485418f4-7846-4d5b-87a9-4aed3f98c2c2' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- 'a228720f-41e0-4ef6-924f-505c82f7c980' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '5033b111-456f-4570-b6a4-e10ff055ae7f' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '0120d01a-a82d-425a-b3fc-549398273140' ] ],
- type: 5 }
-{ _id: '809af21b-e4a4-4e37-bd26-60e41d847cca',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '20c6ad58-5924-480d-b0bc-4cc710b6fbbf' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '485418f4-7846-4d5b-87a9-4aed3f98c2c2' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- 'a228720f-41e0-4ef6-924f-505c82f7c980' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '5033b111-456f-4570-b6a4-e10ff055ae7f' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '0120d01a-a82d-425a-b3fc-549398273140' ] ],
- type: 5 }
-undefined
-null
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Broadcast : 809af21b-e4a4-4e37-bd26-60e41d847cca, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-{ _id: '809af21b-e4a4-4e37-bd26-60e41d847cca',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '20c6ad58-5924-480d-b0bc-4cc710b6fbbf' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '485418f4-7846-4d5b-87a9-4aed3f98c2c2' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- 'a228720f-41e0-4ef6-924f-505c82f7c980' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '5033b111-456f-4570-b6a4-e10ff055ae7f' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '0120d01a-a82d-425a-b3fc-549398273140' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4baa5232-50bc-4292-bcf2-21fb5325550c' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"4baa5232-50bc-4292-bcf2-21fb5325550c"}],"ok":1}
-Wrote {"_id":"4baa5232-50bc-4292-bcf2-21fb5325550c","type":0,"data":0}
-Broadcast : 4baa5232-50bc-4292-bcf2-21fb5325550c, sending data {"_id":"4baa5232-50bc-4292-bcf2-21fb5325550c","type":0,"data":0}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"3f474268-efca-4eec-97c4-933dcc673fbc"}],"ok":1}
-Wrote {"_id":"3f474268-efca-4eec-97c4-933dcc673fbc","type":0,"data":0}
-Broadcast : 3f474268-efca-4eec-97c4-933dcc673fbc, sending data {"_id":"3f474268-efca-4eec-97c4-933dcc673fbc","type":0,"data":0}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"],["048d25ac-b841-5728-a599-e3a432137881","3f474268-efca-4eec-97c4-933dcc673fbc"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Broadcast : 809af21b-e4a4-4e37-bd26-60e41d847cca, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"],["048d25ac-b841-5728-a599-e3a432137881","3f474268-efca-4eec-97c4-933dcc673fbc"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-{ _id: '809af21b-e4a4-4e37-bd26-60e41d847cca',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '20c6ad58-5924-480d-b0bc-4cc710b6fbbf' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '485418f4-7846-4d5b-87a9-4aed3f98c2c2' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- 'a228720f-41e0-4ef6-924f-505c82f7c980' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '5033b111-456f-4570-b6a4-e10ff055ae7f' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '0120d01a-a82d-425a-b3fc-549398273140' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4baa5232-50bc-4292-bcf2-21fb5325550c' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- '3f474268-efca-4eec-97c4-933dcc673fbc' ] ],
- type: 5 }
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"45bfc2c1-49fe-451d-a41c-9208efabe88f"}],"ok":1}
-Wrote {"_id":"45bfc2c1-49fe-451d-a41c-9208efabe88f","type":0,"data":-1}
-Broadcast : 45bfc2c1-49fe-451d-a41c-9208efabe88f, sending data {"_id":"45bfc2c1-49fe-451d-a41c-9208efabe88f","type":0,"data":-1}
-{ _id: '3f474268-efca-4eec-97c4-933dcc673fbc', data: 0, type: 0 }
-{ _id: '45bfc2c1-49fe-451d-a41c-9208efabe88f',
- data: -1,
- type: 0 }
-{ _id: '809af21b-e4a4-4e37-bd26-60e41d847cca',
- data:
- [ [ '6c3acd53-3a16-59b2-bc11-62c6d79b2cea',
- '20c6ad58-5924-480d-b0bc-4cc710b6fbbf' ],
- [ '7b71638c-05b8-5573-9aa5-c737c9406a86',
- '485418f4-7846-4d5b-87a9-4aed3f98c2c2' ],
- [ '13a3cc01-c286-57e1-8746-baa3ced34e76',
- 'a228720f-41e0-4ef6-924f-505c82f7c980' ],
- [ '5c207bd2-0390-5c35-8972-06d185f387fb',
- '5033b111-456f-4570-b6a4-e10ff055ae7f' ],
- [ '2a238eef-0bbb-5b78-b173-37b574fec97f',
- '0120d01a-a82d-425a-b3fc-549398273140' ],
- [ '8efd3b8a-ce6c-5f44-9085-90a8b7cd2202',
- '4baa5232-50bc-4292-bcf2-21fb5325550c' ],
- [ '048d25ac-b841-5728-a599-e3a432137881',
- '3f474268-efca-4eec-97c4-933dcc673fbc' ] ],
- type: 5 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","809af21b-e4a4-4e37-bd26-60e41d847cca"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-Broadcast : 1fed038e-4afc-486a-a463-d65a676b6102, sending data {"type":1,"data":["3f886fd6-7d94-445f-88ab-0e1077dbf480","80586583-40b0-4d17-9f6f-12c4bf633d3a","809af21b-e4a4-4e37-bd26-60e41d847cca"],"_id":"1fed038e-4afc-486a-a463-d65a676b6102"}
-{ _id: '1fed038e-4afc-486a-a463-d65a676b6102',
- data:
- [ '3f886fd6-7d94-445f-88ab-0e1077dbf480',
- '80586583-40b0-4d17-9f6f-12c4bf633d3a',
- '809af21b-e4a4-4e37-bd26-60e41d847cca' ],
- type: 1 }
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"],["048d25ac-b841-5728-a599-e3a432137881","3f474268-efca-4eec-97c4-933dcc673fbc"],["911954a3-bebc-5b20-81f3-3091a2e11907","45bfc2c1-49fe-451d-a41c-9208efabe88f"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-Broadcast : 809af21b-e4a4-4e37-bd26-60e41d847cca, sending data {"type":5,"data":[["6c3acd53-3a16-59b2-bc11-62c6d79b2cea","20c6ad58-5924-480d-b0bc-4cc710b6fbbf"],["7b71638c-05b8-5573-9aa5-c737c9406a86","485418f4-7846-4d5b-87a9-4aed3f98c2c2"],["13a3cc01-c286-57e1-8746-baa3ced34e76","a228720f-41e0-4ef6-924f-505c82f7c980"],["5c207bd2-0390-5c35-8972-06d185f387fb","5033b111-456f-4570-b6a4-e10ff055ae7f"],["2a238eef-0bbb-5b78-b173-37b574fec97f","0120d01a-a82d-425a-b3fc-549398273140"],["8efd3b8a-ce6c-5f44-9085-90a8b7cd2202","4baa5232-50bc-4292-bcf2-21fb5325550c"],["048d25ac-b841-5728-a599-e3a432137881","3f474268-efca-4eec-97c4-933dcc673fbc"],["911954a3-bebc-5b20-81f3-3091a2e11907","45bfc2c1-49fe-451d-a41c-9208efabe88f"]],"_id":"809af21b-e4a4-4e37-bd26-60e41d847cca"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[121.60282013117796,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 121.60282013117796, 114.17885052150655 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[123.69357171246554,114.17885052150655]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 123.69357171246554, 114.17885052150655 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 125.78432329375335, 112.08809894021897 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":0,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[125.78432329375335,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 125.78432329375335, 112.08809894021897 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[129.96582645632873,112.08809894021897]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 129.96582645632873, 112.08809894021897 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 132.0565780376163, 109.99734735893117 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[132.0565780376163,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 132.0565780376163, 107.90659577764359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[138.3288327814795,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 138.3288327814795, 107.90659577764359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[159.2363485943564,107.90659577764359]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 159.2363485943564, 107.90659577764359 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[209.41438654526098,109.99734735893117]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 209.41438654526098, 109.99734735893117 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,120.45110526536973]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,120.45110526536973]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,120.45110526536973]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[295.1352013780562,120.45110526536973]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 295.1352013780562, 120.45110526536973 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[433.1248057430438,128.8141115905205]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 433.1248057430438, 128.8141115905205 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[661.0167281034018,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[661.0167281034018,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[661.0167281034018,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[661.0167281034018,97.45283787120502]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 661.0167281034018, 97.45283787120502 ] ],
- type: 14 }
-calling update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[947.4496947398153,-17.538499099617866]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-called update on data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[947.4496947398153,-17.538499099617866]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{"n":1,"nModified":1,"ok":1}
-Wrote {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[947.4496947398153,-17.538499099617866]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-Broadcast : 2fa3035c-14c5-4fd6-a8bd-fca408c591ef, sending data {"type":14,"data":[["5c94a611c92ed417082e86a5","tschicke@gmail.com"],[947.4496947398153,-17.538499099617866]],"_id":"2fa3035c-14c5-4fd6-a8bd-fca408c591ef"}
-{ _id: '2fa3035c-14c5-4fd6-a8bd-fca408c591ef',
- data:
- [ [ '5c94a611c92ed417082e86a5', 'tschicke@gmail.com' ],
- [ 947.4496947398153, -17.538499099617866 ] ],
- type: 14 }
-Terminate batch job (Y/N)?
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000..2fbd60474
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,18912 @@
+{
+ "name": "dash",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "requires": {
+ "@babel/highlight": "^7.0.0"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz",
+ "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==",
+ "requires": {
+ "@babel/types": "^7.7.4"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
+ "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+ "requires": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz",
+ "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==",
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ },
+ "@babel/types": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz",
+ "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==",
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@emotion/cache": {
+ "version": "10.0.19",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.19.tgz",
+ "integrity": "sha512-BoiLlk4vEsGBg2dAqGSJu0vJl/PgVtCYLBFJaEO8RmQzPugXewQCXZJNXTDFaRlfCs0W+quesayav4fvaif5WQ==",
+ "requires": {
+ "@emotion/sheet": "0.9.3",
+ "@emotion/stylis": "0.8.4",
+ "@emotion/utils": "0.11.2",
+ "@emotion/weak-memoize": "0.2.4"
+ }
+ },
+ "@emotion/hash": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.3.tgz",
+ "integrity": "sha512-14ZVlsB9akwvydAdaEnVnvqu6J2P6ySv39hYyl/aoB6w/V+bXX0tay8cF6paqbgZsN2n5Xh15uF4pE+GvE+itw=="
+ },
+ "@emotion/memoize": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.3.tgz",
+ "integrity": "sha512-2Md9mH6mvo+ygq1trTeVp2uzAKwE2P7In0cRpD/M9Q70aH8L+rxMLbb3JCN2JoSWsV2O+DdFjfbbXoMoLBczow=="
+ },
+ "@emotion/serialize": {
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.14.tgz",
+ "integrity": "sha512-6hTsySIuQTbDbv00AnUO6O6Xafdwo5GswRlMZ5hHqiFx+4pZ7uGWXUQFW46Kc2taGhP89uXMXn/lWQkdyTosPA==",
+ "requires": {
+ "@emotion/hash": "0.7.3",
+ "@emotion/memoize": "0.7.3",
+ "@emotion/unitless": "0.7.4",
+ "@emotion/utils": "0.11.2",
+ "csstype": "^2.5.7"
+ }
+ },
+ "@emotion/sheet": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.3.tgz",
+ "integrity": "sha512-c3Q6V7Df7jfwSq5AzQWbXHa5soeE4F5cbqi40xn0CzXxWW9/6Mxq48WJEtqfWzbZtW9odZdnRAkwCQwN12ob4A=="
+ },
+ "@emotion/stylis": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.4.tgz",
+ "integrity": "sha512-TLmkCVm8f8gH0oLv+HWKiu7e8xmBIaokhxcEKPh1m8pXiV/akCiq50FvYgOwY42rjejck8nsdQxZlXZ7pmyBUQ=="
+ },
+ "@emotion/unitless": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.4.tgz",
+ "integrity": "sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ=="
+ },
+ "@emotion/utils": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.2.tgz",
+ "integrity": "sha512-UHX2XklLl3sIaP6oiMmlVzT0J+2ATTVpf0dHQVyPJHTkOITvXfaSqnRk6mdDhV9pR8T/tHc3cex78IKXssmzrA=="
+ },
+ "@emotion/weak-memoize": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.4.tgz",
+ "integrity": "sha512-6PYY5DVdAY1ifaQW6XYTnOMihmBVT27elqSjEoodchsGjzYlEsTQMcEhSud99kVawatyTZRTiVkJ/c6lwbQ7nA=="
+ },
+ "@fortawesome/fontawesome-common-types": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.1.7.tgz",
+ "integrity": "sha512-ego8jRVSHfq/iq4KRZJKQeUAdi3ZjGNrqw4oPN3fNdvTBnLCSntwVCnc37bsAJP9UB8MhrTfPnZYxkv2vpS4pg=="
+ },
+ "@fortawesome/fontawesome-free-solid": {
+ "version": "5.0.13",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free-solid/-/fontawesome-free-solid-5.0.13.tgz",
+ "integrity": "sha512-b+krVnqkdDt52Yfev0x0ZZgtxBQsLw00Zfa3uaVWIDzpNZVtrEXuxldUSUaN/ihgGhSNi8VpvDAdNPVgCKOSxw==",
+ "requires": {
+ "@fortawesome/fontawesome-common-types": "^0.1.7"
+ }
+ },
+ "@fortawesome/fontawesome-svg-core": {
+ "version": "1.2.26",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.26.tgz",
+ "integrity": "sha512-3Dfd/v2IztP1TxKOxZiB5+4kaOZK9mNy0KU1vVK7nFlPWz3gzxrCWB+AloQhQUoJ8HhGqbzjliK89Vl7PExGbw==",
+ "requires": {
+ "@fortawesome/fontawesome-common-types": "^0.2.26"
+ },
+ "dependencies": {
+ "@fortawesome/fontawesome-common-types": {
+ "version": "0.2.26",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.26.tgz",
+ "integrity": "sha512-CcM/fIFwZlRdiWG/25xE/wHbtyUuCtqoCTrr6BsWw7hH072fR++n4L56KPydAr3ANgMJMjT8v83ZFIsDc7kE+A=="
+ }
+ }
+ },
+ "@fortawesome/free-brands-svg-icons": {
+ "version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.12.0.tgz",
+ "integrity": "sha512-50uCFzVUki3wfmFmrMNLFhOt8dP6YZ53zwR4dK9FR7Lwq1IVHXnSBb8MtGLe3urLJ2sA+CSu7Pc7s3i6/zLxmA==",
+ "requires": {
+ "@fortawesome/fontawesome-common-types": "^0.2.26"
+ },
+ "dependencies": {
+ "@fortawesome/fontawesome-common-types": {
+ "version": "0.2.26",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.26.tgz",
+ "integrity": "sha512-CcM/fIFwZlRdiWG/25xE/wHbtyUuCtqoCTrr6BsWw7hH072fR++n4L56KPydAr3ANgMJMjT8v83ZFIsDc7kE+A=="
+ }
+ }
+ },
+ "@fortawesome/free-regular-svg-icons": {
+ "version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.12.0.tgz",
+ "integrity": "sha512-FAvpmylTs0PosHwHrWPQX6/7ODc9M11kCE6AOAujFufDYzqTj2cPHT4yJO7zTEkKdAbbusJzbWpnOboMuyjeQA==",
+ "requires": {
+ "@fortawesome/fontawesome-common-types": "^0.2.26"
+ },
+ "dependencies": {
+ "@fortawesome/fontawesome-common-types": {
+ "version": "0.2.26",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.26.tgz",
+ "integrity": "sha512-CcM/fIFwZlRdiWG/25xE/wHbtyUuCtqoCTrr6BsWw7hH072fR++n4L56KPydAr3ANgMJMjT8v83ZFIsDc7kE+A=="
+ }
+ }
+ },
+ "@fortawesome/free-solid-svg-icons": {
+ "version": "5.12.0",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.12.0.tgz",
+ "integrity": "sha512-CnpsWs6GhTs9ekNB3d8rcO5HYqRkXbYKf2YNiAlTWbj5eVlPqsd/XH1F9If8jkcR1aegryAbln/qYeKVZzpM0g==",
+ "requires": {
+ "@fortawesome/fontawesome-common-types": "^0.2.26"
+ },
+ "dependencies": {
+ "@fortawesome/fontawesome-common-types": {
+ "version": "0.2.26",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.26.tgz",
+ "integrity": "sha512-CcM/fIFwZlRdiWG/25xE/wHbtyUuCtqoCTrr6BsWw7hH072fR++n4L56KPydAr3ANgMJMjT8v83ZFIsDc7kE+A=="
+ }
+ }
+ },
+ "@fortawesome/react-fontawesome": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.8.tgz",
+ "integrity": "sha512-I5h9YQg/ePA3Br9ISS18fcwOYmzQYDSM1ftH03/8nHkiqIVHtUyQBw482+60dnzvlr82gHt3mGm+nDUp159FCw==",
+ "requires": {
+ "prop-types": "^15.5.10"
+ }
+ },
+ "@hig/flyout": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@hig/flyout/-/flyout-1.2.0.tgz",
+ "integrity": "sha512-/maJI6COH1UyUX3LCa0muG2VmPiXBtacyz8RAdLLcDIgeTpmyvxpb0FFZI/ib2HUbO2iILBN7qnXiMJ4YNJ/bQ==",
+ "requires": {
+ "@hig/utils": "^0.4.0",
+ "emotion": "^10.0.0",
+ "prop-types": "^15.7.1",
+ "react-transition-group": "^2.3.1"
+ }
+ },
+ "@hig/theme-context": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@hig/theme-context/-/theme-context-2.1.3.tgz",
+ "integrity": "sha512-c0Ju+Z8C532ZZtjwOLzN+XeO+pL3kqUawu6ZG3J084MH5RM9W8JCKyMf4D9Qr38jFWoiX6u8yiSxxjV/mz9Sqw==",
+ "requires": {
+ "create-react-context": "^0.2.3",
+ "prop-types": "^15.6.1"
+ }
+ },
+ "@hig/theme-data": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/@hig/theme-data/-/theme-data-2.13.0.tgz",
+ "integrity": "sha512-ZU6GWRdVpU1baeDb4F/1BGzdVkdamFSrr+1DuRpwD4TbhFa5nXTT+xfyX20ZUf3eO5KP68QSAKFMaMPYbfEGQA==",
+ "requires": {
+ "tinycolor2": "^1.4.1"
+ }
+ },
+ "@hig/utils": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@hig/utils/-/utils-0.4.0.tgz",
+ "integrity": "sha512-EQnMGZKdPh9UJaBUKLKXp92sSoCo+PTpgrGNd8q+71uRFdD0udMu/+yeVekTEtNOJcCk1gnKfyg1rRvIbTcpRw==",
+ "requires": {
+ "emotion": "^10.0.0",
+ "lodash.memoize": "^4.1.2"
+ }
+ },
+ "@icons/material": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz",
+ "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw=="
+ },
+ "@jest/types": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+ "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^13.0.0"
+ }
+ },
+ "@log4js-node/log4js-api": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@log4js-node/log4js-api/-/log4js-api-1.0.2.tgz",
+ "integrity": "sha512-6SJfx949YEWooh/CUPpJ+F491y4BYJmknz4hUN1+RHvKoUEynKbRmhnwbk/VLmh4OthLLDNCyWXfbh4DG1cTXA=="
+ },
+ "@restart/context": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz",
+ "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q=="
+ },
+ "@restart/hooks": {
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.19.tgz",
+ "integrity": "sha512-8bskLEkiDvuZztnfGN+vM56q2HQV8dyXS/Eb0nhXPx6fonii3hQLxfNVA2r5NTMbvEkwDo59bAau3idUXaGvww=="
+ },
+ "@tensorflow-models/universal-sentence-encoder": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@tensorflow-models/universal-sentence-encoder/-/universal-sentence-encoder-1.2.2.tgz",
+ "integrity": "sha512-fGCl/gwB7jmKCRI2FhgIBeIa/LCSUcjlEcckH2Bc2dIjhJ+2nspp+22lubxcseN6jjrmP42kkXt/reAPe+KJkQ=="
+ },
+ "@tensorflow/tfjs": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-1.5.2.tgz",
+ "integrity": "sha512-BCvcbnkE/zMdORIGE7TFAiJU3zLLVUaRv/HyWucVVyHU40oU4L5mGyRXK6RwqU38KmeK3HSI5rUHop4cLNUaRQ==",
+ "requires": {
+ "@tensorflow/tfjs-converter": "1.5.2",
+ "@tensorflow/tfjs-core": "1.5.2",
+ "@tensorflow/tfjs-data": "1.5.2",
+ "@tensorflow/tfjs-layers": "1.5.2"
+ }
+ },
+ "@tensorflow/tfjs-converter": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-1.5.2.tgz",
+ "integrity": "sha512-RRrB8lZFxjLPHO6TwEJPgViVuJP5yqq0IPqA35PhWLYjsNNuC6Tx8vxEa5BZ0Le0mX21CTURak6pdmyac/Jc2w=="
+ },
+ "@tensorflow/tfjs-core": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-1.5.2.tgz",
+ "integrity": "sha512-Rj6l8xf0PxrEKctvX3bvxjqhHLaCBQT0ChvqFK6//HBu8A1/ao4SzeVKpXKNnP9Niax+qV3c9U9VcOwwIkCMag==",
+ "requires": {
+ "@types/offscreencanvas": "~2019.3.0",
+ "@types/seedrandom": "2.4.27",
+ "@types/webgl-ext": "0.0.30",
+ "@types/webgl2": "0.0.4",
+ "node-fetch": "~2.1.2",
+ "seedrandom": "2.4.3"
+ },
+ "dependencies": {
+ "node-fetch": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
+ "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U="
+ }
+ }
+ },
+ "@tensorflow/tfjs-data": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-1.5.2.tgz",
+ "integrity": "sha512-ruCsTSyH67CADWthgLQlWKh8u8YGEXD+4vsW8uOGdFNcDFLcL0ffy4jsSzIV/X6NdPIWYsvSHmiz57LtgfCFew==",
+ "requires": {
+ "@types/node-fetch": "^2.1.2",
+ "node-fetch": "~2.1.2"
+ },
+ "dependencies": {
+ "node-fetch": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
+ "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U="
+ }
+ }
+ },
+ "@tensorflow/tfjs-layers": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-1.5.2.tgz",
+ "integrity": "sha512-fn2hi5D1sOKGEgiBCuoU/hTHO87znODweGivIn6x2HMtF1EC39QWroYQBWzJyrWWMOUZZ4nOFR6coA0Fkhc+nA=="
+ },
+ "@tensorflow/tfjs-node": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-1.5.2.tgz",
+ "integrity": "sha512-qihOkKbCLTDcqe3TTDbA9v00PacMzPwhspV8MEHWpohVb7itqQ8cMSE8w38b2oA+FE38c1RI7KOd2qAl5bCNHA==",
+ "requires": {
+ "@tensorflow/tfjs": "1.5.2",
+ "adm-zip": "^0.4.11",
+ "google-protobuf": "^3.9.2",
+ "https-proxy-agent": "^2.2.1",
+ "node-pre-gyp": "0.14.0",
+ "progress": "^2.0.0",
+ "rimraf": "^2.6.2",
+ "tar": "^4.4.6"
+ },
+ "dependencies": {
+ "node-pre-gyp": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz",
+ "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==",
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4.4.2"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "@trendmicro/react-buttons": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@trendmicro/react-buttons/-/react-buttons-1.3.1.tgz",
+ "integrity": "sha512-9zvt/fdkqCb9kxUdZnvTZKmbmykM2wDQ3VEJFtztGcKAkm4Wkq4oZOQLJXKfUQ1vX3w+YDJob18LkNOzaHI1UQ==",
+ "requires": {
+ "classnames": "^2.2.5",
+ "prop-types": "^15.5.8"
+ }
+ },
+ "@trendmicro/react-dropdown": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@trendmicro/react-dropdown/-/react-dropdown-1.3.0.tgz",
+ "integrity": "sha512-KwL0ksEZPay7qNsiGcPQ3aGmyfJCcUuIjiD9HZs6L66ScwSRoFkDlAjMTlRVLFcYVNhpuyUH4pPiFlKQQzDHGQ==",
+ "requires": {
+ "@trendmicro/react-buttons": "^1.3.0",
+ "chained-function": "^0.5.0",
+ "classnames": "^2.2.5",
+ "dom-helpers": "^3.3.1",
+ "prop-types": "^15.6.0",
+ "uncontrollable": "^5.0.0",
+ "warning": "^3.0.0"
+ }
+ },
+ "@types/adm-zip": {
+ "version": "0.4.32",
+ "resolved": "https://registry.npmjs.org/@types/adm-zip/-/adm-zip-0.4.32.tgz",
+ "integrity": "sha512-hv1O7ySn+XvP5OeDQcJFWwVb2v+GFGO1A9aMTQ5B/bzxb7WW21O8iRhVdsKKr8QwuiagzGmPP+gsUAYZ6bRddQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/animejs": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@types/animejs/-/animejs-2.0.2.tgz",
+ "integrity": "sha512-ACymFQ5qgSrZNR1Fqjk7Wv9gH6dFgejn2gpLkkceWxTKzivRJsshX4xhBVALgvF79gUdXiMCRIdusN728XpeGA=="
+ },
+ "@types/anymatch": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
+ "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA=="
+ },
+ "@types/archiver": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-3.0.0.tgz",
+ "integrity": "sha512-orghAMOF+//wSg4ru2znk6jt0eIPvKTtMVLH7XcYcjbcRyAXRClDlh27QVdqnAvVM37yu9xDP6Nh7egRhNr8tQ==",
+ "requires": {
+ "@types/glob": "*"
+ }
+ },
+ "@types/async": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/@types/async/-/async-2.4.2.tgz",
+ "integrity": "sha512-bWBbC7VG2jdjbgZMX0qpds8U/3h3anfIqE81L8jmVrgFZw/urEDnBA78ymGGKTTK6ciBXmmJ/xlok+Re41S8ww=="
+ },
+ "@types/babel-types": {
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz",
+ "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ=="
+ },
+ "@types/babylon": {
+ "version": "6.16.5",
+ "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz",
+ "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==",
+ "requires": {
+ "@types/babel-types": "*"
+ }
+ },
+ "@types/bcrypt-nodejs": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/@types/bcrypt-nodejs/-/bcrypt-nodejs-0.0.30.tgz",
+ "integrity": "sha1-TN2WtJKTs5MhIuS34pVD415rrlg="
+ },
+ "@types/bluebird": {
+ "version": "3.5.29",
+ "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.29.tgz",
+ "integrity": "sha512-kmVtnxTuUuhCET669irqQmPAez4KFnFVKvpleVRyfC3g+SHD1hIkFZcWLim9BVcwUBLO59o8VZE4yGCmTif8Yw=="
+ },
+ "@types/body-parser": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.1.tgz",
+ "integrity": "sha512-RoX2EZjMiFMjZh9lmYrwgoP9RTpAjSHiJxdp4oidAQVO02T7HER3xj9UKue5534ULWeqVEkujhWcyvUce+d68w==",
+ "requires": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/bson": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.1.tgz",
+ "integrity": "sha512-K6VAEdLVJFBxKp8m5cRTbUfeZpuSvOuLKJLrgw9ANIXo00RiyGzgH4BKWWR4F520gV4tWmxG7q9sKQRVDuzrBw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/caseless": {
+ "version": "0.12.2",
+ "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz",
+ "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w=="
+ },
+ "@types/chai": {
+ "version": "4.2.7",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.7.tgz",
+ "integrity": "sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g=="
+ },
+ "@types/classnames": {
+ "version": "2.2.9",
+ "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.9.tgz",
+ "integrity": "sha512-MNl+rT5UmZeilaPxAVs6YaPC2m6aA8rofviZbhbxpPpl61uKodfdQVsBtgJGTqGizEf02oW3tsVe7FYB8kK14A=="
+ },
+ "@types/color": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.1.tgz",
+ "integrity": "sha512-oeUWVaAwI+xINDUx+3F2vJkl/vVB03VChFF/Gl3iQCdbcakjuoJyMOba+3BXRtnBhxZ7uBYqQBi9EpLnvSoztA==",
+ "requires": {
+ "@types/color-convert": "*"
+ }
+ },
+ "@types/color-convert": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-1.9.0.tgz",
+ "integrity": "sha512-OKGEfULrvSL2VRbkl/gnjjgbbF7ycIlpSsX7Nkab4MOWi5XxmgBYvuiQ7lcCFY5cPDz7MUNaKgxte2VRmtr4Fg==",
+ "requires": {
+ "@types/color-name": "*"
+ }
+ },
+ "@types/color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
+ },
+ "@types/connect": {
+ "version": "3.4.32",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz",
+ "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/connect-flash": {
+ "version": "0.0.34",
+ "resolved": "https://registry.npmjs.org/@types/connect-flash/-/connect-flash-0.0.34.tgz",
+ "integrity": "sha512-QC93TwnTZ0sk//bfT81o7U4GOedbOZAcgvqi0v1vJqCESC8tqIVnhzB1CHiAUBUWFjoxG5JQF0TYaNa6DMb6Ig==",
+ "requires": {
+ "@types/express": "*"
+ }
+ },
+ "@types/cookie-parser": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.2.tgz",
+ "integrity": "sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg==",
+ "requires": {
+ "@types/express": "*"
+ }
+ },
+ "@types/cookie-session": {
+ "version": "2.0.37",
+ "resolved": "https://registry.npmjs.org/@types/cookie-session/-/cookie-session-2.0.37.tgz",
+ "integrity": "sha512-h8uZLDGyfAgER6kHbHlYWm1g/P/7zCBMOW6yT5/fQydVJxByJD4tohSvHBzJrGoLVmQJefQdfwuNkKb23cq29Q==",
+ "requires": {
+ "@types/express": "*",
+ "@types/keygrip": "*"
+ }
+ },
+ "@types/d3-format": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.3.1.tgz",
+ "integrity": "sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A=="
+ },
+ "@types/dotenv": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/@types/dotenv/-/dotenv-6.1.1.tgz",
+ "integrity": "sha512-ftQl3DtBvqHl9L16tpqqzA4YzCSXZfi7g8cQceTz5rOlYtk/IZbFjAv3mLOQlNIgOaylCQWQoBdDQHPgEBJPHg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/events": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
+ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g=="
+ },
+ "@types/exif": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@types/exif/-/exif-0.6.0.tgz",
+ "integrity": "sha512-TyXIoevHn10FjPnCbNfpFlgb44c5KPsCbdWaNf59T76fKOl6YWfBQTmlt84kI7GtY4VuG9aW0qlEEmMuNDldoQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/express": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.2.tgz",
+ "integrity": "sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==",
+ "requires": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "@types/express-flash": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/@types/express-flash/-/express-flash-0.0.0.tgz",
+ "integrity": "sha512-zs1xXRIZOjghUBriJPSnhPmfDpqf/EQxT21ggi/9XZ9/RHYrUi+5vK2jnQrP2pD1abbuZvm7owLICiNCLBQzEQ==",
+ "requires": {
+ "@types/connect-flash": "*",
+ "@types/express": "*"
+ }
+ },
+ "@types/express-serve-static-core": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.1.tgz",
+ "integrity": "sha512-9e7jj549ZI+RxY21Cl0t8uBnWyb22HzILupyHZjYEVK//5TT/1bZodU+yUbLnPdoYViBBnNWbxp4zYjGV0zUGw==",
+ "requires": {
+ "@types/node": "*",
+ "@types/range-parser": "*"
+ }
+ },
+ "@types/express-session": {
+ "version": "1.15.16",
+ "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.15.16.tgz",
+ "integrity": "sha512-vWQpNt9t/zc4bTX+Ow5powZb9n3NwOM0SYsAJ7PYj5vliB6FA40ye5sW5fZTw8+ekbzJf/sgvtQocf7IryJBJw==",
+ "requires": {
+ "@types/express": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/express-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/express-validator/-/express-validator-3.0.0.tgz",
+ "integrity": "sha512-LusnB0YhTXpBT25PXyGPQlK7leE1e41Vezq1hHEUwjfkopM1Pkv2X2Ppxqh9c+w/HZ6Udzki8AJotKNjDTGdkQ==",
+ "requires": {
+ "express-validator": "*"
+ }
+ },
+ "@types/extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw=="
+ },
+ "@types/file-type": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/@types/file-type/-/file-type-5.2.2.tgz",
+ "integrity": "sha512-GWtM4fyqfb+bec4ocpo51/y4x0b83Je+iA6eV131LT9wL0//G+1UgwbkMg7w61ceOwR+KkZXK00z44jrrNljWg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/formidable": {
+ "version": "1.0.31",
+ "resolved": "https://registry.npmjs.org/@types/formidable/-/formidable-1.0.31.tgz",
+ "integrity": "sha512-dIhM5t8lRP0oWe2HF8MuPvdd1TpPTjhDMAqemcq6oIZQCBQTovhBAdTQ5L5veJB4pdQChadmHuxtB0YzqvfU3Q==",
+ "requires": {
+ "@types/events": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/gapi": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmjs.org/@types/gapi/-/gapi-0.0.39.tgz",
+ "integrity": "sha512-R1TZeZbvvbIC60DBJMhuOEivQHzOQtzl3uMDOOENTYQTSSDB6oEMpJo8HVPOTWivdUTbyEcB5qQOVr/JCKRlCQ=="
+ },
+ "@types/glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==",
+ "requires": {
+ "@types/events": "*",
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/isstream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@types/isstream/-/isstream-0.1.0.tgz",
+ "integrity": "sha512-jo6R5XtVMgu1ej3H4o9NXiUE/4ZxyxmDrGslGiBa4/ugJr+Olw2viio/F2Vlc+zrwC9HJzuApOCCVC2g5jqV0w=="
+ },
+ "@types/istanbul-lib-coverage": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
+ "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg=="
+ },
+ "@types/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz",
+ "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==",
+ "requires": {
+ "@types/istanbul-lib-coverage": "*",
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/jest": {
+ "version": "24.9.1",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz",
+ "integrity": "sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==",
+ "requires": {
+ "jest-diff": "^24.3.0"
+ }
+ },
+ "@types/jquery": {
+ "version": "3.3.31",
+ "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.31.tgz",
+ "integrity": "sha512-Lz4BAJihoFw5nRzKvg4nawXPzutkv7wmfQ5121avptaSIXlDNJCUuxZxX/G+9EVidZGuO0UBlk+YjKbwRKJigg==",
+ "requires": {
+ "@types/sizzle": "*"
+ }
+ },
+ "@types/jquery-awesome-cursor": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@types/jquery-awesome-cursor/-/jquery-awesome-cursor-0.3.0.tgz",
+ "integrity": "sha512-tNou39eBTgyQtQGzcynUblExZdZiDqg5xuorANsoIfwBRBZZpHOP8wT/iDSR/qSq2rsu1KuQEfoC8z2L9YSp8A==",
+ "requires": {
+ "@types/jquery": "*"
+ }
+ },
+ "@types/jsonwebtoken": {
+ "version": "8.3.7",
+ "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.3.7.tgz",
+ "integrity": "sha512-B5SSifLkjB0ns7VXpOOtOUlynE78/hKcY8G8pOAhkLJZinwofIBYqz555nRj2W9iDWZqFhK5R+7NZDaRmKWAoQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/keygrip": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.1.tgz",
+ "integrity": "sha1-/1QEYtL7TQqIRBzq8n0oewHD2Hg="
+ },
+ "@types/lodash": {
+ "version": "4.14.149",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz",
+ "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ=="
+ },
+ "@types/memory-fs": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@types/memory-fs/-/memory-fs-0.3.2.tgz",
+ "integrity": "sha512-j5AcZo7dbMxHoOimcHEIh0JZe5e1b8q8AqGSpZJrYc7xOgCIP79cIjTdx5jSDLtySnQDwkDTqwlC7Xw7uXw7qg==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/mime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz",
+ "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw=="
+ },
+ "@types/minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
+ },
+ "@types/mobile-detect": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/@types/mobile-detect/-/mobile-detect-1.3.4.tgz",
+ "integrity": "sha512-MGBTvT5c7aH8eX6szFYP3dWPryNLt5iGlo31XNaJtt8o6jsg6tjn99eEMq9l8T6cPZymsr+J4Jth8+/G/04ZDw==",
+ "requires": {
+ "mobile-detect": "*"
+ }
+ },
+ "@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ=="
+ },
+ "@types/mongodb": {
+ "version": "3.3.14",
+ "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.3.14.tgz",
+ "integrity": "sha512-Ie0Fjoifm/TPY2rNOgixzhNSjDgxgR0dMKQk9XqUXHnkfuw26SpbMXjwECfxSnEdG1bH6bIlpLIK7HvGHQhzqg==",
+ "requires": {
+ "@types/bson": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/mongoose": {
+ "version": "5.5.43",
+ "resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.5.43.tgz",
+ "integrity": "sha512-ZZ/KnIyl81zrTfjwcbLBgb8bR9dnYJDQfcaEpOAz2B7cv1bm8FyOPonKcnAmbDHCTWkAFjsF/J3JhnLtUdWZSg==",
+ "requires": {
+ "@types/mongodb": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/node": {
+ "version": "10.17.13",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.13.tgz",
+ "integrity": "sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg=="
+ },
+ "@types/node-fetch": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.4.tgz",
+ "integrity": "sha512-Oz6id++2qAOFuOlE1j0ouk1dzl3mmI1+qINPNBhi9nt/gVOz0G+13Ao6qjhdF0Ys+eOkhu6JnFmt38bR3H0POQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/nodemailer": {
+ "version": "4.6.8",
+ "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-4.6.8.tgz",
+ "integrity": "sha512-IX1P3bxDP1VIdZf6/kIWYNmSejkYm9MOyMEtoDFi4DVzKjJ3kY4GhOcOAKs6lZRjqVVmF9UjPOZXuQczlpZThw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/oauth": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/@types/oauth/-/oauth-0.9.1.tgz",
+ "integrity": "sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/offscreencanvas": {
+ "version": "2019.3.0",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz",
+ "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q=="
+ },
+ "@types/orderedmap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/orderedmap/-/orderedmap-1.0.0.tgz",
+ "integrity": "sha512-dxKo80TqYx3YtBipHwA/SdFmMMyLCnP+5mkEqN0eMjcTBzHkiiX0ES118DsjDBjvD+zeSsSU9jULTZ+frog+Gw=="
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
+ },
+ "@types/passport": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.2.tgz",
+ "integrity": "sha512-Pf39AYKf8q+YoONym3150cEwfUD66dtwHJWvbeOzKxnA0GZZ/vAXhNWv9vMhKyRQBQZiQyWQnhYBEBlKW6G8wg==",
+ "requires": {
+ "@types/express": "*"
+ }
+ },
+ "@types/passport-google-oauth20": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/passport-google-oauth20/-/passport-google-oauth20-2.0.3.tgz",
+ "integrity": "sha512-6EUEGzEg4acwowvgR/yVZIj8S2Kkwc6JmlY2/wnM1wJHNz20o7s1TIGrxnah8ymLgJasYDpy95P3TMMqlmetPw==",
+ "requires": {
+ "@types/express": "*",
+ "@types/passport": "*",
+ "@types/passport-oauth2": "*"
+ }
+ },
+ "@types/passport-local": {
+ "version": "1.0.33",
+ "resolved": "https://registry.npmjs.org/@types/passport-local/-/passport-local-1.0.33.tgz",
+ "integrity": "sha512-+rn6ZIxje0jZ2+DAiWFI8vGG7ZFKB0hXx2cUdMmudSWsigSq6ES7Emso46r4HJk0qCgrZVfI8sJiM7HIYf4SbA==",
+ "requires": {
+ "@types/express": "*",
+ "@types/passport": "*",
+ "@types/passport-strategy": "*"
+ }
+ },
+ "@types/passport-oauth2": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.8.tgz",
+ "integrity": "sha512-tlX16wyFE5YJR2pHpZ308dgB1MV9/Ra2wfQh71eWk+/umPoD1Rca2D4N5M27W7nZm1wqUNGTk1I864nHvEgiFA==",
+ "requires": {
+ "@types/express": "*",
+ "@types/oauth": "*",
+ "@types/passport": "*"
+ }
+ },
+ "@types/passport-strategy": {
+ "version": "0.2.35",
+ "resolved": "https://registry.npmjs.org/@types/passport-strategy/-/passport-strategy-0.2.35.tgz",
+ "integrity": "sha512-o5D19Jy2XPFoX2rKApykY15et3Apgax00RRLf0RUotPDUsYrQa7x4howLYr9El2mlUApHmCMv5CZ1IXqKFQ2+g==",
+ "requires": {
+ "@types/express": "*",
+ "@types/passport": "*"
+ }
+ },
+ "@types/pdfjs-dist": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@types/pdfjs-dist/-/pdfjs-dist-2.1.3.tgz",
+ "integrity": "sha512-aGyFfB4Q8QjaSR3cBTiJfnFXBU6SXQaBVM7ADfBaZzq4L7EGbjuSoqXfHJofZmLFBfKzZ9b+9nXO2FfUIsw77w=="
+ },
+ "@types/prop-types": {
+ "version": "15.7.3",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
+ "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
+ },
+ "@types/prosemirror-commands": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-commands/-/prosemirror-commands-1.0.1.tgz",
+ "integrity": "sha512-GeE12m8VT9N1JrzoY//946IX8ZyQOLNmvryJ+BNQs/HvhmXW9EWOcWUE6OBRtxK7Y8SrzSOwx4XmqSgVmK3tGQ==",
+ "requires": {
+ "@types/prosemirror-model": "*",
+ "@types/prosemirror-state": "*",
+ "@types/prosemirror-view": "*"
+ }
+ },
+ "@types/prosemirror-history": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-history/-/prosemirror-history-1.0.1.tgz",
+ "integrity": "sha512-BYyPJlWDo3VEnWS5X2DCHXrrAKEjdbCe1DUjGL6R/8hmwMFe3iMJGYdBkOXU1FfkTpw7Z+PlwY/pMyeelVydmg==",
+ "requires": {
+ "@types/prosemirror-model": "*",
+ "@types/prosemirror-state": "*"
+ }
+ },
+ "@types/prosemirror-inputrules": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.2.tgz",
+ "integrity": "sha512-bKFneQUPnkZmzCJ1uoitpKH6PFW0hc4q55NsC7mFUCvX0eZl0GRKxyfV47jkJbsbyUQoO/QFv0WwLDz2bo15sA==",
+ "requires": {
+ "@types/prosemirror-model": "*",
+ "@types/prosemirror-state": "*"
+ }
+ },
+ "@types/prosemirror-keymap": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.1.tgz",
+ "integrity": "sha512-8IjM8ySmoZps9Tn+aKfB4ZR6zoNOjeQfAc9YLQujYXHJB6tdGWV0cbTuoT4QmZOR1iecN1EJ6E9RiRUBk796kQ==",
+ "requires": {
+ "@types/prosemirror-state": "*",
+ "@types/prosemirror-view": "*"
+ }
+ },
+ "@types/prosemirror-menu": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-menu/-/prosemirror-menu-1.0.1.tgz",
+ "integrity": "sha512-wVGc6G7uYRvjIuVwV0zKSLwntFH1wanFwM1fDkq2YcUrLhuj4zZ1i7IPe+yqSoPm7JfmjiDEgHXTpafmwLKJrA==",
+ "requires": {
+ "@types/prosemirror-model": "*",
+ "@types/prosemirror-state": "*",
+ "@types/prosemirror-view": "*"
+ }
+ },
+ "@types/prosemirror-model": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-model/-/prosemirror-model-1.7.2.tgz",
+ "integrity": "sha512-2l+yXvidg3AUHN07mO4Jd8Q84fo6ksFsy7LHUurLYrZ74uTahBp2fzcO49AKZMzww2EulXJ40Kl/OFaQ/7A1fw==",
+ "requires": {
+ "@types/orderedmap": "*"
+ }
+ },
+ "@types/prosemirror-schema-basic": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-schema-basic/-/prosemirror-schema-basic-1.0.1.tgz",
+ "integrity": "sha512-IOQAYf1urifbH+Zwbq5XfFOUMNCbEnvIqpuSAE8SUt00nDAoH62T/S8Qhu8LuF++KQbyXb7fdMp352zkPW9Hmw==",
+ "requires": {
+ "@types/prosemirror-model": "*"
+ }
+ },
+ "@types/prosemirror-schema-list": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.1.tgz",
+ "integrity": "sha512-+iUYq+pj2wVHSThj0MjNDzkkGwq8aDQ6j0UJK8a0cNCL8v44Ftcx1noGPtBIEUJgitH960VnfBNoTWfQoQZfRA==",
+ "requires": {
+ "@types/orderedmap": "*",
+ "@types/prosemirror-model": "*",
+ "@types/prosemirror-state": "*"
+ }
+ },
+ "@types/prosemirror-state": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-state/-/prosemirror-state-1.2.3.tgz",
+ "integrity": "sha512-6m433Hubix9bx+JgcLW7zzyiZuzwjq5mBdSMYY4Yi5c5ZpV2RiVmg7Cy6f9Thtts8vuztilw+PczJAgDm1Frfw==",
+ "requires": {
+ "@types/prosemirror-model": "*",
+ "@types/prosemirror-transform": "*",
+ "@types/prosemirror-view": "*"
+ }
+ },
+ "@types/prosemirror-transform": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-transform/-/prosemirror-transform-1.1.1.tgz",
+ "integrity": "sha512-yYCYSoiRH+Wcbl8GJc0PFCzeyMzNQ1vL2xrHHSXZuNcIlH75VoiKrZFeZ6BS9cl8mYXjZrlmdBe8YOxYvyKM6A==",
+ "requires": {
+ "@types/prosemirror-model": "*"
+ }
+ },
+ "@types/prosemirror-view": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/@types/prosemirror-view/-/prosemirror-view-1.11.2.tgz",
+ "integrity": "sha512-EKcQmR4KdkFZU13wS5pWrkSojRCPGqz/l/uzpZFfW5cgdr7fQsftf2/ttvIjpk1a94ISifEY4UZwflVJ+uL4Rg==",
+ "requires": {
+ "@types/prosemirror-model": "*",
+ "@types/prosemirror-state": "*",
+ "@types/prosemirror-transform": "*"
+ }
+ },
+ "@types/pug": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.4.tgz",
+ "integrity": "sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI="
+ },
+ "@types/range-parser": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
+ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="
+ },
+ "@types/rc-switch": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@types/rc-switch/-/rc-switch-1.9.0.tgz",
+ "integrity": "sha512-L3ZQ2/1GAaiKuQTMO/2sRdhnNNVtnnvdE0ZOL3/+v54j5LguOvYqTSOHPk9nLPi5va3pdRN1MTce3JkJvGZ65A==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/react": {
+ "version": "16.9.19",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz",
+ "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==",
+ "requires": {
+ "@types/prop-types": "*",
+ "csstype": "^2.2.0"
+ }
+ },
+ "@types/react-autosuggest": {
+ "version": "9.3.13",
+ "resolved": "https://registry.npmjs.org/@types/react-autosuggest/-/react-autosuggest-9.3.13.tgz",
+ "integrity": "sha512-J1RB5KAIk6vOJ+TkIE+EqjCWBjXxjobzeA6D9KrS64kzrt6ixC6uSoKMFnG6ByeWoC+1g0756NILCpIpTV62dw==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/react-color": {
+ "version": "2.17.3",
+ "resolved": "https://registry.npmjs.org/@types/react-color/-/react-color-2.17.3.tgz",
+ "integrity": "sha512-ewFUB9mNXuqT2UMbiYNqXiUWt857VinGaElhX0Gk+kT1BrXel0imzRp1FeWntHpr+uHkKAnJbr5e4Yc4vP1BRg==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/react-dom": {
+ "version": "16.9.5",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.5.tgz",
+ "integrity": "sha512-BX6RQ8s9D+2/gDhxrj8OW+YD4R+8hj7FEM/OJHGNR0KipE1h1mSsf39YeyC81qafkq+N3rU3h3RFbLSwE5VqUg==",
+ "dev": true,
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/react-measure": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/react-measure/-/react-measure-2.0.6.tgz",
+ "integrity": "sha512-FxAwgDVKvxm4SPXu24x9cwzsty8x33UueazHcpxM1UWZlGJI57yIHM2djE3xUJhYVxuzNzi4E8UL3kmCkdh+4A==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/react-table": {
+ "version": "6.8.6",
+ "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-6.8.6.tgz",
+ "integrity": "sha512-mCgyjD1KiMfZMHixOEzv7qXh5TSfmvgNbOb8qKLcTJbnGgsVSalcEdrNqASyaMp79MvdbMzxAcFQ3lftzmH7MA==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/request": {
+ "version": "2.48.4",
+ "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.4.tgz",
+ "integrity": "sha512-W1t1MTKYR8PxICH+A4HgEIPuAC3sbljoEVfyZbeFJJDbr30guDspJri2XOaM2E+Un7ZjrihaDi7cf6fPa2tbgw==",
+ "requires": {
+ "@types/caseless": "*",
+ "@types/node": "*",
+ "@types/tough-cookie": "*",
+ "form-data": "^2.5.0"
+ }
+ },
+ "@types/request-promise": {
+ "version": "4.1.45",
+ "resolved": "https://registry.npmjs.org/@types/request-promise/-/request-promise-4.1.45.tgz",
+ "integrity": "sha512-KFagTY/a7CzAj86DkhaAtqP0ViYTNam+CfEokSwtPFUIuq9Qrq+Rq2X4nuaB6OJmM2s0xWeiS085Ro7vR0tt9Q==",
+ "requires": {
+ "@types/bluebird": "*",
+ "@types/request": "*"
+ }
+ },
+ "@types/rimraf": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.3.tgz",
+ "integrity": "sha512-dZfyfL/u9l/oi984hEXdmAjX3JHry7TLWw43u1HQ8HhPv6KtfxnrZ3T/bleJ0GEvnk9t5sM7eePkgMqz3yBcGg==",
+ "requires": {
+ "@types/glob": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/seedrandom": {
+ "version": "2.4.27",
+ "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz",
+ "integrity": "sha1-nbVjk33YaRX2kJK8QyWdL0hXjkE="
+ },
+ "@types/serve-static": {
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz",
+ "integrity": "sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==",
+ "requires": {
+ "@types/express-serve-static-core": "*",
+ "@types/mime": "*"
+ }
+ },
+ "@types/sharp": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@types/sharp/-/sharp-0.23.1.tgz",
+ "integrity": "sha512-iBRM9RjRF9pkIkukk6imlxfaKMRuiRND8L0yYKl5PJu5uLvxuNzp5f0x8aoTG5VX85M8O//BwbttzFVZL1j/FQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/shelljs": {
+ "version": "0.8.6",
+ "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.6.tgz",
+ "integrity": "sha512-svx2eQS268awlppL/P8wgDLBrsDXdKznABHJcuqXyWpSKJgE1s2clXlBvAwbO/lehTmG06NtEWJRkAk4tAgenA==",
+ "requires": {
+ "@types/glob": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/sizzle": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz",
+ "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg=="
+ },
+ "@types/socket.io": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-2.1.4.tgz",
+ "integrity": "sha512-cI98INy7tYnweTsUlp8ocveVdAxENUThO0JsLSCs51cjOP2yV5Mqo5QszMDPckyRRA+PO6+wBgKvGvHUCc23TQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/socket.io-client": {
+ "version": "1.4.32",
+ "resolved": "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.32.tgz",
+ "integrity": "sha512-Vs55Kq8F+OWvy1RLA31rT+cAyemzgm0EWNeax6BWF8H7QiiOYMJIdcwSDdm5LVgfEkoepsWkS+40+WNb7BUMbg=="
+ },
+ "@types/source-list-map": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
+ "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA=="
+ },
+ "@types/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=",
+ "dev": true
+ },
+ "@types/strip-json-comments": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz",
+ "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==",
+ "dev": true
+ },
+ "@types/tapable": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.5.tgz",
+ "integrity": "sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ=="
+ },
+ "@types/tough-cookie": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.6.tgz",
+ "integrity": "sha512-wHNBMnkoEBiRAd3s8KTKwIuO9biFtTf0LehITzBhSco+HQI0xkXZbLOD55SW3Aqw3oUkHstkm5SPv58yaAdFPQ=="
+ },
+ "@types/typescript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/typescript/-/typescript-2.0.0.tgz",
+ "integrity": "sha1-xDNTnJi64oaCswfqp6D9IRW4PCg=",
+ "requires": {
+ "typescript": "*"
+ }
+ },
+ "@types/uglify-js": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.0.4.tgz",
+ "integrity": "sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ==",
+ "requires": {
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "@types/uuid": {
+ "version": "3.4.6",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.6.tgz",
+ "integrity": "sha512-cCdlC/1kGEZdEglzOieLDYBxHsvEOIg7kp/2FYyVR9Pxakq+Qf/inL3RKQ+PA8gOlI/NnL+fXmQH12nwcGzsHw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/webgl-ext": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz",
+ "integrity": "sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg=="
+ },
+ "@types/webgl2": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.4.tgz",
+ "integrity": "sha512-PACt1xdErJbMUOUweSrbVM7gSIYm1vTncW2hF6Os/EeWi6TXYAYMPp+8v6rzHmypE5gHrxaxZNXgMkJVIdZpHw=="
+ },
+ "@types/webpack": {
+ "version": "4.41.3",
+ "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.3.tgz",
+ "integrity": "sha512-dH+BZ6pHBZFrXpnif0YU/PbmUq3lQrvRPnqkxsciSIzvG/DE+Vm/Wrjn56T7V3+B5ryQa5fw0oGnHL8tk4ll6w==",
+ "requires": {
+ "@types/anymatch": "*",
+ "@types/node": "*",
+ "@types/tapable": "*",
+ "@types/uglify-js": "*",
+ "@types/webpack-sources": "*",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "@types/webpack-dev-middleware": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/webpack-dev-middleware/-/webpack-dev-middleware-2.0.3.tgz",
+ "integrity": "sha512-DzNJJ6ah/6t1n8sfAgQyEbZ/OMmFcF9j9P3aesnm7G6/iBFR/qiGin8K89J0RmaWIBzhTMdDg3I5PmKmSv7N9w==",
+ "dev": true,
+ "requires": {
+ "@types/connect": "*",
+ "@types/memory-fs": "*",
+ "@types/webpack": "*",
+ "loglevel": "^1.6.2"
+ }
+ },
+ "@types/webpack-hot-middleware": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/@types/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz",
+ "integrity": "sha512-J+Zk7c99pMnPcxWpPY7CEdc4jhPFX1SVPrqXTzinoF8ea+OmIiHa+oOdVI7leMQFGZ6G9e9Yo1uNPhLVr/R8Uw==",
+ "dev": true,
+ "requires": {
+ "@types/connect": "*",
+ "@types/webpack": "*"
+ }
+ },
+ "@types/webpack-sources": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.6.tgz",
+ "integrity": "sha512-FtAWR7wR5ocJ9+nP137DV81tveD/ZgB1sadnJ/axUGM3BUVfRPx8oQNMtv3JNfTeHx3VP7cXiyfR/jmtEsVHsQ==",
+ "requires": {
+ "@types/node": "*",
+ "@types/source-list-map": "*",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "@types/websocket": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.0.tgz",
+ "integrity": "sha512-MLr8hDM8y7vvdAdnoDEP5LotRoYJj7wgT6mWzCUQH/gHqzS4qcnOT/K4dhC0WimWIUiA3Arj9QAJGGKNRiRZKA==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/word-extractor": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@types/word-extractor/-/word-extractor-0.3.0.tgz",
+ "integrity": "sha512-XcVsLXMpPT6Lv4Qvsc2yPoWg3zPVKEIyQ21eQ1ka58zZjtd7vUZ2kx0KydRbsNRNGopEIiwlemGzgo46dytR2Q=="
+ },
+ "@types/yargs": {
+ "version": "13.0.8",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
+ "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "@types/yargs-parser": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
+ "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw=="
+ },
+ "@types/youtube": {
+ "version": "0.0.38",
+ "resolved": "https://registry.npmjs.org/@types/youtube/-/youtube-0.0.38.tgz",
+ "integrity": "sha512-rS0nLlnnZIvOfBNT4957rkKRMHjHxutoVhSEzowocYgNiTMVBmN+Hbkf/L3TeGMMtts9uKZ9gw7O2JLHREVnIw=="
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz",
+ "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-module-context": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/wast-parser": "1.8.5"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz",
+ "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz",
+ "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz",
+ "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-code-frame": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz",
+ "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/wast-printer": "1.8.5"
+ }
+ },
+ "@webassemblyjs/helper-fsm": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz",
+ "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-module-context": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz",
+ "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz",
+ "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz",
+ "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-buffer": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/wasm-gen": "1.8.5"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz",
+ "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
+ "dev": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz",
+ "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==",
+ "dev": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz",
+ "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==",
+ "dev": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz",
+ "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-buffer": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/helper-wasm-section": "1.8.5",
+ "@webassemblyjs/wasm-gen": "1.8.5",
+ "@webassemblyjs/wasm-opt": "1.8.5",
+ "@webassemblyjs/wasm-parser": "1.8.5",
+ "@webassemblyjs/wast-printer": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz",
+ "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/ieee754": "1.8.5",
+ "@webassemblyjs/leb128": "1.8.5",
+ "@webassemblyjs/utf8": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz",
+ "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-buffer": "1.8.5",
+ "@webassemblyjs/wasm-gen": "1.8.5",
+ "@webassemblyjs/wasm-parser": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz",
+ "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-api-error": "1.8.5",
+ "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
+ "@webassemblyjs/ieee754": "1.8.5",
+ "@webassemblyjs/leb128": "1.8.5",
+ "@webassemblyjs/utf8": "1.8.5"
+ }
+ },
+ "@webassemblyjs/wast-parser": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz",
+ "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/floating-point-hex-parser": "1.8.5",
+ "@webassemblyjs/helper-api-error": "1.8.5",
+ "@webassemblyjs/helper-code-frame": "1.8.5",
+ "@webassemblyjs/helper-fsm": "1.8.5",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz",
+ "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/wast-parser": "1.8.5",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true
+ },
+ "abab": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
+ "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "requires": {
+ "event-target-shim": "^5.0.0"
+ }
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "acorn": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="
+ },
+ "acorn-globals": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
+ "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
+ "requires": {
+ "acorn": "^4.0.4"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
+ }
+ }
+ },
+ "acorn-jsx": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
+ "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw=="
+ },
+ "acorn-walk": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
+ "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==",
+ "dev": true
+ },
+ "addressparser": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz",
+ "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y="
+ },
+ "adm-zip": {
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz",
+ "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw=="
+ },
+ "after": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
+ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
+ },
+ "agent-base": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+ "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="
+ },
+ "ajv-keywords": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
+ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+ },
+ "animejs": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/animejs/-/animejs-3.1.0.tgz",
+ "integrity": "sha512-BjnCroPPQPEAngT0M89pz9TBcOGgOFLnVoq3+jV2upl4rn60k57/AXvESTnuILsNgOEjGuhMEOMp7IlQzk40kA=="
+ },
+ "ansi-align": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
+ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
+ "requires": {
+ "string-width": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "ansi-colors": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+ "dev": true
+ },
+ "ansi-escape-sequences": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz",
+ "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==",
+ "requires": {
+ "array-back": "^3.0.1"
+ },
+ "dependencies": {
+ "array-back": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
+ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="
+ }
+ }
+ },
+ "ansi-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
+ },
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "archiver": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz",
+ "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==",
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "async": "^2.6.3",
+ "buffer-crc32": "^0.2.1",
+ "glob": "^7.1.4",
+ "readable-stream": "^3.4.0",
+ "tar-stream": "^2.1.0",
+ "zip-stream": "^2.1.2"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz",
+ "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==",
+ "requires": {
+ "readable-stream": "^3.0.1"
+ }
+ },
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "tar-stream": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz",
+ "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==",
+ "requires": {
+ "bl": "^3.0.0",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ }
+ }
+ },
+ "archiver-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
+ "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
+ "requires": {
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.0",
+ "lazystream": "^1.0.0",
+ "lodash.defaults": "^4.2.0",
+ "lodash.difference": "^4.5.0",
+ "lodash.flatten": "^4.4.0",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.union": "^4.6.0",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ },
+ "array-back": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
+ "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
+ "requires": {
+ "typical": "^2.6.1"
+ }
+ },
+ "array-batcher": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array-batcher/-/array-batcher-1.2.3.tgz",
+ "integrity": "sha512-/IOrwn4ZJi7YqTZrs3k+wQN5nKhjtTqL5ZKkzB+sKJlPeJzpMnRc3o8T9yt8/ZJiSldd+PwTHjM+//UsaszOOw==",
+ "requires": {
+ "@types/node": "^12.7.5",
+ "chai": "^4.2.0",
+ "mocha": "^6.2.0",
+ "request": "^2.88.0",
+ "request-promise": "^4.2.4"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "12.12.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.3.tgz",
+ "integrity": "sha512-opgSsy+cEF9N8MgaVPnWVtdJ3o4mV2aMHvDq7thkQUFt0EuOHJon4rQpJfhjmNHB+ikl0Cd6WhWIErOyQ+f7tw=="
+ },
+ "ansi-colors": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
+ "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw=="
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ },
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "mocha": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz",
+ "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==",
+ "requires": {
+ "ansi-colors": "3.2.3",
+ "browser-stdout": "1.3.1",
+ "debug": "3.2.6",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "find-up": "3.0.0",
+ "glob": "7.1.3",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "3.13.1",
+ "log-symbols": "2.2.0",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "ms": "2.1.1",
+ "node-environment-flags": "1.0.5",
+ "object.assign": "4.1.0",
+ "strip-json-comments": "2.0.1",
+ "supports-color": "6.0.0",
+ "which": "1.3.1",
+ "wide-align": "1.1.3",
+ "yargs": "13.3.0",
+ "yargs-parser": "13.1.1",
+ "yargs-unparser": "1.6.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
+ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ },
+ "yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "array-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
+ "dev": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "array-indexofobject": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz",
+ "integrity": "sha1-qqEo5iybPDWAlFaMIZ/2T+SJ1Co="
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "arraybuffer.slice": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
+ "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "arxiv-api-node": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/arxiv-api-node/-/arxiv-api-node-0.0.2.tgz",
+ "integrity": "sha512-vtFiygbvNK9UGYYgR7Ny1JMkamIl1q59nou8jpR0kTpJLTHc4FIGM9HTq3WyWHOMpBqffBpBbyL07cA4J2XLAg==",
+ "requires": {
+ "request": "^2.83.0"
+ }
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw=="
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+ },
+ "ast-types": {
+ "version": "0.9.6",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz",
+ "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk="
+ },
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
+ },
+ "async-foreach": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ },
+ "awesome-typescript-loader": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-5.2.1.tgz",
+ "integrity": "sha512-slv66OAJB8orL+UUaTI3pKlLorwIvS4ARZzYR9iJJyGsEgOqueMfOMdKySWzZ73vIkEe3fcwFgsKMg4d8zyb1g==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "enhanced-resolve": "^4.0.0",
+ "loader-utils": "^1.1.0",
+ "lodash": "^4.17.5",
+ "micromatch": "^3.1.9",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.5.3",
+ "webpack-log": "^1.2.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ },
+ "aws4": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz",
+ "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A=="
+ },
+ "axios": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
+ "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==",
+ "requires": {
+ "follow-redirects": "1.5.10",
+ "is-buffer": "^2.0.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
+ "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
+ "requires": {
+ "debug": "=3.1.0"
+ }
+ },
+ "is-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
+ }
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ }
+ }
+ },
+ "babel-plugin-emotion": {
+ "version": "10.0.23",
+ "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.23.tgz",
+ "integrity": "sha512-1JiCyXU0t5S2xCbItejCduLGGcKmF3POT0Ujbexog2MI4IlRcIn/kWjkYwCUZlxpON0O5FC635yPl/3slr7cKQ==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@emotion/hash": "0.7.3",
+ "@emotion/memoize": "0.7.3",
+ "@emotion/serialize": "^0.11.14",
+ "babel-plugin-macros": "^2.0.0",
+ "babel-plugin-syntax-jsx": "^6.18.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^1.0.5",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7"
+ }
+ },
+ "babel-plugin-macros": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
+ "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
+ "requires": {
+ "@babel/runtime": "^7.7.2",
+ "cosmiconfig": "^6.0.0",
+ "resolve": "^1.12.0"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.7.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.6.tgz",
+ "integrity": "sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw==",
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ },
+ "resolve": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz",
+ "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==",
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ }
+ }
+ },
+ "babel-plugin-syntax-jsx": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
+ "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+ }
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
+ }
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
+ },
+ "backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "base62": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/base62/-/base62-1.2.8.tgz",
+ "integrity": "sha512-V6YHUbjLxN1ymqNLb1DPHoU1CpfdL7d2YTIp5W3U4hhoG4hhxNmsFDs66M9EXxBiSEke5Bt5dwdfMwwZF70iLA=="
+ },
+ "base64-arraybuffer": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
+ "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
+ },
+ "base64-js": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
+ },
+ "base64id": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog=="
+ },
+ "base64url": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
+ "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+ "dev": true
+ },
+ "bcrypt-nodejs": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/bcrypt-nodejs/-/bcrypt-nodejs-0.0.3.tgz",
+ "integrity": "sha1-xgkX8m3CNWYVZsaBBhwwPCsohCs="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "better-assert": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
+ "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
+ "requires": {
+ "callsite": "1.0.0"
+ }
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
+ },
+ "bignumber.js": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
+ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ=="
+ },
+ "binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "optional": true,
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "bl": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz",
+ "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==",
+ "requires": {
+ "readable-stream": "^3.0.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "blob": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
+ "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "requires": {
+ "inherits": "~2.0.0"
+ }
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
+ },
+ "blueimp-load-image": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/blueimp-load-image/-/blueimp-load-image-2.24.0.tgz",
+ "integrity": "sha512-fR/CNGEOqbcgbQC7+6hJKcxjD5updapWECbptrHrYpkacP1eXCOoA+92D0v49Sc+gwtxTDzu8nxNmYYd7AXzUg=="
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ }
+ },
+ "bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "dev": true,
+ "requires": {
+ "array-flatten": "^2.1.0",
+ "deep-equal": "^1.0.1",
+ "dns-equal": "^1.0.0",
+ "dns-txt": "^2.0.2",
+ "multicast-dns": "^6.0.1",
+ "multicast-dns-service-types": "^1.1.0"
+ },
+ "dependencies": {
+ "array-flatten": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
+ "dev": true
+ }
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ },
+ "bootstrap": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz",
+ "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA=="
+ },
+ "boxen": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
+ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
+ "requires": {
+ "ansi-align": "^2.0.0",
+ "camelcase": "^4.0.0",
+ "chalk": "^2.0.1",
+ "cli-boxes": "^1.0.0",
+ "string-width": "^2.0.0",
+ "term-size": "^1.2.0",
+ "widest-line": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
+ },
+ "browser-process-hrtime": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
+ "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==",
+ "dev": true
+ },
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "requires": {
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "requires": {
+ "bn.js": "^4.1.1",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.2",
+ "elliptic": "^6.0.0",
+ "inherits": "^2.0.1",
+ "parse-asn1": "^5.0.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "~1.0.5"
+ }
+ },
+ "bs-logger": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
+ "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "requires": {
+ "fast-json-stable-stringify": "2.x"
+ }
+ },
+ "bson": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz",
+ "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg=="
+ },
+ "buffer": {
+ "version": "5.4.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz",
+ "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==",
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+ },
+ "buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
+ },
+ "buffer-indexof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+ "dev": true
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+ },
+ "cacache": {
+ "version": "10.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "chownr": "^1.0.1",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.2.4",
+ "unique-filename": "^1.1.0",
+ "y18n": "^4.0.0"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ }
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "callsite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
+ "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
+ }
+ }
+ },
+ "canvas": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz",
+ "integrity": "sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==",
+ "requires": {
+ "nan": "^2.14.0",
+ "node-pre-gyp": "^0.11.0",
+ "simple-get": "^3.0.3"
+ }
+ },
+ "capture-stack-trace": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
+ "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw=="
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chai": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
+ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
+ "requires": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^3.0.1",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.1.0",
+ "type-detect": "^4.0.5"
+ }
+ },
+ "chained-function": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/chained-function/-/chained-function-0.5.0.tgz",
+ "integrity": "sha1-JWS73994AxlL6/daayvQQe3iOzo="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "character-parser": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
+ "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
+ "requires": {
+ "is-regex": "^1.0.3"
+ }
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII="
+ },
+ "cheerio": {
+ "version": "1.0.0-rc.3",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
+ "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
+ "requires": {
+ "css-select": "~1.2.0",
+ "dom-serializer": "~0.1.1",
+ "entities": "~1.1.1",
+ "htmlparser2": "^3.9.1",
+ "lodash": "^4.15.0",
+ "parse5": "^3.0.1"
+ },
+ "dependencies": {
+ "parse5": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
+ "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
+ "requires": {
+ "@types/node": "*"
+ }
+ }
+ }
+ },
+ "child_process": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz",
+ "integrity": "sha1-sffn/HPSXn/R1FWtyU4UODAYK1o="
+ },
+ "chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "requires": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ }
+ },
+ "chownr": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz",
+ "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A=="
+ },
+ "chrome-trace-event": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
+ "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "ci-info": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
+ "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A=="
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "class-transformer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.3.tgz",
+ "integrity": "sha512-qsP+0xoavpOlJHuYsQJsN58HXSl8Jvveo+T37rEvCEeRfMWoytAyR0Ua/YsFgpM6AZYZ/og2PJwArwzJl1aXtQ=="
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "classnames": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
+ "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
+ },
+ "clean-css": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
+ "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
+ "requires": {
+ "source-map": "~0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "cli-boxes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
+ "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM="
+ },
+ "cliss": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/cliss/-/cliss-0.0.2.tgz",
+ "integrity": "sha512-6rj9pgdukjT994Md13JCUAgTk91abAKrygL9sAvmHY4F6AKMOV8ccGaxhUUfcBuyg3sundWnn3JE0Mc9W6ZYqw==",
+ "requires": {
+ "command-line-usage": "^4.0.1",
+ "deepmerge": "^2.0.0",
+ "get-stdin": "^5.0.1",
+ "inspect-parameters-declaration": "0.0.9",
+ "object-to-arguments": "0.0.8",
+ "pipe-functions": "^1.3.0",
+ "strip-ansi": "^4.0.0",
+ "yargs-parser": "^7.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "clj-fuzzy": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/clj-fuzzy/-/clj-fuzzy-0.3.3.tgz",
+ "integrity": "sha1-seU0MJHFIC28UlMoY+HEp4RX8D0="
+ },
+ "clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz",
+ "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==",
+ "requires": {
+ "color-convert": "^1.9.1",
+ "color-string": "^1.5.2"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "color-string": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
+ "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "command-line-usage": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz",
+ "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==",
+ "requires": {
+ "ansi-escape-sequences": "^4.0.0",
+ "array-back": "^2.0.0",
+ "table-layout": "^0.4.2",
+ "typical": "^2.6.1"
+ }
+ },
+ "commander": {
+ "version": "2.20.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "commoner": {
+ "version": "0.10.8",
+ "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz",
+ "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=",
+ "requires": {
+ "commander": "^2.5.0",
+ "detective": "^4.3.1",
+ "glob": "^5.0.15",
+ "graceful-fs": "^4.1.2",
+ "iconv-lite": "^0.4.5",
+ "mkdirp": "^0.5.0",
+ "private": "^0.1.6",
+ "q": "^1.1.2",
+ "recast": "^0.11.17"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
+ }
+ },
+ "component-bind": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
+ "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
+ },
+ "component-inherit": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
+ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
+ },
+ "compress-commons": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz",
+ "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==",
+ "requires": {
+ "buffer-crc32": "^0.2.13",
+ "crc32-stream": "^3.0.1",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "compressible": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
+ "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
+ "dev": true,
+ "requires": {
+ "mime-db": ">= 1.40.0 < 2"
+ }
+ },
+ "compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "dev": true
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "configstore": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
+ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
+ "requires": {
+ "dot-prop": "^4.1.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "unique-string": "^1.0.0",
+ "write-file-atomic": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ }
+ },
+ "connect-flash": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz",
+ "integrity": "sha1-2GMPJtlaf4UfmVax6MxnMvO2qjA="
+ },
+ "connect-history-api-fallback": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+ "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
+ "dev": true
+ },
+ "connect-mongo": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/connect-mongo/-/connect-mongo-2.0.3.tgz",
+ "integrity": "sha512-Vs+QZ/6X6gbCrP1Ls7Oh/wlyY6pgpbPSrUKF5yRT+zd+4GZPNbjNquxquZ+Clv2+03HBXE7T4lVM0PUcaBhihg==",
+ "requires": {
+ "mongodb": "^2.0.36"
+ },
+ "dependencies": {
+ "mongodb": {
+ "version": "2.2.36",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.36.tgz",
+ "integrity": "sha512-P2SBLQ8Z0PVx71ngoXwo12+FiSfbNfGOClAao03/bant5DgLNkOPAck5IaJcEk4gKlQhDEURzfR3xuBG1/B+IA==",
+ "requires": {
+ "es6-promise": "3.2.1",
+ "mongodb-core": "2.1.20",
+ "readable-stream": "2.2.7"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "readable-stream": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz",
+ "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=",
+ "requires": {
+ "buffer-shims": "~1.0.0",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~1.0.0",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ },
+ "constantinople": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
+ "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
+ "requires": {
+ "@types/babel-types": "^7.0.0",
+ "@types/babylon": "^6.16.2",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ },
+ "cookie-parser": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz",
+ "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==",
+ "requires": {
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6"
+ }
+ },
+ "cookie-session": {
+ "version": "2.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0-rc.1.tgz",
+ "integrity": "sha512-zg80EsLe7S1J4y0XxV7SZ8Fbi90ZZoampuX2bfYDOvJfc//98sSlZC41YDzTTjtVbeU1VlVdBbldXOOyi5xzEw==",
+ "requires": {
+ "cookies": "0.8.0",
+ "debug": "3.2.6",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.2.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "safe-buffer": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
+ "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
+ }
+ }
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "cookies": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
+ "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
+ "requires": {
+ "depd": "~2.0.0",
+ "keygrip": "~1.1.0"
+ },
+ "dependencies": {
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ }
+ }
+ },
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+ },
+ "copy-webpack-plugin": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz",
+ "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==",
+ "dev": true,
+ "requires": {
+ "cacache": "^10.0.4",
+ "find-cache-dir": "^1.0.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.0",
+ "loader-utils": "^1.1.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^1.0.0",
+ "serialize-javascript": "^1.4.0"
+ },
+ "dependencies": {
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ }
+ }
+ },
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ }
+ }
+ },
+ "crc": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
+ "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==",
+ "requires": {
+ "buffer": "^5.1.0"
+ }
+ },
+ "crc32-stream": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz",
+ "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==",
+ "requires": {
+ "crc": "^3.4.4",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
+ }
+ },
+ "create-emotion": {
+ "version": "10.0.14",
+ "resolved": "https://registry.npmjs.org/create-emotion/-/create-emotion-10.0.14.tgz",
+ "integrity": "sha512-5G4naKMxokOur+94eDz7iPKBfwzy4wa/+0isnPhxXyosIQHBq7yvBy4jjdZw/nnRm7G3PM7P9Ug8mUmtoqcaHg==",
+ "requires": {
+ "@emotion/cache": "^10.0.14",
+ "@emotion/serialize": "^0.11.8",
+ "@emotion/sheet": "0.9.3",
+ "@emotion/utils": "0.11.2"
+ }
+ },
+ "create-error-class": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
+ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
+ "requires": {
+ "capture-stack-trace": "^1.0.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "create-react-context": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz",
+ "integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==",
+ "requires": {
+ "fbjs": "^0.8.0",
+ "gud": "^1.0.0"
+ }
+ },
+ "crel": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/crel/-/crel-3.1.0.tgz",
+ "integrity": "sha512-VIGY44ERxx8lXVkOEfcB0A49OkjxkQNK+j+fHvoLy7GsGX1KKgAaQ+p9N0YgvQXu+X+ryUWGDeLx/fSI+w7+eg=="
+ },
+ "cross-env": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz",
+ "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.5"
+ }
+ },
+ "cross-fetch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.4.tgz",
+ "integrity": "sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw==",
+ "requires": {
+ "node-fetch": "2.6.0",
+ "whatwg-fetch": "3.0.0"
+ },
+ "dependencies": {
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ }
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ }
+ },
+ "crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4="
+ },
+ "css-loader": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz",
+ "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.2.0",
+ "icss-utils": "^4.1.0",
+ "loader-utils": "^1.2.3",
+ "normalize-path": "^3.0.0",
+ "postcss": "^7.0.14",
+ "postcss-modules-extract-imports": "^2.0.0",
+ "postcss-modules-local-by-default": "^2.0.6",
+ "postcss-modules-scope": "^2.1.0",
+ "postcss-modules-values": "^2.0.0",
+ "postcss-value-parser": "^3.3.0",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true
+ },
+ "cssom": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
+ "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==",
+ "dev": true
+ },
+ "cssstyle": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.0.0.tgz",
+ "integrity": "sha512-QXSAu2WBsSRXCPjvI43Y40m6fMevvyRm8JVAuF9ksQz5jha4pWP1wpaK7Yu5oLFc6+XAY+hj8YhefyXcBB53gg==",
+ "dev": true,
+ "requires": {
+ "cssom": "~0.3.6"
+ },
+ "dependencies": {
+ "cssom": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
+ "dev": true
+ }
+ }
+ },
+ "csstype": {
+ "version": "2.6.6",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.6.tgz",
+ "integrity": "sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg=="
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "cyclist": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
+ "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
+ "dev": true
+ },
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "d3-format": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.3.tgz",
+ "integrity": "sha512-mm/nE2Y9HgGyjP+rKIekeITVgBtX97o1nrvHCWX8F/yBYyevUTvu9vb5pUnKwrcSw7o7GuwMOWjS9gFDs4O+uQ=="
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "data-urls": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
+ "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
+ "dev": true,
+ "requires": {
+ "abab": "^2.0.0",
+ "whatwg-mimetype": "^2.2.0",
+ "whatwg-url": "^7.0.0"
+ }
+ },
+ "dateformat": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "meow": "^3.3.0"
+ },
+ "dependencies": {
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ }
+ }
+ },
+ "debounce": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz",
+ "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "deep-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
+ "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+ "dev": true,
+ "requires": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "deepmerge": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
+ "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA=="
+ },
+ "default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+ "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "defined": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
+ },
+ "del": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+ "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "globby": "^6.1.0",
+ "is-path-cwd": "^2.0.0",
+ "is-path-in-cwd": "^2.0.0",
+ "p-map": "^2.0.0",
+ "pify": "^4.0.1",
+ "rimraf": "^2.6.3"
+ },
+ "dependencies": {
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "denque": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz",
+ "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ=="
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "detect-file": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
+ "dev": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
+ },
+ "detect-node": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+ "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
+ "dev": true
+ },
+ "detective": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz",
+ "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==",
+ "requires": {
+ "acorn": "^5.2.1",
+ "defined": "^1.0.0"
+ }
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
+ },
+ "diff-sequences": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz",
+ "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew=="
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "dir-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+ "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+ "dev": true,
+ "requires": {
+ "path-type": "^3.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+ "dev": true
+ },
+ "dns-packet": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
+ "dev": true,
+ "requires": {
+ "ip": "^1.1.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "dns-txt": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "dev": true,
+ "requires": {
+ "buffer-indexof": "^1.0.0"
+ }
+ },
+ "doctypes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
+ "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk="
+ },
+ "dom-helpers": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
+ "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
+ "requires": {
+ "@babel/runtime": "^7.1.2"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+ "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "requires": {
+ "domelementtype": "^1.3.0",
+ "entities": "^1.1.1"
+ }
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ },
+ "domexception": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
+ "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
+ "dev": true,
+ "requires": {
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "dot-prop": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "dotenv": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
+ "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E="
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "dynamic-dedupe": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz",
+ "integrity": "sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE=",
+ "dev": true,
+ "requires": {
+ "xtend": "^4.0.0"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "element-resize-event": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/element-resize-event/-/element-resize-event-2.0.9.tgz",
+ "integrity": "sha1-L14VgaKW61J1IQwUG8VjQuIY+HY="
+ },
+ "elliptic": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz",
+ "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==",
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
+ },
+ "emotion": {
+ "version": "10.0.23",
+ "resolved": "https://registry.npmjs.org/emotion/-/emotion-10.0.23.tgz",
+ "integrity": "sha512-H/x+5rJUnSvI0rdYsAFyDfuQwE0poZgTMj5TQsKirLzyHVWqs6CiUponsdE86sisXw0vS60j91HAbidJJeDt1g==",
+ "requires": {
+ "babel-plugin-emotion": "^10.0.23",
+ "create-emotion": "^10.0.14"
+ }
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ },
+ "encoding": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+ "requires": {
+ "iconv-lite": "~0.4.13"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "engine.io": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz",
+ "integrity": "sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==",
+ "requires": {
+ "accepts": "~1.3.4",
+ "base64id": "2.0.0",
+ "cookie": "0.3.1",
+ "debug": "~4.1.0",
+ "engine.io-parser": "~2.2.0",
+ "ws": "^7.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "engine.io-client": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz",
+ "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "component-inherit": "0.0.3",
+ "debug": "~4.1.0",
+ "engine.io-parser": "~2.2.0",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "ws": "~6.1.0",
+ "xmlhttprequest-ssl": "~1.5.4",
+ "yeast": "0.1.2"
+ },
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "ws": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
+ "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
+ "engine.io-parser": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz",
+ "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==",
+ "requires": {
+ "after": "0.8.2",
+ "arraybuffer.slice": "~0.0.7",
+ "base64-arraybuffer": "0.1.5",
+ "blob": "0.0.5",
+ "has-binary2": "~1.0.2"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.4.0",
+ "tapable": "^1.0.0"
+ }
+ },
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
+ },
+ "envify": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz",
+ "integrity": "sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=",
+ "requires": {
+ "jstransform": "^11.0.3",
+ "through": "~2.3.4"
+ }
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
+ "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
+ "requires": {
+ "es-to-primitive": "^1.2.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.0",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-inspect": "^1.6.0",
+ "object-keys": "^1.1.1",
+ "string.prototype.trimleft": "^2.1.0",
+ "string.prototype.trimright": "^2.1.0"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.50",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
+ "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.1",
+ "next-tick": "^1.0.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-promise": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz",
+ "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q="
+ },
+ "es6-promisify": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+ "requires": {
+ "es6-promise": "^4.0.3"
+ },
+ "dependencies": {
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+ }
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "escodegen": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz",
+ "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==",
+ "dev": true,
+ "requires": {
+ "esprima": "^3.1.3",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ },
+ "ev-emitter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-1.1.1.tgz",
+ "integrity": "sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q=="
+ },
+ "event-stream": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.5.tgz",
+ "integrity": "sha512-vyibDcu5JL20Me1fP734QBH/kenBGLZap2n0+XXM7mvuUPzJ20Ydqj1aKcIeMdri1p+PU+4yAKugjN8KCVst+g==",
+ "requires": {
+ "duplexer": "^0.1.1",
+ "from": "^0.1.7",
+ "map-stream": "0.0.7",
+ "pause-stream": "^0.0.11",
+ "split": "^1.0.1",
+ "stream-combiner": "^0.2.2",
+ "through": "^2.3.8"
+ }
+ },
+ "event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
+ },
+ "eventemitter3": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
+ "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
+ },
+ "events": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
+ "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
+ "dev": true
+ },
+ "eventsource": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
+ "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
+ "dev": true,
+ "requires": {
+ "original": "^1.0.0"
+ }
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ }
+ }
+ },
+ "exenv": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
+ "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50="
+ },
+ "exif": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/exif/-/exif-0.6.0.tgz",
+ "integrity": "sha1-YKYmaAdlQst+T1cZnUrG830sX0o=",
+ "requires": {
+ "debug": "^2.2"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
+ },
+ "expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "dev": true,
+ "requires": {
+ "homedir-polyfill": "^1.0.1"
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
+ }
+ }
+ },
+ "express-flash": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/express-flash/-/express-flash-0.0.2.tgz",
+ "integrity": "sha1-I9GovPP5DXB5KOSJ+Whp7K0KzaI=",
+ "requires": {
+ "connect-flash": "0.1.x"
+ }
+ },
+ "express-session": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.0.tgz",
+ "integrity": "sha512-t4oX2z7uoSqATbMfsxWMbNjAL0T5zpvcJCk3Z9wnPPN7ibddhnmDZXHfEcoBMG2ojKXZoCyPMc5FbtK+G7SoDg==",
+ "requires": {
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-headers": "~1.0.2",
+ "parseurl": "~1.3.3",
+ "safe-buffer": "5.2.0",
+ "uid-safe": "~2.1.5"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
+ "safe-buffer": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
+ "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
+ }
+ }
+ },
+ "express-validator": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-5.3.1.tgz",
+ "integrity": "sha512-g8xkipBF6VxHbO1+ksC7nxUU7+pWif0+OZXjZTybKJ/V0aTVhuCoHbyhIPgSYVldwQLocGExPtB2pE0DqK4jsw==",
+ "requires": {
+ "lodash": "^4.17.10",
+ "validator": "^10.4.0"
+ }
+ },
+ "expressjs": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/expressjs/-/expressjs-1.0.1.tgz",
+ "integrity": "sha1-IgMoRpoY31rWFeK3oM6ZXxf7ru8="
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "fast-text-encoding": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.0.tgz",
+ "integrity": "sha512-R9bHCvweUxxwkDwhjav5vxpFvdPGlVngtqmx4pIZfSUhM/Q4NiIUHB456BAf+Q1Nwu3HEZYONtu+Rya+af4jiQ=="
+ },
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "fbjs": {
+ "version": "0.8.17",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
+ "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
+ "requires": {
+ "core-js": "^1.0.0",
+ "isomorphic-fetch": "^2.1.1",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^0.7.18"
+ }
+ },
+ "feedparser": {
+ "version": "2.2.9",
+ "resolved": "https://registry.npmjs.org/feedparser/-/feedparser-2.2.9.tgz",
+ "integrity": "sha1-kTgZfa/a4F/K3eADa+6vYGbCxek=",
+ "requires": {
+ "addressparser": "^1.0.1",
+ "array-indexofobject": "~0.0.1",
+ "lodash.assign": "^4.2.0",
+ "lodash.get": "^4.4.2",
+ "lodash.has": "^4.5.2",
+ "lodash.uniq": "^4.5.0",
+ "mri": "^1.1.0",
+ "readable-stream": "^2.2.2",
+ "sax": "^1.2.4"
+ }
+ },
+ "figgy-pudding": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
+ "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+ "dev": true
+ },
+ "file-loader": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz",
+ "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.0.2",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "file-type": {
+ "version": "7.7.1",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-7.7.1.tgz",
+ "integrity": "sha512-bTrKkzzZI6wH+NXhyD3SOXtb2zXTw2SbwI2RxUlRcXVsnN7jNL5hJzVQLYv7FOQhxFkK4XWdAflEaWFpaLLWpQ=="
+ },
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "optional": true
+ },
+ "filewatcher": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/filewatcher/-/filewatcher-3.0.1.tgz",
+ "integrity": "sha1-9KGVc1Xdr0Q8zXiolfPVXiPIoDQ=",
+ "dev": true,
+ "requires": {
+ "debounce": "^1.0.0"
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "find": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/find/-/find-0.1.7.tgz",
+ "integrity": "sha1-yGyHrxqxjyIrvjjeyGy8dg0Wpvs=",
+ "requires": {
+ "traverse-chain": "~0.1.0"
+ }
+ },
+ "find-cache-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^1.0.0",
+ "pkg-dir": "^2.0.0"
+ }
+ },
+ "find-in-files": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/find-in-files/-/find-in-files-0.5.0.tgz",
+ "integrity": "sha512-VraTc6HdtdSHmAp0yJpAy20yPttGKzyBWc7b7FPnnsX9TOgmKx0g9xajizpF/iuu4IvNK4TP0SpyBT9zAlwG+g==",
+ "requires": {
+ "find": "^0.1.5",
+ "q": "^1.0.1"
+ }
+ },
+ "find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "findup-sync": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
+ "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
+ "dev": true,
+ "requires": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^3.0.4",
+ "resolve-dir": "^1.0.1"
+ }
+ },
+ "flat": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
+ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
+ "requires": {
+ "is-buffer": "~2.0.3"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
+ }
+ }
+ },
+ "flexlayout-react": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/flexlayout-react/-/flexlayout-react-0.3.4.tgz",
+ "integrity": "sha512-jKMeXUcO1wrMgb4IE9OJtj+QUjv6Kom6GLTMRvsTKru9FfXQGT5lc5ZcTLin1Hte1uU75Vk/7v+qiTchdMyxPw=="
+ },
+ "flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz",
+ "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "font-awesome": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
+ "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM="
+ },
+ "for-each-property": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/for-each-property/-/for-each-property-0.0.4.tgz",
+ "integrity": "sha1-z6hXrsFCLh0Sb/CHhPz2Jim8g/Y=",
+ "requires": {
+ "get-prototype-chain": "^1.0.1"
+ }
+ },
+ "for-each-property-deep": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/for-each-property-deep/-/for-each-property-deep-0.0.3.tgz",
+ "integrity": "sha1-MTCaSvw4qcygbxsiP1PWSm0IP60=",
+ "requires": {
+ "for-each-property": "0.0.4"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "fork-ts-checker-webpack-plugin": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.6.0.tgz",
+ "integrity": "sha512-vqOY5gakcoon2s12V7MMe01OPwfgqulUWFzm+geQaPPOBKjW1I7aqqoBVlU0ECn97liMB0ECs16pRdIGe9qdRw==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.22.0",
+ "chalk": "^2.4.1",
+ "chokidar": "^2.0.4",
+ "micromatch": "^3.1.10",
+ "minimatch": "^3.0.4",
+ "semver": "^5.6.0",
+ "tapable": "^1.0.0",
+ "worker-rpc": "^0.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "form-data": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
+ "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "formidable": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
+ "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg=="
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "from": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4="
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
+ "fs-extra": {
+ "version": "0.26.7",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz",
+ "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "fs-minipass": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz",
+ "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==",
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fsevents": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz",
+ "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==",
+ "optional": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1",
+ "node-pre-gyp": "*"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.1.3",
+ "bundled": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "optional": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "debug": {
+ "version": "3.2.6",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "bundled": true,
+ "optional": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "bundled": true,
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "1.2.7",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.6.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.3",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "bundled": true,
+ "optional": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "optional": true
+ },
+ "minipass": {
+ "version": "2.9.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.3.3",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.9.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "bundled": true,
+ "optional": true
+ },
+ "needle": {
+ "version": "2.4.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.14.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4.4.2"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.1.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.4.7",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.8",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "bundled": true,
+ "optional": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "optional": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "bundled": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "4.4.13",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "bundled": true,
+ "optional": true
+ }
+ }
+ },
+ "fstream": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "gaxios": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.0.1.tgz",
+ "integrity": "sha512-c1NXovTxkgRJTIgB2FrFmOFg4YIV6N/bAa4f/FZ4jIw13Ql9ya/82x69CswvotJhbV3DiGnlTZwoq2NVXk2Irg==",
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "extend": "^3.0.2",
+ "https-proxy-agent": "^2.2.1",
+ "node-fetch": "^2.3.0"
+ },
+ "dependencies": {
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ }
+ }
+ },
+ "gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "requires": {
+ "globule": "^1.0.0"
+ }
+ },
+ "gcp-metadata": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-2.0.1.tgz",
+ "integrity": "sha512-nrbLj5O1MurvpLC/doFwzdTfKnmYGDYXlY/v7eQ4tJNVIvQXbOK672J9UFbradbtmuTkyHzjpzD8HD0Djz0LWw==",
+ "requires": {
+ "gaxios": "^2.0.0",
+ "json-bigint": "^0.3.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE="
+ },
+ "get-node-dimensions": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-node-dimensions/-/get-node-dimensions-1.2.1.tgz",
+ "integrity": "sha512-2MSPMu7S1iOTL+BOa6K1S62hB2zUAYNF/lV0gSVlOaacd087lc6nR1H1r0e3B1CerTo+RceOmi1iJW+vp21xcQ=="
+ },
+ "get-prototype-chain": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-prototype-chain/-/get-prototype-chain-1.0.1.tgz",
+ "integrity": "sha1-oXGhFeoeSQbG7ThDofABwYUQQW8="
+ },
+ "get-stdin": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
+ "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g="
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
+ },
+ "glob": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "global-dirs": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
+ "requires": {
+ "ini": "^1.3.4"
+ }
+ },
+ "global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^3.0.0"
+ },
+ "dependencies": {
+ "global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ }
+ }
+ }
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ }
+ },
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "globule": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.0.tgz",
+ "integrity": "sha512-YlD4kdMqRCQHrhVdonet4TdRtv1/sZKepvoxNT4Nrhrp5HI8XFfc8kFlGlBn2myBo80aGp8Eft259mbcUJhgSg==",
+ "requires": {
+ "glob": "~7.1.1",
+ "lodash": "~4.17.10",
+ "minimatch": "~3.0.2"
+ }
+ },
+ "golden-layout": {
+ "version": "1.5.9",
+ "resolved": "https://registry.npmjs.org/golden-layout/-/golden-layout-1.5.9.tgz",
+ "integrity": "sha1-o5vB9qZ+b4hreXwBbdkk6UJrp38=",
+ "requires": {
+ "jquery": "*"
+ }
+ },
+ "google-auth-library": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-4.2.6.tgz",
+ "integrity": "sha512-oJ6tCA9rbsYeIVY+mcLPFHa2hatz3XO6idYIrlI/KhhlMxZrO3tKyU8O2Pxu5KnSBBP7Wj4HtbM1LLKngNFaFw==",
+ "requires": {
+ "arrify": "^2.0.0",
+ "base64-js": "^1.3.0",
+ "fast-text-encoding": "^1.0.0",
+ "gaxios": "^2.0.0",
+ "gcp-metadata": "^2.0.0",
+ "gtoken": "^3.0.0",
+ "jws": "^3.1.5",
+ "lru-cache": "^5.0.0"
+ },
+ "dependencies": {
+ "arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug=="
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ }
+ }
+ },
+ "google-p12-pem": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.1.tgz",
+ "integrity": "sha512-6h6x+eBX3k+IDSe/c8dVYmn8Mzr1mUcmKC9MdUSwaBkFAXlqBEnwFWmSFgGC+tcqtsLn73BDP/vUNWEehf1Rww==",
+ "requires": {
+ "node-forge": "^0.8.0"
+ },
+ "dependencies": {
+ "node-forge": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.5.tgz",
+ "integrity": "sha512-vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q=="
+ }
+ }
+ },
+ "google-protobuf": {
+ "version": "3.11.3",
+ "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.11.3.tgz",
+ "integrity": "sha512-Sp8E+0AJLxmiPwAk9VH3MkYAmYYheNUhywIyXOS7wvRkqbIYcHtGzJzIYicNqYsqgKmY35F9hxRkI+ZTqTB4Tg=="
+ },
+ "googleapis": {
+ "version": "40.0.1",
+ "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-40.0.1.tgz",
+ "integrity": "sha512-B6qZVCautOOspEhru9GZ814I+ztkGWyA4ZEUfaXwXHBruX/HAWqedbsuUEx1w3nCECywK/FLTNUdcbH9zpaMaw==",
+ "requires": {
+ "google-auth-library": "^4.0.0",
+ "googleapis-common": "^2.0.2"
+ }
+ },
+ "googleapis-common": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-2.0.4.tgz",
+ "integrity": "sha512-8RRkxr24v1jIKCC1onFWA8RGnwFV55m3Qpil9DLX1yLc9e5qvOJsRoDOhhD2e7jFRONYEhT/BzT8vJZANqSr9w==",
+ "requires": {
+ "extend": "^3.0.2",
+ "gaxios": "^2.0.1",
+ "google-auth-library": "^4.2.5",
+ "qs": "^6.7.0",
+ "url-template": "^2.0.8",
+ "uuid": "^3.3.2"
+ }
+ },
+ "googlephotos": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/googlephotos/-/googlephotos-0.2.5.tgz",
+ "integrity": "sha512-XPmD3gu8aMVuwauKVzzahD2Vn8Cn8WtBRGgSF5J9A85Fn6N2GM0OToxWbEoTfyKahK+ryGHGcIYzDX98ndxE9g==",
+ "requires": {
+ "lodash.chunk": "^4.2.0",
+ "request": "^2.86.0",
+ "request-promise": "^4.2.2"
+ }
+ },
+ "got": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
+ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
+ "requires": {
+ "create-error-class": "^3.0.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-redirect": "^1.0.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "unzip-response": "^2.0.1",
+ "url-parse-lax": "^1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
+ "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg=="
+ },
+ "growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
+ },
+ "growly": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
+ "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
+ "dev": true
+ },
+ "gtoken": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-3.0.2.tgz",
+ "integrity": "sha512-BOBi6Zz31JfxhSHRZBIDdbwIbOPyux10WxJHdx8wz/FMP1zyN1xFrsAWsgcLe5ww5v/OZu/MePUEZAjgJXSauA==",
+ "requires": {
+ "gaxios": "^2.0.0",
+ "google-p12-pem": "^2.0.0",
+ "jws": "^3.1.5",
+ "mime": "^2.2.0"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+ "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="
+ }
+ }
+ },
+ "gud": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz",
+ "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw=="
+ },
+ "handle-thing": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz",
+ "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-binary2": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
+ "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
+ "requires": {
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ }
+ }
+ },
+ "has-cors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
+ "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "hoist-non-react-statics": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz",
+ "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==",
+ "requires": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "requires": {
+ "parse-passwd": "^1.0.0"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
+ "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg=="
+ },
+ "howler": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/howler/-/howler-2.1.3.tgz",
+ "integrity": "sha512-PSGbOi1EYgw80C5UQbxtJM7TmzD+giJunIMBYyH3RVzHZx2fZLYBoes0SpVVHi/SFa1GoNtgXj/j6I7NOKYBxQ=="
+ },
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "html-encoding-sniffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
+ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
+ "dev": true,
+ "requires": {
+ "whatwg-encoding": "^1.0.1"
+ }
+ },
+ "html-entities": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+ "dev": true
+ },
+ "html-to-image": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/html-to-image/-/html-to-image-0.1.1.tgz",
+ "integrity": "sha512-UAjpXmokENeOyzfLwL0+zQ502lXyg6pkzVUmRjtljOH9dR/YdEYQhWrQ/O14hmH5/1L7jv1aOupU4Zi3Y8+iow=="
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ }
+ },
+ "http-parser-js": {
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz",
+ "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=",
+ "dev": true
+ },
+ "http-proxy": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
+ "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ },
+ "dependencies": {
+ "eventemitter3": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
+ "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==",
+ "dev": true
+ }
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+ "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
+ "dev": true,
+ "requires": {
+ "http-proxy": "^1.17.0",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.11",
+ "micromatch": "^3.1.10"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+ "dev": true
+ },
+ "https-proxy-agent": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz",
+ "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==",
+ "requires": {
+ "agent-base": "^4.3.0",
+ "debug": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "i": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
+ "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0="
+ },
+ "ibm-cloud-sdk-core": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/ibm-cloud-sdk-core/-/ibm-cloud-sdk-core-2.0.4.tgz",
+ "integrity": "sha512-76vfIFq4OEASByvFD7L9++g91Obz/xkvZMd1pFGHYKCNQ6g1OVVQ5t2hhCqXpKus5JPsuZBnt6i95UVQ39xVzQ==",
+ "requires": {
+ "@types/extend": "~3.0.0",
+ "@types/file-type": "~5.2.1",
+ "@types/isstream": "^0.1.0",
+ "@types/jest": "^24.0.23",
+ "@types/node": "~10.14.19",
+ "axios": "^0.18.0",
+ "camelcase": "^5.3.1",
+ "debug": "^4.1.1",
+ "dotenv": "^6.2.0",
+ "extend": "~3.0.2",
+ "file-type": "^7.7.1",
+ "form-data": "^2.3.3",
+ "isstream": "~0.1.2",
+ "jsonwebtoken": "^8.5.1",
+ "lodash.isempty": "^4.4.0",
+ "mime-types": "~2.1.18",
+ "object.omit": "~3.0.0",
+ "object.pick": "~1.3.0",
+ "semver": "^6.2.0",
+ "ts-jest": "^24.2.0"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "10.14.22",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.22.tgz",
+ "integrity": "sha512-9taxKC944BqoTVjE+UT3pQH0nHZlTvITwfsOZqyc+R3sfJuxaTtxWjfn1K2UlxyPcKHf0rnaXcVFrS9F9vf0bw=="
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "dotenv": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
+ "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "ibm-watson": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ibm-watson/-/ibm-watson-5.3.1.tgz",
+ "integrity": "sha512-8GwCd1MZhNk48ahUA7mdESFfKs3VpSjogtvJ6VcxMvvhP9M0eb3GnQ/VWRoeLLJE5qx36Pdk/DfkxyYSBby1mg==",
+ "requires": {
+ "@types/async": "^2.4.2",
+ "@types/extend": "^3.0.1",
+ "@types/isstream": "^0.1.0",
+ "@types/node": "^11.9.4",
+ "@types/websocket": "^1.0.0",
+ "async": "^2.6.2",
+ "axios": "^0.18.0",
+ "camelcase": "^5.3.1",
+ "extend": "~3.0.2",
+ "ibm-cloud-sdk-core": "^2.0.3",
+ "isstream": "~0.1.2",
+ "websocket": "^1.0.28"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "11.15.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-11.15.5.tgz",
+ "integrity": "sha512-rqXbkoHWqRWdw9ncT3GqKL7OSm77QGOf4/cJPinoeLEzpErdKQZlpwJApETuDtecW55UDJpugnSMkbffh68geA=="
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ }
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "icss-replace-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+ "dev": true
+ },
+ "icss-utils": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
+ "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.14"
+ }
+ },
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "ignore-by-default": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
+ "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk="
+ },
+ "ignore-walk": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
+ "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "image-data-uri": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/image-data-uri/-/image-data-uri-2.0.1.tgz",
+ "integrity": "sha512-BZh721F2Q5TwBdwpiqrBrHEdj8daj8KuMZK/DOCyqQlz1CqFhhuZWbK5ZCUnAvFJr8LaKHTaWl9ja3/a3DC2Ew==",
+ "requires": {
+ "fs-extra": "^0.26.7",
+ "magicli": "0.0.8",
+ "mime-types": "^2.1.18",
+ "request": "^2.88.0"
+ }
+ },
+ "image-size": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz",
+ "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g=="
+ },
+ "imagesloaded": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/imagesloaded/-/imagesloaded-4.1.4.tgz",
+ "integrity": "sha512-ltiBVcYpc/TYTF5nolkMNsnREHW+ICvfQ3Yla2Sgr71YFwQ86bDwV9hgpFhFtrGPuwEx5+LqOHIrdXBdoWwwsA==",
+ "requires": {
+ "ev-emitter": "^1.0.0"
+ }
+ },
+ "immutable": {
+ "version": "4.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0-rc.12.tgz",
+ "integrity": "sha512-0M2XxkZLx/mi3t8NVwIm1g8nHoEmM9p9UBl/G9k4+hm0kBgOVdMV/B3CY5dQ8qG8qc80NN4gDV4HQv6FTJ5q7A=="
+ },
+ "import-fresh": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+ "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ }
+ }
+ },
+ "import-lazy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
+ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
+ },
+ "import-local": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+ "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^3.0.0",
+ "resolve-cwd": "^2.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ }
+ }
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ },
+ "in-publish": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
+ "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E="
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "infobox-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/infobox-parser/-/infobox-parser-3.3.1.tgz",
+ "integrity": "sha512-Aj1uF/taawGhet8cazhXz2uEDFMOqH8hnuw720wvi7Zw6bJWmA45Ta2FI9xMG5wvvo4CB6GR9S1/RUFtC6EtAg==",
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+ },
+ "inspect-function": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/inspect-function/-/inspect-function-0.2.2.tgz",
+ "integrity": "sha1-hdoMUli8TDMK4yg7Z0fgdZ2QpjU=",
+ "requires": {
+ "split-skip": "0.0.1",
+ "unpack-string": "0.0.2"
+ },
+ "dependencies": {
+ "split-skip": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/split-skip/-/split-skip-0.0.1.tgz",
+ "integrity": "sha1-gK2ONumOV2RUzDtmfB3SXYZejwA="
+ }
+ }
+ },
+ "inspect-parameters-declaration": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/inspect-parameters-declaration/-/inspect-parameters-declaration-0.0.9.tgz",
+ "integrity": "sha512-c3jrKKA1rwwrsjdGMAo2hFWV0vNe3/RKHxpE/OBt41LP3ynOVI1qmgxpZYK5SQu3jtWCyaho8L7AZzCjJ4mEUw==",
+ "requires": {
+ "magicli": "0.0.5",
+ "split-skip": "0.0.2",
+ "stringify-parameters": "0.0.4",
+ "unpack-string": "0.0.2"
+ },
+ "dependencies": {
+ "magicli": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/magicli/-/magicli-0.0.5.tgz",
+ "integrity": "sha1-zufQ+7THBRiqyxHsPrfiX/SaSSE=",
+ "requires": {
+ "commander": "^2.9.0",
+ "get-stdin": "^5.0.1",
+ "inspect-function": "^0.2.1",
+ "pipe-functions": "^1.2.0"
+ }
+ }
+ }
+ },
+ "inspect-property": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/inspect-property/-/inspect-property-0.0.6.tgz",
+ "integrity": "sha512-LgjHkRl9W6bj2n+kWrAOgvCYPTYt+LanE4rtd/vKNq6yEb+SvVV7UTLzoSPpDX6/U1cAz7VfqPr+lPAIz7wHaQ==",
+ "requires": {
+ "for-each-property": "0.0.4",
+ "for-each-property-deep": "0.0.3",
+ "inspect-function": "^0.3.1"
+ },
+ "dependencies": {
+ "inspect-function": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/inspect-function/-/inspect-function-0.3.4.tgz",
+ "integrity": "sha512-s0RsbJqK/sNZ+U1mykGoTickog3ea1A9Qk4mXniogOBu4PgkkZ56elScO7QC/r8D94lhGmJ2NyDI1ipOA/uq/g==",
+ "requires": {
+ "inspect-parameters-declaration": "0.0.8",
+ "magicli": "0.0.8",
+ "split-skip": "0.0.1",
+ "stringify-parameters": "0.0.4",
+ "unpack-string": "0.0.2"
+ }
+ },
+ "inspect-parameters-declaration": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/inspect-parameters-declaration/-/inspect-parameters-declaration-0.0.8.tgz",
+ "integrity": "sha512-W4QzN1LgFmasKOM+NoLlDd2OAZM3enNZlVUOXoGQKmYBDFgxoPDOyebF55ALaf8avyM9TavNwibXxg347RrzCg==",
+ "requires": {
+ "magicli": "0.0.5",
+ "split-skip": "0.0.2",
+ "stringify-parameters": "0.0.4",
+ "unpack-string": "0.0.2"
+ },
+ "dependencies": {
+ "inspect-function": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/inspect-function/-/inspect-function-0.2.2.tgz",
+ "integrity": "sha1-hdoMUli8TDMK4yg7Z0fgdZ2QpjU=",
+ "requires": {
+ "split-skip": "0.0.1",
+ "unpack-string": "0.0.2"
+ },
+ "dependencies": {
+ "split-skip": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/split-skip/-/split-skip-0.0.1.tgz",
+ "integrity": "sha1-gK2ONumOV2RUzDtmfB3SXYZejwA="
+ }
+ }
+ },
+ "magicli": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/magicli/-/magicli-0.0.5.tgz",
+ "integrity": "sha1-zufQ+7THBRiqyxHsPrfiX/SaSSE=",
+ "requires": {
+ "commander": "^2.9.0",
+ "get-stdin": "^5.0.1",
+ "inspect-function": "^0.2.1",
+ "pipe-functions": "^1.2.0"
+ }
+ },
+ "split-skip": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/split-skip/-/split-skip-0.0.2.tgz",
+ "integrity": "sha1-2J2Iu9L3Pka1FYqjcKVhIk6A1GE="
+ }
+ }
+ },
+ "split-skip": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/split-skip/-/split-skip-0.0.1.tgz",
+ "integrity": "sha1-gK2ONumOV2RUzDtmfB3SXYZejwA="
+ }
+ }
+ },
+ "internal-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+ "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "dev": true,
+ "requires": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ }
+ },
+ "interpret": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw=="
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+ },
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "dev": true
+ },
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
+ "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
+ },
+ "is-absolute-url": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
+ "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-arguments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
+ "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
+ },
+ "is-ci": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
+ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
+ "requires": {
+ "ci-info": "^1.5.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
+ "is-expression": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
+ "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
+ "requires": {
+ "acorn": "~4.0.2",
+ "object-assign": "^4.0.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
+ }
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-installed-globally": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
+ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
+ "requires": {
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
+ }
+ },
+ "is-npm": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
+ "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ="
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
+ },
+ "is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
+ "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "^2.1.0"
+ },
+ "dependencies": {
+ "is-path-inside": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
+ "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "^1.0.2"
+ }
+ }
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "requires": {
+ "path-is-inside": "^1.0.1"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
+ },
+ "is-redirect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
+ "is-retry-allowed": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "is-symbol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "requires": {
+ "has-symbols": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "isomorphic-fetch": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
+ "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
+ "requires": {
+ "node-fetch": "^1.0.1",
+ "whatwg-fetch": ">=0.10.0"
+ }
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "its-set": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/its-set/-/its-set-1.2.3.tgz",
+ "integrity": "sha512-UQc+xLLn+0a8KKRXRj3OS2kERK8G7zcayPpPULqZnPwuJ1hGWEO8+j0T5eycu7DKXYjezw3pyF8oV1fJkJxV5w==",
+ "requires": {
+ "babel-runtime": "6.x.x",
+ "lodash.get": "^4.4.2"
+ }
+ },
+ "jest-diff": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz",
+ "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==",
+ "requires": {
+ "chalk": "^2.0.1",
+ "diff-sequences": "^24.9.0",
+ "jest-get-type": "^24.9.0",
+ "pretty-format": "^24.9.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "jest-get-type": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz",
+ "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q=="
+ },
+ "jquery": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
+ "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw=="
+ },
+ "jquery-awesome-cursor": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/jquery-awesome-cursor/-/jquery-awesome-cursor-0.3.1.tgz",
+ "integrity": "sha1-1pcaMrRiRhC868rAkDsAFWHQXso=",
+ "requires": {
+ "font-awesome": "4.x"
+ }
+ },
+ "js-base64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
+ "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw=="
+ },
+ "js-datepicker": {
+ "version": "4.6.6",
+ "resolved": "https://registry.npmjs.org/js-datepicker/-/js-datepicker-4.6.6.tgz",
+ "integrity": "sha512-kLsE2oHfQM6pzdWNA7Y8HwCHaZIVURItPds7YVJnbe1z1OmQFzN7lfg6yFbDDWOyNjdHZGzWDy3jSDN2W0pNZQ=="
+ },
+ "js-stringify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
+ "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds="
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ },
+ "jsdom": {
+ "version": "15.2.1",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz",
+ "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==",
+ "dev": true,
+ "requires": {
+ "abab": "^2.0.0",
+ "acorn": "^7.1.0",
+ "acorn-globals": "^4.3.2",
+ "array-equal": "^1.0.0",
+ "cssom": "^0.4.1",
+ "cssstyle": "^2.0.0",
+ "data-urls": "^1.1.0",
+ "domexception": "^1.0.1",
+ "escodegen": "^1.11.1",
+ "html-encoding-sniffer": "^1.0.2",
+ "nwsapi": "^2.2.0",
+ "parse5": "5.1.0",
+ "pn": "^1.1.0",
+ "request": "^2.88.0",
+ "request-promise-native": "^1.0.7",
+ "saxes": "^3.1.9",
+ "symbol-tree": "^3.2.2",
+ "tough-cookie": "^3.0.1",
+ "w3c-hr-time": "^1.0.1",
+ "w3c-xmlserializer": "^1.1.2",
+ "webidl-conversions": "^4.0.2",
+ "whatwg-encoding": "^1.0.5",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^7.0.0",
+ "ws": "^7.0.0",
+ "xml-name-validator": "^3.0.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
+ "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
+ "dev": true
+ },
+ "acorn-globals": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
+ "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
+ "dev": true,
+ "requires": {
+ "acorn": "^6.0.1",
+ "acorn-walk": "^6.0.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz",
+ "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==",
+ "dev": true
+ }
+ }
+ },
+ "tough-cookie": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
+ "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
+ "dev": true,
+ "requires": {
+ "ip-regex": "^2.1.0",
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ }
+ }
+ }
+ },
+ "json-bigint": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz",
+ "integrity": "sha1-DM2RLEuCcNBfBW+9E4FLU9OCWx4=",
+ "requires": {
+ "bignumber.js": "^7.0.0"
+ }
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json-stringify-pretty-compact": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-1.2.0.tgz",
+ "integrity": "sha512-/11Pj1OyX814QMKO7K8l85SHPTr/KsFxHp8GE2zVa0BtJgGimDjXHfM3FhC7keQdWDea7+nXf+f1de7ATZcZkQ=="
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "json3": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
+ "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "requires": {
+ "minimist": "^1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "jsonschema": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.5.tgz",
+ "integrity": "sha512-kVTF+08x25PQ0CjuVc0gRM9EUPb0Fe9Ln/utFOgcdxEIOHuU7ooBk/UPTd7t1M91pP35m0MU1T8M5P7vP1bRRw=="
+ },
+ "jsonwebtoken": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
+ "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+ "requires": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^5.6.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "jstransform": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz",
+ "integrity": "sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=",
+ "requires": {
+ "base62": "^1.1.0",
+ "commoner": "^0.10.1",
+ "esprima-fb": "^15001.1.0-dev-harmony-fb",
+ "object-assign": "^2.0.0",
+ "source-map": "^0.4.2"
+ },
+ "dependencies": {
+ "esprima-fb": {
+ "version": "15001.1.0-dev-harmony-fb",
+ "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz",
+ "integrity": "sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE="
+ },
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
+ }
+ },
+ "jstransformer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
+ "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
+ "requires": {
+ "is-promise": "^2.0.0",
+ "promise": "^7.0.1"
+ }
+ },
+ "jsx-to-string": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/jsx-to-string/-/jsx-to-string-1.4.0.tgz",
+ "integrity": "sha1-Ztw013PaufQP6ZPP+ZQOXaZVtwU=",
+ "requires": {
+ "immutable": "^4.0.0-rc.9",
+ "json-stringify-pretty-compact": "^1.0.1",
+ "react": "^0.14.0"
+ },
+ "dependencies": {
+ "fbjs": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz",
+ "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=",
+ "requires": {
+ "core-js": "^1.0.0",
+ "loose-envify": "^1.0.0",
+ "promise": "^7.0.3",
+ "ua-parser-js": "^0.7.9",
+ "whatwg-fetch": "^0.9.0"
+ }
+ },
+ "react": {
+ "version": "0.14.9",
+ "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz",
+ "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=",
+ "requires": {
+ "envify": "^3.0.0",
+ "fbjs": "^0.6.1"
+ }
+ },
+ "whatwg-fetch": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz",
+ "integrity": "sha1-DjaExsuZlbQ+/J3wPkw2XZX9nMA="
+ }
+ }
+ },
+ "jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "requires": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "requires": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "kareem": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz",
+ "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw=="
+ },
+ "keycode": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz",
+ "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
+ },
+ "keygrip": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
+ "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
+ "requires": {
+ "tsscmp": "1.0.6"
+ }
+ },
+ "killable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+ "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
+ },
+ "klaw": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "requires": {
+ "graceful-fs": "^4.1.9"
+ }
+ },
+ "latest-version": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
+ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
+ "requires": {
+ "package-json": "^4.0.0"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
+ },
+ "lazystream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
+ "requires": {
+ "readable-stream": "^2.0.5"
+ }
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "lines-and-columns": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
+ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA="
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ },
+ "lodash.assign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
+ },
+ "lodash.chunk": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz",
+ "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw="
+ },
+ "lodash.defaults": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
+ "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw="
+ },
+ "lodash.difference": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
+ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw="
+ },
+ "lodash.flatten": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
+ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8="
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
+ },
+ "lodash.has": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz",
+ "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI="
+ },
+ "lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
+ },
+ "lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
+ },
+ "lodash.isempty": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz",
+ "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
+ },
+ "lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
+ },
+ "lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
+ },
+ "lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
+ },
+ "lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
+ },
+ "lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
+ },
+ "lodash.padend": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
+ "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="
+ },
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
+ },
+ "lodash.union": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
+ "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg="
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "requires": {
+ "chalk": "^2.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "loglevel": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz",
+ "integrity": "sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA==",
+ "dev": true
+ },
+ "loglevelnext": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz",
+ "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==",
+ "dev": true,
+ "requires": {
+ "es6-symbol": "^3.1.1",
+ "object.assign": "^4.1.0"
+ }
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ }
+ }
+ },
+ "magicli": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/magicli/-/magicli-0.0.8.tgz",
+ "integrity": "sha512-x/eBenweAHF+DsYy172sK4doRxZl0yrJnfxhLJiN7H6hPM3Ya0PfI6uBZshZ3ScFFSQD7HXgBqMdbnXKEZsO1g==",
+ "requires": {
+ "cliss": "0.0.2",
+ "find-up": "^2.1.0",
+ "for-each-property": "0.0.4",
+ "inspect-property": "0.0.6"
+ }
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "requires": {
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+ }
+ }
+ },
+ "make-error": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
+ "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g=="
+ },
+ "mamacro": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
+ "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
+ "dev": true
+ },
+ "map-age-cleaner": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+ "dev": true,
+ "requires": {
+ "p-defer": "^1.0.0"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
+ },
+ "map-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
+ "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg="
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "material-colors": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz",
+ "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg=="
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "mem": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "dev": true,
+ "requires": {
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "memory-pager": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
+ "optional": true
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ },
+ "microevent.ts": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz",
+ "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "mime-db": {
+ "version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+ "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
+ },
+ "mime-types": {
+ "version": "2.1.24",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+ "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+ "requires": {
+ "mime-db": "1.40.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "minipass": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
+ "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
+ "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "mississippi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^2.0.1",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "mobile-detect": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/mobile-detect/-/mobile-detect-1.4.4.tgz",
+ "integrity": "sha512-vTgEjKjS89C5yHL5qWPpT6BzKuOVqABp+A3Szpbx34pIy3sngxlGaFpgHhfj6fKze1w0QKeOSDbU7SKu7wDvRQ=="
+ },
+ "mobx": {
+ "version": "5.15.3",
+ "resolved": "https://registry.npmjs.org/mobx/-/mobx-5.15.3.tgz",
+ "integrity": "sha512-aKpzjJ11rRXMtoxIYIq8eaVB7qtB2C3L6PCwhVWSJrsfF5E38TjFqmvglmVEZ3HEEISeKx/UJ4XJ1n29smQlEw=="
+ },
+ "mobx-react": {
+ "version": "5.4.4",
+ "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-5.4.4.tgz",
+ "integrity": "sha512-2mTzpyEjVB/RGk2i6KbcmP4HWcAUFox5ZRCrGvSyz49w20I4C4qql63grPpYrS9E9GKwgydBHQlA4y665LuRCQ==",
+ "requires": {
+ "hoist-non-react-statics": "^3.0.0",
+ "react-lifecycles-compat": "^3.0.2"
+ }
+ },
+ "mobx-react-devtools": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/mobx-react-devtools/-/mobx-react-devtools-6.1.1.tgz",
+ "integrity": "sha512-nc5IXLdEUFLn3wZal65KF3/JFEFd+mbH4KTz/IG5BOPyw7jo8z29w/8qm7+wiCyqVfUIgJ1gL4+HVKmcXIOgqA=="
+ },
+ "mobx-utils": {
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/mobx-utils/-/mobx-utils-5.5.3.tgz",
+ "integrity": "sha512-tCj3WLHp3y2/OZADAg9KHGtJNNwwEa8ZY92E6dnVuDoV2OaTV+e2N4S23ogsoxJ72ZhFJhNPcy7ppPJRb1Emhg=="
+ },
+ "mocha": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
+ "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
+ "dev": true,
+ "requires": {
+ "browser-stdout": "1.3.1",
+ "commander": "2.15.1",
+ "debug": "3.1.0",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.2",
+ "growl": "1.10.5",
+ "he": "1.1.1",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "supports-color": "5.4.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "mongodb": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.2.tgz",
+ "integrity": "sha512-Lxt4th2tK2MxmkDBR5cMik+xEnkvhwg0BC5kGcHm9RBwaNEsrIryvV5istGXOHbnif5KslMpY1FbX6YbGJ/Trg==",
+ "requires": {
+ "bl": "^2.2.0",
+ "bson": "^1.1.1",
+ "denque": "^1.4.1",
+ "require_optional": "^1.0.1",
+ "safe-buffer": "^5.1.2",
+ "saslprep": "^1.0.0"
+ },
+ "dependencies": {
+ "bl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
+ "integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==",
+ "requires": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "bson": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz",
+ "integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg=="
+ }
+ }
+ },
+ "mongodb-core": {
+ "version": "2.1.20",
+ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz",
+ "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==",
+ "requires": {
+ "bson": "~1.0.4",
+ "require_optional": "~1.0.0"
+ }
+ },
+ "mongoose": {
+ "version": "5.8.9",
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.8.9.tgz",
+ "integrity": "sha512-gRazoLTQ0yuv4bk2z+nZEarKCyJ7WilFBkgrRqpOczUZUhk3i/FCe0rp8Mjc87dGXaHx54j8AjPJ0UKqJDXWMA==",
+ "requires": {
+ "bson": "~1.1.1",
+ "kareem": "2.3.1",
+ "mongodb": "3.4.1",
+ "mongoose-legacy-pluralize": "1.0.2",
+ "mpath": "0.6.0",
+ "mquery": "3.2.2",
+ "ms": "2.1.2",
+ "regexp-clone": "1.0.0",
+ "safe-buffer": "5.1.2",
+ "sift": "7.0.1",
+ "sliced": "1.0.1"
+ },
+ "dependencies": {
+ "bson": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.3.tgz",
+ "integrity": "sha512-TdiJxMVnodVS7r0BdL42y/pqC9cL2iKynVwA0Ho3qbsQYr428veL3l7BQyuqiw+Q5SqqoT0m4srSY/BlZ9AxXg=="
+ },
+ "mongodb": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz",
+ "integrity": "sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA==",
+ "requires": {
+ "bson": "^1.1.1",
+ "require_optional": "^1.0.1",
+ "safe-buffer": "^5.1.2",
+ "saslprep": "^1.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "mongoose-legacy-pluralize": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
+ "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "mpath": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz",
+ "integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw=="
+ },
+ "mquery": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz",
+ "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==",
+ "requires": {
+ "bluebird": "3.5.1",
+ "debug": "3.1.0",
+ "regexp-clone": "^1.0.0",
+ "safe-buffer": "5.1.2",
+ "sliced": "1.0.1"
+ },
+ "dependencies": {
+ "bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "mri": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
+ "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "multicast-dns": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+ "dev": true,
+ "requires": {
+ "dns-packet": "^1.3.1",
+ "thunky": "^1.0.2"
+ }
+ },
+ "multicast-dns-service-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.14.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "napi-build-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz",
+ "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA=="
+ },
+ "native-promise-only": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz",
+ "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE="
+ },
+ "needle": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz",
+ "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==",
+ "requires": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ },
+ "neo-async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
+ },
+ "nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
+ },
+ "node-abi": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.13.0.tgz",
+ "integrity": "sha512-9HrZGFVTR5SOu3PZAnAY2hLO36aW1wmA+FDsVkr85BTST32TLCA1H/AEcatVRAsWLyXS3bqUDYCAjq5/QGuSTA==",
+ "requires": {
+ "semver": "^5.4.1"
+ }
+ },
+ "node-ensure": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz",
+ "integrity": "sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc="
+ },
+ "node-environment-flags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
+ "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
+ "requires": {
+ "object.getownpropertydescriptors": "^2.0.3",
+ "semver": "^5.7.0"
+ }
+ },
+ "node-fetch": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
+ "requires": {
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
+ }
+ },
+ "node-forge": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz",
+ "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==",
+ "dev": true
+ },
+ "node-gyp": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+ "requires": {
+ "fstream": "^1.0.0",
+ "glob": "^7.0.3",
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2 || 3 || 4",
+ "osenv": "0",
+ "request": "^2.87.0",
+ "rimraf": "2",
+ "semver": "~5.3.0",
+ "tar": "^2.0.0",
+ "which": "1"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
+ },
+ "tar": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
+ "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
+ "requires": {
+ "block-stream": "*",
+ "fstream": "^1.0.12",
+ "inherits": "2"
+ }
+ }
+ }
+ },
+ "node-libs-browser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+ "dev": true,
+ "requires": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.1",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.11.0",
+ "vm-browserify": "^1.0.1"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ }
+ }
+ },
+ "node-notifier": {
+ "version": "5.4.3",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz",
+ "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==",
+ "dev": true,
+ "requires": {
+ "growly": "^1.3.0",
+ "is-wsl": "^1.1.0",
+ "semver": "^5.5.0",
+ "shellwords": "^0.1.1",
+ "which": "^1.3.0"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz",
+ "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==",
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "node-sass": {
+ "version": "4.13.1",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz",
+ "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==",
+ "requires": {
+ "async-foreach": "^0.1.3",
+ "chalk": "^1.1.1",
+ "cross-spawn": "^3.0.0",
+ "gaze": "^1.0.0",
+ "get-stdin": "^4.0.1",
+ "glob": "^7.0.3",
+ "in-publish": "^2.0.0",
+ "lodash": "^4.17.15",
+ "meow": "^3.7.0",
+ "mkdirp": "^0.5.1",
+ "nan": "^2.13.2",
+ "node-gyp": "^3.8.0",
+ "npmlog": "^4.0.0",
+ "request": "^2.88.0",
+ "sass-graph": "^2.2.4",
+ "stdout-stream": "^1.4.0",
+ "true-case-path": "^1.0.2"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "which": "^1.2.9"
+ }
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+ }
+ }
+ },
+ "node-stream-zip": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.9.1.tgz",
+ "integrity": "sha512-7/Xs9gkuYF0WBimz5OrSc6UVKLDTxvBG2yLGtEK8PSx94d86o/6iQLvIe/140ATz35JDqHKWIxh3GcA3u5hB0w=="
+ },
+ "node-tesseract": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/node-tesseract/-/node-tesseract-0.2.7.tgz",
+ "integrity": "sha1-yPAvuDUaQnByc1d4wFGYI/JgG4Q=",
+ "requires": {
+ "glob": "^5.0.10",
+ "node-uuid": "^1.4.1"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "node-uuid": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
+ "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc="
+ }
+ }
+ },
+ "node-tesseract-ocr": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-tesseract-ocr/-/node-tesseract-ocr-1.0.0.tgz",
+ "integrity": "sha512-1u6KNqrt0jGK8Fdrm8JfQD4bctEScpnDtsEV42dmZ54zQRov+OUZZb4a7uy4V+OKENn7fKpgB5WIza5ernGHzA=="
+ },
+ "nodemailer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-5.1.1.tgz",
+ "integrity": "sha512-hKGCoeNdFL2W7S76J/Oucbw0/qRlfG815tENdhzcqTpSjKgAN91mFOqU2lQUflRRxFM7iZvCyaFcAR9noc/CqQ=="
+ },
+ "nodemon": {
+ "version": "1.19.4",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.4.tgz",
+ "integrity": "sha512-VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ==",
+ "requires": {
+ "chokidar": "^2.1.8",
+ "debug": "^3.2.6",
+ "ignore-by-default": "^1.0.1",
+ "minimatch": "^3.0.4",
+ "pstree.remy": "^1.1.7",
+ "semver": "^5.7.1",
+ "supports-color": "^5.5.0",
+ "touch": "^3.1.0",
+ "undefsafe": "^2.0.2",
+ "update-notifier": "^2.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "noop-logger": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
+ "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "normalize.css": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
+ "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
+ },
+ "npm": {
+ "version": "6.13.6",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-6.13.6.tgz",
+ "integrity": "sha512-NomC08kv7HIl1FOyLOe9Hp89kYsOsvx52huVIJ7i8hFW8Xp65lDwe/8wTIrh9q9SaQhA8hTrfXPh3BEL3TmMpw==",
+ "requires": {
+ "JSONStream": "^1.3.5",
+ "abbrev": "~1.1.1",
+ "ansicolors": "~0.3.2",
+ "ansistyles": "~0.1.3",
+ "aproba": "^2.0.0",
+ "archy": "~1.0.0",
+ "bin-links": "^1.1.6",
+ "bluebird": "^3.5.5",
+ "byte-size": "^5.0.1",
+ "cacache": "^12.0.3",
+ "call-limit": "^1.1.1",
+ "chownr": "^1.1.3",
+ "ci-info": "^2.0.0",
+ "cli-columns": "^3.1.2",
+ "cli-table3": "^0.5.1",
+ "cmd-shim": "^3.0.3",
+ "columnify": "~1.5.4",
+ "config-chain": "^1.1.12",
+ "debuglog": "*",
+ "detect-indent": "~5.0.0",
+ "detect-newline": "^2.1.0",
+ "dezalgo": "~1.0.3",
+ "editor": "~1.0.0",
+ "figgy-pudding": "^3.5.1",
+ "find-npm-prefix": "^1.0.2",
+ "fs-vacuum": "~1.2.10",
+ "fs-write-stream-atomic": "~1.0.10",
+ "gentle-fs": "^2.3.0",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.2.3",
+ "has-unicode": "~2.0.1",
+ "hosted-git-info": "^2.8.5",
+ "iferr": "^1.0.2",
+ "imurmurhash": "*",
+ "infer-owner": "^1.0.4",
+ "inflight": "~1.0.6",
+ "inherits": "^2.0.4",
+ "ini": "^1.3.5",
+ "init-package-json": "^1.10.3",
+ "is-cidr": "^3.0.0",
+ "json-parse-better-errors": "^1.0.2",
+ "lazy-property": "~1.0.0",
+ "libcipm": "^4.0.7",
+ "libnpm": "^3.0.1",
+ "libnpmaccess": "^3.0.2",
+ "libnpmhook": "^5.0.3",
+ "libnpmorg": "^1.0.1",
+ "libnpmsearch": "^2.0.2",
+ "libnpmteam": "^1.0.2",
+ "libnpx": "^10.2.0",
+ "lock-verify": "^2.1.0",
+ "lockfile": "^1.0.4",
+ "lodash._baseindexof": "*",
+ "lodash._baseuniq": "~4.6.0",
+ "lodash._bindcallback": "*",
+ "lodash._cacheindexof": "*",
+ "lodash._createcache": "*",
+ "lodash._getnative": "*",
+ "lodash.clonedeep": "~4.5.0",
+ "lodash.restparam": "*",
+ "lodash.union": "~4.6.0",
+ "lodash.uniq": "~4.5.0",
+ "lodash.without": "~4.4.0",
+ "lru-cache": "^5.1.1",
+ "meant": "~1.0.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "~0.5.1",
+ "move-concurrently": "^1.0.1",
+ "node-gyp": "^5.0.5",
+ "nopt": "~4.0.1",
+ "normalize-package-data": "^2.5.0",
+ "npm-audit-report": "^1.3.2",
+ "npm-cache-filename": "~1.0.2",
+ "npm-install-checks": "^3.0.2",
+ "npm-lifecycle": "^3.1.4",
+ "npm-package-arg": "^6.1.1",
+ "npm-packlist": "^1.4.7",
+ "npm-pick-manifest": "^3.0.2",
+ "npm-profile": "^4.0.2",
+ "npm-registry-fetch": "^4.0.2",
+ "npm-user-validate": "~1.0.0",
+ "npmlog": "~4.1.2",
+ "once": "~1.4.0",
+ "opener": "^1.5.1",
+ "osenv": "^0.1.5",
+ "pacote": "^9.5.12",
+ "path-is-inside": "~1.0.2",
+ "promise-inflight": "~1.0.1",
+ "qrcode-terminal": "^0.12.0",
+ "query-string": "^6.8.2",
+ "qw": "~1.0.1",
+ "read": "~1.0.7",
+ "read-cmd-shim": "^1.0.5",
+ "read-installed": "~4.0.3",
+ "read-package-json": "^2.1.1",
+ "read-package-tree": "^5.3.1",
+ "readable-stream": "^3.4.0",
+ "readdir-scoped-modules": "^1.1.0",
+ "request": "^2.88.0",
+ "retry": "^0.12.0",
+ "rimraf": "^2.6.3",
+ "safe-buffer": "^5.1.2",
+ "semver": "^5.7.1",
+ "sha": "^3.0.0",
+ "slide": "~1.1.6",
+ "sorted-object": "~2.0.1",
+ "sorted-union-stream": "~2.1.3",
+ "ssri": "^6.0.1",
+ "stringify-package": "^1.0.1",
+ "tar": "^4.4.13",
+ "text-table": "~0.2.0",
+ "tiny-relative-date": "^1.3.0",
+ "uid-number": "0.0.6",
+ "umask": "~1.1.0",
+ "unique-filename": "^1.1.1",
+ "unpipe": "~1.0.0",
+ "update-notifier": "^2.5.0",
+ "uuid": "^3.3.3",
+ "validate-npm-package-license": "^3.0.4",
+ "validate-npm-package-name": "~3.0.0",
+ "which": "^1.3.1",
+ "worker-farm": "^1.7.0",
+ "write-file-atomic": "^2.4.3"
+ },
+ "dependencies": {
+ "JSONStream": {
+ "version": "1.3.5",
+ "bundled": true,
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ }
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "agent-base": {
+ "version": "4.3.0",
+ "bundled": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ }
+ },
+ "agentkeepalive": {
+ "version": "3.5.2",
+ "bundled": true,
+ "requires": {
+ "humanize-ms": "^1.2.1"
+ }
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "bundled": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "ansi-align": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^2.0.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "bundled": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "ansicolors": {
+ "version": "0.3.2",
+ "bundled": true
+ },
+ "ansistyles": {
+ "version": "0.1.3",
+ "bundled": true
+ },
+ "aproba": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "archy": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "asap": {
+ "version": "2.0.6",
+ "bundled": true
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "bundled": true,
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "bundled": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "bundled": true
+ },
+ "aws4": {
+ "version": "1.8.0",
+ "bundled": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bin-links": {
+ "version": "1.1.6",
+ "bundled": true,
+ "requires": {
+ "bluebird": "^3.5.3",
+ "cmd-shim": "^3.0.0",
+ "gentle-fs": "^2.3.0",
+ "graceful-fs": "^4.1.15",
+ "npm-normalize-package-bin": "^1.0.0",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "bluebird": {
+ "version": "3.5.5",
+ "bundled": true
+ },
+ "boxen": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "ansi-align": "^2.0.0",
+ "camelcase": "^4.0.0",
+ "chalk": "^2.0.1",
+ "cli-boxes": "^1.0.0",
+ "string-width": "^2.0.0",
+ "term-size": "^1.2.0",
+ "widest-line": "^2.0.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-from": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "builtins": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "byline": {
+ "version": "5.0.0",
+ "bundled": true
+ },
+ "byte-size": {
+ "version": "5.0.1",
+ "bundled": true
+ },
+ "cacache": {
+ "version": "12.0.3",
+ "bundled": true,
+ "requires": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ }
+ },
+ "call-limit": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "bundled": true
+ },
+ "capture-stack-trace": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "bundled": true
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "chownr": {
+ "version": "1.1.3",
+ "bundled": true
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "cidr-regex": {
+ "version": "2.0.10",
+ "bundled": true,
+ "requires": {
+ "ip-regex": "^2.1.0"
+ }
+ },
+ "cli-boxes": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "cli-columns": {
+ "version": "3.1.2",
+ "bundled": true,
+ "requires": {
+ "string-width": "^2.0.0",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "cli-table3": {
+ "version": "0.5.1",
+ "bundled": true,
+ "requires": {
+ "colors": "^1.1.2",
+ "object-assign": "^4.1.0",
+ "string-width": "^2.1.1"
+ }
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "cmd-shim": {
+ "version": "3.0.3",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "~0.5.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "bundled": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "color-convert": {
+ "version": "1.9.1",
+ "bundled": true,
+ "requires": {
+ "color-name": "^1.1.1"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "bundled": true
+ },
+ "colors": {
+ "version": "1.3.3",
+ "bundled": true,
+ "optional": true
+ },
+ "columnify": {
+ "version": "1.5.4",
+ "bundled": true,
+ "requires": {
+ "strip-ansi": "^3.0.0",
+ "wcwidth": "^1.0.0"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.6",
+ "bundled": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "bundled": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "config-chain": {
+ "version": "1.1.12",
+ "bundled": true,
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "configstore": {
+ "version": "3.1.2",
+ "bundled": true,
+ "requires": {
+ "dot-prop": "^4.1.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "unique-string": "^1.0.0",
+ "write-file-atomic": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ }
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "bundled": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ },
+ "dependencies": {
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "bundled": true
+ }
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "create-error-class": {
+ "version": "3.0.2",
+ "bundled": true,
+ "requires": {
+ "capture-stack-trace": "^1.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.5",
+ "bundled": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "bundled": true
+ }
+ }
+ },
+ "crypto-random-string": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "cyclist": {
+ "version": "0.2.2",
+ "bundled": true
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "debuglog": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "deep-extend": {
+ "version": "0.5.1",
+ "bundled": true
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "clone": "^1.0.2"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "bundled": true,
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "detect-indent": {
+ "version": "5.0.0",
+ "bundled": true
+ },
+ "detect-newline": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "dezalgo": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "asap": "^2.0.0",
+ "wrappy": "1"
+ }
+ },
+ "dot-prop": {
+ "version": "4.2.0",
+ "bundled": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "dotenv": {
+ "version": "5.0.1",
+ "bundled": true
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "bundled": true
+ },
+ "duplexify": {
+ "version": "3.6.0",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "editor": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "encoding": {
+ "version": "0.1.12",
+ "bundled": true,
+ "requires": {
+ "iconv-lite": "~0.4.13"
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "bundled": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "env-paths": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "err-code": {
+ "version": "1.1.2",
+ "bundled": true
+ },
+ "errno": {
+ "version": "0.1.7",
+ "bundled": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.12.0",
+ "bundled": true,
+ "requires": {
+ "es-to-primitive": "^1.1.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.1",
+ "is-callable": "^1.1.3",
+ "is-regex": "^1.0.4"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "es6-promise": {
+ "version": "4.2.8",
+ "bundled": true
+ },
+ "es6-promisify": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "bundled": true
+ },
+ "execa": {
+ "version": "0.7.0",
+ "bundled": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "bundled": true
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "bundled": true
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "figgy-pudding": {
+ "version": "3.5.1",
+ "bundled": true
+ },
+ "find-npm-prefix": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "flush-write-stream": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.4"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "bundled": true
+ },
+ "form-data": {
+ "version": "2.3.2",
+ "bundled": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "from2": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "fs-minipass": {
+ "version": "1.2.7",
+ "bundled": true,
+ "requires": {
+ "minipass": "^2.6.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "2.9.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ }
+ }
+ },
+ "fs-vacuum": {
+ "version": "1.2.10",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "path-is-inside": "^1.0.1",
+ "rimraf": "^2.5.2"
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ },
+ "dependencies": {
+ "iferr": {
+ "version": "0.1.5",
+ "bundled": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ },
+ "dependencies": {
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "genfun": {
+ "version": "5.0.0",
+ "bundled": true
+ },
+ "gentle-fs": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "aproba": "^1.1.2",
+ "chownr": "^1.1.2",
+ "cmd-shim": "^3.0.3",
+ "fs-vacuum": "^1.2.10",
+ "graceful-fs": "^4.1.11",
+ "iferr": "^0.1.5",
+ "infer-owner": "^1.0.4",
+ "mkdirp": "^0.5.1",
+ "path-is-inside": "^1.0.2",
+ "read-cmd-shim": "^1.0.1",
+ "slide": "^1.1.6"
+ },
+ "dependencies": {
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "bundled": true
+ }
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "bundled": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.4",
+ "bundled": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "global-dirs": {
+ "version": "0.1.1",
+ "bundled": true,
+ "requires": {
+ "ini": "^1.3.4"
+ }
+ },
+ "got": {
+ "version": "6.7.1",
+ "bundled": true,
+ "requires": {
+ "create-error-class": "^3.0.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-redirect": "^1.0.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "unzip-response": "^2.0.1",
+ "url-parse-lax": "^1.0.0"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "bundled": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "har-validator": {
+ "version": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "ajv": "^5.3.0",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "hosted-git-info": {
+ "version": "2.8.5",
+ "bundled": true
+ },
+ "http-cache-semantics": {
+ "version": "3.8.1",
+ "bundled": true
+ },
+ "http-proxy-agent": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "agent-base": "4",
+ "debug": "3.1.0"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "2.2.4",
+ "bundled": true,
+ "requires": {
+ "agent-base": "^4.3.0",
+ "debug": "^3.1.0"
+ }
+ },
+ "humanize-ms": {
+ "version": "1.2.1",
+ "bundled": true,
+ "requires": {
+ "ms": "^2.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.23",
+ "bundled": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "iferr": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "ignore-walk": {
+ "version": "3.0.3",
+ "bundled": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "import-lazy": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "bundled": true
+ },
+ "infer-owner": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "bundled": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true
+ },
+ "init-package-json": {
+ "version": "1.10.3",
+ "bundled": true,
+ "requires": {
+ "glob": "^7.1.1",
+ "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0",
+ "promzard": "^0.3.0",
+ "read": "~1.0.1",
+ "read-package-json": "1 || 2",
+ "semver": "2.x || 3.x || 4 || 5",
+ "validate-npm-package-license": "^3.0.1",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "ip": {
+ "version": "1.1.5",
+ "bundled": true
+ },
+ "ip-regex": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "is-callable": {
+ "version": "1.1.4",
+ "bundled": true
+ },
+ "is-ci": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "ci-info": "^1.0.0"
+ },
+ "dependencies": {
+ "ci-info": {
+ "version": "1.6.0",
+ "bundled": true
+ }
+ }
+ },
+ "is-cidr": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "cidr-regex": "^2.0.10"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-installed-globally": {
+ "version": "0.1.0",
+ "bundled": true,
+ "requires": {
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
+ }
+ },
+ "is-npm": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "path-is-inside": "^1.0.1"
+ }
+ },
+ "is-redirect": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "bundled": true,
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
+ "is-retry-allowed": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-symbol": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "has-symbols": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "bundled": true
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "bundled": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "bundled": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "bundled": true
+ },
+ "jsonparse": {
+ "version": "1.3.1",
+ "bundled": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "latest-version": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "package-json": "^4.0.0"
+ }
+ },
+ "lazy-property": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "libcipm": {
+ "version": "4.0.7",
+ "bundled": true,
+ "requires": {
+ "bin-links": "^1.1.2",
+ "bluebird": "^3.5.1",
+ "figgy-pudding": "^3.5.1",
+ "find-npm-prefix": "^1.0.2",
+ "graceful-fs": "^4.1.11",
+ "ini": "^1.3.5",
+ "lock-verify": "^2.0.2",
+ "mkdirp": "^0.5.1",
+ "npm-lifecycle": "^3.0.0",
+ "npm-logical-tree": "^1.2.1",
+ "npm-package-arg": "^6.1.0",
+ "pacote": "^9.1.0",
+ "read-package-json": "^2.0.13",
+ "rimraf": "^2.6.2",
+ "worker-farm": "^1.6.0"
+ }
+ },
+ "libnpm": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "bin-links": "^1.1.2",
+ "bluebird": "^3.5.3",
+ "find-npm-prefix": "^1.0.2",
+ "libnpmaccess": "^3.0.2",
+ "libnpmconfig": "^1.2.1",
+ "libnpmhook": "^5.0.3",
+ "libnpmorg": "^1.0.1",
+ "libnpmpublish": "^1.1.2",
+ "libnpmsearch": "^2.0.2",
+ "libnpmteam": "^1.0.2",
+ "lock-verify": "^2.0.2",
+ "npm-lifecycle": "^3.0.0",
+ "npm-logical-tree": "^1.2.1",
+ "npm-package-arg": "^6.1.0",
+ "npm-profile": "^4.0.2",
+ "npm-registry-fetch": "^4.0.0",
+ "npmlog": "^4.1.2",
+ "pacote": "^9.5.3",
+ "read-package-json": "^2.0.13",
+ "stringify-package": "^1.0.0"
+ }
+ },
+ "libnpmaccess": {
+ "version": "3.0.2",
+ "bundled": true,
+ "requires": {
+ "aproba": "^2.0.0",
+ "get-stream": "^4.0.0",
+ "npm-package-arg": "^6.1.0",
+ "npm-registry-fetch": "^4.0.0"
+ }
+ },
+ "libnpmconfig": {
+ "version": "1.2.1",
+ "bundled": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1",
+ "find-up": "^3.0.0",
+ "ini": "^1.3.5"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.2.0",
+ "bundled": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "bundled": true
+ }
+ }
+ },
+ "libnpmhook": {
+ "version": "5.0.3",
+ "bundled": true,
+ "requires": {
+ "aproba": "^2.0.0",
+ "figgy-pudding": "^3.4.1",
+ "get-stream": "^4.0.0",
+ "npm-registry-fetch": "^4.0.0"
+ }
+ },
+ "libnpmorg": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "aproba": "^2.0.0",
+ "figgy-pudding": "^3.4.1",
+ "get-stream": "^4.0.0",
+ "npm-registry-fetch": "^4.0.0"
+ }
+ },
+ "libnpmpublish": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "aproba": "^2.0.0",
+ "figgy-pudding": "^3.5.1",
+ "get-stream": "^4.0.0",
+ "lodash.clonedeep": "^4.5.0",
+ "normalize-package-data": "^2.4.0",
+ "npm-package-arg": "^6.1.0",
+ "npm-registry-fetch": "^4.0.0",
+ "semver": "^5.5.1",
+ "ssri": "^6.0.1"
+ }
+ },
+ "libnpmsearch": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1",
+ "get-stream": "^4.0.0",
+ "npm-registry-fetch": "^4.0.0"
+ }
+ },
+ "libnpmteam": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "aproba": "^2.0.0",
+ "figgy-pudding": "^3.4.1",
+ "get-stream": "^4.0.0",
+ "npm-registry-fetch": "^4.0.0"
+ }
+ },
+ "libnpx": {
+ "version": "10.2.0",
+ "bundled": true,
+ "requires": {
+ "dotenv": "^5.0.1",
+ "npm-package-arg": "^6.0.0",
+ "rimraf": "^2.6.2",
+ "safe-buffer": "^5.1.0",
+ "update-notifier": "^2.3.0",
+ "which": "^1.3.0",
+ "y18n": "^4.0.0",
+ "yargs": "^11.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lock-verify": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "npm-package-arg": "^6.1.0",
+ "semver": "^5.4.1"
+ }
+ },
+ "lockfile": {
+ "version": "1.0.4",
+ "bundled": true,
+ "requires": {
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "lodash._baseindexof": {
+ "version": "3.1.0",
+ "bundled": true
+ },
+ "lodash._baseuniq": {
+ "version": "4.6.0",
+ "bundled": true,
+ "requires": {
+ "lodash._createset": "~4.0.0",
+ "lodash._root": "~3.0.0"
+ }
+ },
+ "lodash._bindcallback": {
+ "version": "3.0.1",
+ "bundled": true
+ },
+ "lodash._cacheindexof": {
+ "version": "3.0.2",
+ "bundled": true
+ },
+ "lodash._createcache": {
+ "version": "3.1.2",
+ "bundled": true,
+ "requires": {
+ "lodash._getnative": "^3.0.0"
+ }
+ },
+ "lodash._createset": {
+ "version": "4.0.3",
+ "bundled": true
+ },
+ "lodash._getnative": {
+ "version": "3.9.1",
+ "bundled": true
+ },
+ "lodash._root": {
+ "version": "3.0.1",
+ "bundled": true
+ },
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "bundled": true
+ },
+ "lodash.restparam": {
+ "version": "3.6.1",
+ "bundled": true
+ },
+ "lodash.union": {
+ "version": "4.6.0",
+ "bundled": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "bundled": true
+ },
+ "lodash.without": {
+ "version": "4.4.0",
+ "bundled": true
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "bundled": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "make-fetch-happen": {
+ "version": "5.0.2",
+ "bundled": true,
+ "requires": {
+ "agentkeepalive": "^3.4.1",
+ "cacache": "^12.0.0",
+ "http-cache-semantics": "^3.8.1",
+ "http-proxy-agent": "^2.1.0",
+ "https-proxy-agent": "^2.2.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "node-fetch-npm": "^2.0.2",
+ "promise-retry": "^1.1.1",
+ "socks-proxy-agent": "^4.0.0",
+ "ssri": "^6.0.0"
+ }
+ },
+ "meant": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "mime-db": {
+ "version": "1.35.0",
+ "bundled": true
+ },
+ "mime-types": {
+ "version": "2.1.19",
+ "bundled": true,
+ "requires": {
+ "mime-db": "~1.35.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true
+ },
+ "minizlib": {
+ "version": "1.3.3",
+ "bundled": true,
+ "requires": {
+ "minipass": "^2.9.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "2.9.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ }
+ }
+ },
+ "mississippi": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^3.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ },
+ "dependencies": {
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "bundled": true
+ },
+ "node-fetch-npm": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "encoding": "^0.1.11",
+ "json-parse-better-errors": "^1.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node-gyp": {
+ "version": "5.0.5",
+ "bundled": true,
+ "requires": {
+ "env-paths": "^1.0.0",
+ "glob": "^7.0.3",
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2 || 3 || 4",
+ "request": "^2.87.0",
+ "rimraf": "2",
+ "semver": "~5.3.0",
+ "tar": "^4.4.12",
+ "which": "1"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "3.0.6",
+ "bundled": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "semver": {
+ "version": "5.3.0",
+ "bundled": true
+ }
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.10.0",
+ "bundled": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ }
+ }
+ },
+ "npm-audit-report": {
+ "version": "1.3.2",
+ "bundled": true,
+ "requires": {
+ "cli-table3": "^0.5.0",
+ "console-control-strings": "^1.1.0"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-cache-filename": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "npm-install-checks": {
+ "version": "3.0.2",
+ "bundled": true,
+ "requires": {
+ "semver": "^2.3.0 || 3.x || 4 || 5"
+ }
+ },
+ "npm-lifecycle": {
+ "version": "3.1.4",
+ "bundled": true,
+ "requires": {
+ "byline": "^5.0.0",
+ "graceful-fs": "^4.1.15",
+ "node-gyp": "^5.0.2",
+ "resolve-from": "^4.0.0",
+ "slide": "^1.1.6",
+ "uid-number": "0.0.6",
+ "umask": "^1.1.0",
+ "which": "^1.3.1"
+ }
+ },
+ "npm-logical-tree": {
+ "version": "1.2.1",
+ "bundled": true
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "npm-package-arg": {
+ "version": "6.1.1",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^2.7.1",
+ "osenv": "^0.1.5",
+ "semver": "^5.6.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "npm-packlist": {
+ "version": "1.4.7",
+ "bundled": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "npm-pick-manifest": {
+ "version": "3.0.2",
+ "bundled": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1",
+ "npm-package-arg": "^6.0.0",
+ "semver": "^5.4.1"
+ }
+ },
+ "npm-profile": {
+ "version": "4.0.2",
+ "bundled": true,
+ "requires": {
+ "aproba": "^1.1.2 || 2",
+ "figgy-pudding": "^3.4.1",
+ "npm-registry-fetch": "^4.0.0"
+ }
+ },
+ "npm-registry-fetch": {
+ "version": "4.0.2",
+ "bundled": true,
+ "requires": {
+ "JSONStream": "^1.3.4",
+ "bluebird": "^3.5.1",
+ "figgy-pudding": "^3.4.1",
+ "lru-cache": "^5.1.1",
+ "make-fetch-happen": "^5.0.0",
+ "npm-package-arg": "^6.1.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.0",
+ "bundled": true
+ }
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "npm-user-validate": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "bundled": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true
+ },
+ "object-keys": {
+ "version": "1.0.12",
+ "bundled": true
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "bundled": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "opener": {
+ "version": "1.5.1",
+ "bundled": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "p-limit": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "package-json": {
+ "version": "4.0.1",
+ "bundled": true,
+ "requires": {
+ "got": "^6.7.1",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
+ }
+ },
+ "pacote": {
+ "version": "9.5.12",
+ "bundled": true,
+ "requires": {
+ "bluebird": "^3.5.3",
+ "cacache": "^12.0.2",
+ "chownr": "^1.1.2",
+ "figgy-pudding": "^3.5.1",
+ "get-stream": "^4.1.0",
+ "glob": "^7.1.3",
+ "infer-owner": "^1.0.4",
+ "lru-cache": "^5.1.1",
+ "make-fetch-happen": "^5.0.0",
+ "minimatch": "^3.0.4",
+ "minipass": "^2.3.5",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "normalize-package-data": "^2.4.0",
+ "npm-normalize-package-bin": "^1.0.0",
+ "npm-package-arg": "^6.1.0",
+ "npm-packlist": "^1.1.12",
+ "npm-pick-manifest": "^3.0.0",
+ "npm-registry-fetch": "^4.0.0",
+ "osenv": "^0.1.5",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^1.1.1",
+ "protoduck": "^5.0.1",
+ "rimraf": "^2.6.2",
+ "safe-buffer": "^5.1.2",
+ "semver": "^5.6.0",
+ "ssri": "^6.0.1",
+ "tar": "^4.4.10",
+ "unique-filename": "^1.1.1",
+ "which": "^1.3.1"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "2.9.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ }
+ }
+ },
+ "parallel-transform": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "cyclist": "~0.2.2",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "bundled": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "pify": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "promise-retry": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "err-code": "^1.0.0",
+ "retry": "^0.10.0"
+ },
+ "dependencies": {
+ "retry": {
+ "version": "0.10.1",
+ "bundled": true
+ }
+ }
+ },
+ "promzard": {
+ "version": "0.3.0",
+ "bundled": true,
+ "requires": {
+ "read": "1"
+ }
+ },
+ "proto-list": {
+ "version": "1.2.4",
+ "bundled": true
+ },
+ "protoduck": {
+ "version": "5.0.1",
+ "bundled": true,
+ "requires": {
+ "genfun": "^5.0.0"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "psl": {
+ "version": "1.1.29",
+ "bundled": true
+ },
+ "pump": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "bundled": true,
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "bundled": true
+ },
+ "qrcode-terminal": {
+ "version": "0.12.0",
+ "bundled": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "bundled": true
+ },
+ "query-string": {
+ "version": "6.8.2",
+ "bundled": true,
+ "requires": {
+ "decode-uri-component": "^0.2.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ }
+ },
+ "qw": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "rc": {
+ "version": "1.2.7",
+ "bundled": true,
+ "requires": {
+ "deep-extend": "^0.5.1",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true
+ }
+ }
+ },
+ "read": {
+ "version": "1.0.7",
+ "bundled": true,
+ "requires": {
+ "mute-stream": "~0.0.4"
+ }
+ },
+ "read-cmd-shim": {
+ "version": "1.0.5",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2"
+ }
+ },
+ "read-installed": {
+ "version": "4.0.3",
+ "bundled": true,
+ "requires": {
+ "debuglog": "^1.0.1",
+ "graceful-fs": "^4.1.2",
+ "read-package-json": "^2.0.0",
+ "readdir-scoped-modules": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "slide": "~1.1.3",
+ "util-extend": "^1.0.1"
+ }
+ },
+ "read-package-json": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "glob": "^7.1.1",
+ "graceful-fs": "^4.1.2",
+ "json-parse-better-errors": "^1.0.1",
+ "normalize-package-data": "^2.0.0",
+ "npm-normalize-package-bin": "^1.0.0"
+ }
+ },
+ "read-package-tree": {
+ "version": "5.3.1",
+ "bundled": true,
+ "requires": {
+ "read-package-json": "^2.0.0",
+ "readdir-scoped-modules": "^1.0.0",
+ "util-promisify": "^2.1.0"
+ }
+ },
+ "readable-stream": {
+ "version": "3.4.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "readdir-scoped-modules": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "debuglog": "^1.0.1",
+ "dezalgo": "^1.0.0",
+ "graceful-fs": "^4.1.2",
+ "once": "^1.3.0"
+ }
+ },
+ "registry-auth-token": {
+ "version": "3.3.2",
+ "bundled": true,
+ "requires": {
+ "rc": "^1.1.6",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "registry-url": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "rc": "^1.0.1"
+ }
+ },
+ "request": {
+ "version": "2.88.0",
+ "bundled": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "retry": {
+ "version": "0.12.0",
+ "bundled": true
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "bundled": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "aproba": "^1.1.1"
+ },
+ "dependencies": {
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true
+ }
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "bundled": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "bundled": true
+ },
+ "semver-diff": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "semver": "^5.0.3"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "sha": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true
+ },
+ "slide": {
+ "version": "1.1.6",
+ "bundled": true
+ },
+ "smart-buffer": {
+ "version": "4.1.0",
+ "bundled": true
+ },
+ "socks": {
+ "version": "2.3.3",
+ "bundled": true,
+ "requires": {
+ "ip": "1.1.5",
+ "smart-buffer": "^4.1.0"
+ }
+ },
+ "socks-proxy-agent": {
+ "version": "4.0.2",
+ "bundled": true,
+ "requires": {
+ "agent-base": "~4.2.1",
+ "socks": "~2.3.2"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.2.1",
+ "bundled": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ }
+ }
+ }
+ },
+ "sorted-object": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "sorted-union-stream": {
+ "version": "2.1.3",
+ "bundled": true,
+ "requires": {
+ "from2": "^1.3.0",
+ "stream-iterate": "^1.1.0"
+ },
+ "dependencies": {
+ "from2": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "~1.1.10"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "bundled": true
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "bundled": true
+ }
+ }
+ },
+ "spdx-correct": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.3",
+ "bundled": true
+ },
+ "split-on-first": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "sshpk": {
+ "version": "1.14.2",
+ "bundled": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "ssri": {
+ "version": "6.0.1",
+ "bundled": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "stream-each": {
+ "version": "1.2.2",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "stream-iterate": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "strict-uri-encode": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "stringify-package": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "5.4.0",
+ "bundled": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "tar": {
+ "version": "4.4.13",
+ "bundled": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "2.9.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ }
+ }
+ }
+ },
+ "term-size": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "execa": "^0.7.0"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "bundled": true
+ },
+ "through2": {
+ "version": "2.0.3",
+ "bundled": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "bundled": true
+ },
+ "tiny-relative-date": {
+ "version": "1.3.0",
+ "bundled": true
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "bundled": true,
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "bundled": true,
+ "optional": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "bundled": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "bundled": true
+ },
+ "umask": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "unique-filename": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "unique-string": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "crypto-random-string": "^1.0.0"
+ }
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "unzip-response": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "update-notifier": {
+ "version": "2.5.0",
+ "bundled": true,
+ "requires": {
+ "boxen": "^1.2.1",
+ "chalk": "^2.0.1",
+ "configstore": "^3.0.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^1.0.10",
+ "is-installed-globally": "^0.1.0",
+ "is-npm": "^1.0.0",
+ "latest-version": "^3.0.0",
+ "semver-diff": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ }
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "prepend-http": "^1.0.1"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "util-extend": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "util-promisify": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "uuid": {
+ "version": "3.3.3",
+ "bundled": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "validate-npm-package-name": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "builtins": "^1.0.3"
+ }
+ },
+ "verror": {
+ "version": "1.10.0",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "bundled": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "string-width": "^1.0.2"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "widest-line": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^2.1.1"
+ }
+ },
+ "worker-farm": {
+ "version": "1.7.0",
+ "bundled": true,
+ "requires": {
+ "errno": "~0.1.7"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "write-file-atomic": {
+ "version": "2.4.3",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "xdg-basedir": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "bundled": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "yallist": {
+ "version": "3.0.3",
+ "bundled": true
+ },
+ "yargs": {
+ "version": "11.0.0",
+ "bundled": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.1.1",
+ "find-up": "^2.1.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^9.0.2"
+ },
+ "dependencies": {
+ "y18n": {
+ "version": "3.2.1",
+ "bundled": true
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "9.0.2",
+ "bundled": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ }
+ }
+ },
+ "npm-bundled": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
+ "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="
+ },
+ "npm-packlist": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz",
+ "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==",
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "nwsapi": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
+ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==",
+ "dev": true
+ },
+ "oauth": {
+ "version": "0.9.15",
+ "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+ "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE="
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object-component": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
+ "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-inspect": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
+ "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="
+ },
+ "object-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
+ "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object-to-arguments": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/object-to-arguments/-/object-to-arguments-0.0.8.tgz",
+ "integrity": "sha512-BfWfuAwuhdH1bhMG5EG90WE/eckkBhBvnke8eSEkCDXoLE9Jk5JwYGTbCx1ehGwV48HvBkn62VukPBdlMUOY9w==",
+ "requires": {
+ "inspect-parameters-declaration": "0.0.10",
+ "magicli": "0.0.5",
+ "split-skip": "0.0.2",
+ "stringify-parameters": "0.0.4",
+ "unpack-string": "0.0.2"
+ },
+ "dependencies": {
+ "inspect-parameters-declaration": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/inspect-parameters-declaration/-/inspect-parameters-declaration-0.0.10.tgz",
+ "integrity": "sha512-L8/Bvt9iDXQTZ63xY5/MAyvzz+FagR/qGh1kIXvUpsno3AAE0Z95d6QO51zrcMGaEGpwh/57idfMxTxbvRmytg==",
+ "requires": {
+ "magicli": "0.0.5",
+ "split-skip": "0.0.2",
+ "stringify-parameters": "0.0.4",
+ "unpack-string": "0.0.2"
+ }
+ },
+ "magicli": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/magicli/-/magicli-0.0.5.tgz",
+ "integrity": "sha1-zufQ+7THBRiqyxHsPrfiX/SaSSE=",
+ "requires": {
+ "commander": "^2.9.0",
+ "get-stdin": "^5.0.1",
+ "inspect-function": "^0.2.1",
+ "pipe-functions": "^1.2.0"
+ }
+ }
+ }
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
+ }
+ },
+ "object.omit": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-3.0.0.tgz",
+ "integrity": "sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==",
+ "requires": {
+ "is-extendable": "^1.0.0"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+ "dev": true
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+ "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "orderedmap": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-1.1.1.tgz",
+ "integrity": "sha512-3Ux8um0zXbVacKUkcytc0u3HgC0b0bBLT+I60r2J/En72cI0nZffqrA7Xtf2Hqs27j1g82llR5Mhbd0Z1XW4AQ=="
+ },
+ "original": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+ "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+ "dev": true,
+ "requires": {
+ "url-parse": "^1.4.3"
+ }
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "requires": {
+ "lcid": "^1.0.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "p-defer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+ "dev": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
+ },
+ "p-is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+ "requires": {
+ "p-try": "^2.0.0"
+ },
+ "dependencies": {
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ }
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "requires": {
+ "p-limit": "^1.1.0"
+ },
+ "dependencies": {
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ }
+ }
+ },
+ "p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "dev": true
+ },
+ "p-retry": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz",
+ "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==",
+ "dev": true,
+ "requires": {
+ "retry": "^0.12.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+ },
+ "package-json": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
+ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
+ "requires": {
+ "got": "^6.7.1",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
+ }
+ },
+ "pako": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
+ "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
+ "dev": true
+ },
+ "parallel-transform": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
+ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
+ "dev": true,
+ "requires": {
+ "cyclist": "~0.2.2",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz",
+ "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==",
+ "requires": {
+ "asn1.js": "^4.0.0",
+ "browserify-aes": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "parse-json": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+ "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
+ "dev": true
+ },
+ "parse5": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
+ "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==",
+ "dev": true
+ },
+ "parseqs": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+ "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+ "requires": {
+ "better-assert": "~1.0.0"
+ }
+ },
+ "parseuri": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
+ "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+ "requires": {
+ "better-assert": "~1.0.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+ },
+ "passport": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz",
+ "integrity": "sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==",
+ "requires": {
+ "passport-strategy": "1.x.x",
+ "pause": "0.0.1"
+ }
+ },
+ "passport-google-oauth20": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz",
+ "integrity": "sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==",
+ "requires": {
+ "passport-oauth2": "1.x.x"
+ }
+ },
+ "passport-local": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
+ "integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=",
+ "requires": {
+ "passport-strategy": "1.x.x"
+ }
+ },
+ "passport-oauth2": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.5.0.tgz",
+ "integrity": "sha512-kqBt6vR/5VlCK8iCx1/KpY42kQ+NEHZwsSyt4Y6STiNjU+wWICG1i8ucc1FapXDGO15C5O5VZz7+7vRzrDPXXQ==",
+ "requires": {
+ "base64url": "3.x.x",
+ "oauth": "0.9.x",
+ "passport-strategy": "1.x.x",
+ "uid2": "0.0.x",
+ "utils-merge": "1.x.x"
+ }
+ },
+ "passport-strategy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
+ "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
+ },
+ "path-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pathval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
+ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA="
+ },
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
+ },
+ "pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+ "requires": {
+ "through": "~2.3"
+ }
+ },
+ "pbkdf2": {
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
+ "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "pdf-parse": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pdf-parse/-/pdf-parse-1.1.1.tgz",
+ "integrity": "sha512-v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A==",
+ "requires": {
+ "debug": "^3.1.0",
+ "node-ensure": "^0.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "pdfjs-dist": {
+ "version": "2.3.200",
+ "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.3.200.tgz",
+ "integrity": "sha512-+8wBjU5h8LPZOIvR9X2uCrp/8xWQG1DRDKMLg5lzGN1qyIAZlYUxA0KQyy12Nw5jN7ozulC6v97PMaDcLgAcFg==",
+ "requires": {
+ "node-ensure": "^0.0.0",
+ "worker-loader": "^2.0.0"
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "picomatch": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz",
+ "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA=="
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pipe-functions": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/pipe-functions/-/pipe-functions-1.3.0.tgz",
+ "integrity": "sha512-6Rtbp7criZRwedlvWbUYxqlqJoAlMvYHo2UcRWq79xZ54vZcaNHpVBOcWkX3ErT2aUA69tv+uiv4zKJbhD/Wgg=="
+ },
+ "pkg-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.1.0"
+ }
+ },
+ "pn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
+ "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
+ "dev": true
+ },
+ "popper.js": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz",
+ "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw=="
+ },
+ "portfinder": {
+ "version": "1.0.25",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz",
+ "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.6.2",
+ "debug": "^3.1.1",
+ "mkdirp": "^0.5.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
+ },
+ "postcss": {
+ "version": "7.0.17",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
+ "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
+ "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.5"
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz",
+ "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^6.0.0",
+ "postcss-value-parser": "^3.3.1"
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz",
+ "integrity": "sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^6.0.0"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz",
+ "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "^1.1.0",
+ "postcss": "^7.0.6"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
+ "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ },
+ "prebuild-install": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz",
+ "integrity": "sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==",
+ "requires": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^2.7.0",
+ "noop-logger": "^0.1.1",
+ "npmlog": "^4.0.1",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^3.0.3",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
+ },
+ "pretty-format": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
+ "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "ansi-regex": "^4.0.0",
+ "ansi-styles": "^3.2.0",
+ "react-is": "^16.8.4"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ }
+ }
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
+ },
+ "probe-image-size": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-4.1.1.tgz",
+ "integrity": "sha512-42LqKZqTLxH/UvAZ2/cKhAsR4G/Y6B7i7fI2qtQu9hRBK4YjS6gqO+QRtwTjvojUx4+/+JuOMzLoFyRecT9qRw==",
+ "requires": {
+ "any-promise": "^1.3.0",
+ "deepmerge": "^4.0.0",
+ "inherits": "^2.0.3",
+ "next-tick": "^1.0.0",
+ "request": "^2.83.0",
+ "stream-parser": "~0.3.1"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "deepmerge": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.0.0.tgz",
+ "integrity": "sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww=="
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ }
+ }
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
+ },
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "requires": {
+ "asap": "~2.0.3"
+ }
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+ "dev": true
+ },
+ "prop-types": {
+ "version": "15.7.2",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
+ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.8.1"
+ }
+ },
+ "prop-types-extra": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.0.tgz",
+ "integrity": "sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg==",
+ "requires": {
+ "react-is": "^16.3.2",
+ "warning": "^3.0.0"
+ }
+ },
+ "prosemirror-commands": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.1.3.tgz",
+ "integrity": "sha512-YVbKwTR4likoyhuwIUC9egbzHvnFrFUNbiesB0DB/HZ8hBcopQ42Tb4KGlYrS3n+pNDTFObN73CLFY6mYLN2IQ==",
+ "requires": {
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.0.0"
+ }
+ },
+ "prosemirror-dropcursor": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.2.tgz",
+ "integrity": "sha512-4c94OUGyobGnwcQI70OXyMhE/9T4aTgjU+CHxkd5c7D+jH/J0mKM/lk+jneFVKt7+E4/M0D9HzRPifu8U28Thw==",
+ "requires": {
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.1.0",
+ "prosemirror-view": "^1.1.0"
+ }
+ },
+ "prosemirror-example-setup": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-example-setup/-/prosemirror-example-setup-1.1.2.tgz",
+ "integrity": "sha512-MTpIMyqk08jFnzxeRMCinCEMtVSTUtxKgQBGxfCbVe9C6zIOqp9qZZJz5Ojaad1GETySyuj8+OIHHvQsIaaaGQ==",
+ "requires": {
+ "prosemirror-commands": "^1.0.0",
+ "prosemirror-dropcursor": "^1.0.0",
+ "prosemirror-gapcursor": "^1.0.0",
+ "prosemirror-history": "^1.0.0",
+ "prosemirror-inputrules": "^1.0.0",
+ "prosemirror-keymap": "^1.0.0",
+ "prosemirror-menu": "^1.0.0",
+ "prosemirror-schema-list": "^1.0.0",
+ "prosemirror-state": "^1.0.0"
+ }
+ },
+ "prosemirror-find-replace": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/prosemirror-find-replace/-/prosemirror-find-replace-0.9.0.tgz",
+ "integrity": "sha1-QgsENNF5xdBJD44hSNhVGpVJY4I="
+ },
+ "prosemirror-gapcursor": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.1.2.tgz",
+ "integrity": "sha512-Z+eqk6RysZVxidGWN5aWoSTbn5bTHf1XZ+nQJVwUSdwdBVkfQMFdTHgfrXA8W5MhHHdNg/EEEYG3z3Zi/vE2QQ==",
+ "requires": {
+ "prosemirror-keymap": "^1.0.0",
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-view": "^1.0.0"
+ }
+ },
+ "prosemirror-history": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.1.3.tgz",
+ "integrity": "sha512-zGDotijea+vnfnyyUGyiy1wfOQhf0B/b6zYcCouBV8yo6JmrE9X23M5q7Nf/nATywEZbgRLG70R4DmfSTC+gfg==",
+ "requires": {
+ "prosemirror-state": "^1.2.2",
+ "prosemirror-transform": "^1.0.0",
+ "rope-sequence": "^1.3.0"
+ }
+ },
+ "prosemirror-inputrules": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.1.2.tgz",
+ "integrity": "sha512-Ja5Z3BWestlHYGvtSGqyvxMeB8QEuBjlHM8YnKtLGUXMDp965qdDV4goV8lJb17kIWHk7e7JNj6Catuoa3302g==",
+ "requires": {
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.0.0"
+ }
+ },
+ "prosemirror-keymap": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.1.3.tgz",
+ "integrity": "sha512-PRA4NzkUMzV/NFf5pyQ6tmlIHiW/qjQ1kGWUlV2rF/dvlOxtpGpTEjIMhWgLuMf+HiDEFnUEP7uhYXu+t+491g==",
+ "requires": {
+ "prosemirror-state": "^1.0.0",
+ "w3c-keyname": "^2.2.0"
+ }
+ },
+ "prosemirror-menu": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.1.2.tgz",
+ "integrity": "sha512-iAPBMnxaj0AXzqgzxrJPrjo5njIqUaDQjyS17R/vb6zIBnEtH1ZDPanrmZnYkBEFvvM4fBtzDZSQct5iJNTcDQ==",
+ "requires": {
+ "crel": "^3.1.0",
+ "prosemirror-commands": "^1.0.0",
+ "prosemirror-history": "^1.0.0",
+ "prosemirror-state": "^1.0.0"
+ }
+ },
+ "prosemirror-model": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.9.1.tgz",
+ "integrity": "sha512-Qblh8pm1c7Ll64sYLauwwzjimo/tFg1zW3Q3IWhKRhvfOEgRKqa6dC5pRrAa+XHOIjBFEYrqbi52J5bqA2dV8Q==",
+ "requires": {
+ "orderedmap": "^1.1.0"
+ }
+ },
+ "prosemirror-schema-basic": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.1.2.tgz",
+ "integrity": "sha512-G4q8WflNsR1Q33QAV4MQO0xWrHLOJ+BQcKswGXMy626wlQj6c/1n1v4eC9ns+h2y1r/fJHZEgSZnsNhm9lbrDw==",
+ "requires": {
+ "prosemirror-model": "^1.2.0"
+ }
+ },
+ "prosemirror-schema-list": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.1.2.tgz",
+ "integrity": "sha512-dgM9PwtM4twa5WsgSYMB+J8bwjnR43DAD3L9MsR9rKm/nZR5Y85xcjB7gusVMSsbQ2NomMZF03RE6No6mTnclQ==",
+ "requires": {
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-transform": "^1.0.0"
+ }
+ },
+ "prosemirror-state": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.3.2.tgz",
+ "integrity": "sha512-t/JqE3aR0SV9QrzFVkAXsQwsgrQBNs/BDbcFH20RssW0xauqNNdjTXxy/J/kM7F+0zYi6+BRmz7cMMQQFU3mwQ==",
+ "requires": {
+ "prosemirror-model": "^1.0.0",
+ "prosemirror-transform": "^1.0.0"
+ }
+ },
+ "prosemirror-transform": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.2.3.tgz",
+ "integrity": "sha512-PUfayeskQfuUBXktvL6207ZWRwHBFNPNPiek4fR+LgCPnBofuEb2+L0FfbNtrAwffHVs6M3DaFvJB1W2VQdV0A==",
+ "requires": {
+ "prosemirror-model": "^1.0.0"
+ }
+ },
+ "prosemirror-view": {
+ "version": "1.13.8",
+ "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.13.8.tgz",
+ "integrity": "sha512-gz3msc9ocWo0m7PxCeNTLxaBZ8VSD9J+A/x16GwXnROAtyKalEMvZInwk+lH2kIEIM3tC/m90xe5U/vf+vM9IA==",
+ "requires": {
+ "prosemirror-model": "^1.1.0",
+ "prosemirror-state": "^1.0.0",
+ "prosemirror-transform": "^1.1.0"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
+ "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.0"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "psl": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
+ "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA=="
+ },
+ "pstree.remy": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz",
+ "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A=="
+ },
+ "public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "pug": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz",
+ "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==",
+ "requires": {
+ "pug-code-gen": "^2.0.2",
+ "pug-filters": "^3.1.1",
+ "pug-lexer": "^4.1.0",
+ "pug-linker": "^3.0.6",
+ "pug-load": "^2.0.12",
+ "pug-parser": "^5.0.1",
+ "pug-runtime": "^2.0.5",
+ "pug-strip-comments": "^1.0.4"
+ }
+ },
+ "pug-attrs": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz",
+ "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==",
+ "requires": {
+ "constantinople": "^3.0.1",
+ "js-stringify": "^1.0.1",
+ "pug-runtime": "^2.0.5"
+ }
+ },
+ "pug-code-gen": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz",
+ "integrity": "sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==",
+ "requires": {
+ "constantinople": "^3.1.2",
+ "doctypes": "^1.1.0",
+ "js-stringify": "^1.0.1",
+ "pug-attrs": "^2.0.4",
+ "pug-error": "^1.3.3",
+ "pug-runtime": "^2.0.5",
+ "void-elements": "^2.0.1",
+ "with": "^5.0.0"
+ }
+ },
+ "pug-error": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz",
+ "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ=="
+ },
+ "pug-filters": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz",
+ "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==",
+ "requires": {
+ "clean-css": "^4.1.11",
+ "constantinople": "^3.0.1",
+ "jstransformer": "1.0.0",
+ "pug-error": "^1.3.3",
+ "pug-walk": "^1.1.8",
+ "resolve": "^1.1.6",
+ "uglify-js": "^2.6.1"
+ }
+ },
+ "pug-lexer": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz",
+ "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==",
+ "requires": {
+ "character-parser": "^2.1.1",
+ "is-expression": "^3.0.0",
+ "pug-error": "^1.3.3"
+ }
+ },
+ "pug-linker": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz",
+ "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==",
+ "requires": {
+ "pug-error": "^1.3.3",
+ "pug-walk": "^1.1.8"
+ }
+ },
+ "pug-load": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz",
+ "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==",
+ "requires": {
+ "object-assign": "^4.1.0",
+ "pug-walk": "^1.1.8"
+ }
+ },
+ "pug-parser": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz",
+ "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==",
+ "requires": {
+ "pug-error": "^1.3.3",
+ "token-stream": "0.0.1"
+ }
+ },
+ "pug-runtime": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz",
+ "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw=="
+ },
+ "pug-strip-comments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz",
+ "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==",
+ "requires": {
+ "pug-error": "^1.3.3"
+ }
+ },
+ "pug-walk": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz",
+ "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA=="
+ },
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+ },
+ "query-string": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.10.1.tgz",
+ "integrity": "sha512-SHTUV6gDlgMXg/AQUuLpTiBtW/etZ9JT6k6RCtCyqADquApLX0Aq5oK/s5UeTUAWBG50IExjIr587GqfXRfM4A==",
+ "requires": {
+ "decode-uri-component": "^0.2.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ }
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "querystringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
+ "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
+ "dev": true
+ },
+ "random-bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
+ "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "requires": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "raw-loader": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-1.0.0.tgz",
+ "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==",
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
+ },
+ "rc-switch": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-1.9.0.tgz",
+ "integrity": "sha512-Isas+egaK6qSk64jaEw4GgPStY4umYDbT7ZY93bZF1Af+b/JEsKsJdNOU2qG3WI0Z6tXo2DDq0kJCv8Yhu0zww==",
+ "requires": {
+ "classnames": "^2.2.1",
+ "prop-types": "^15.5.6",
+ "react-lifecycles-compat": "^3.0.4"
+ }
+ },
+ "react": {
+ "version": "16.12.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz",
+ "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "prop-types": "^15.6.2"
+ }
+ },
+ "react-anime": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/react-anime/-/react-anime-2.3.2.tgz",
+ "integrity": "sha512-Wh9p1EdU5NTc2lyemHlaGG0QKuUYhpeGbh1Auw14Be+vukIkbCIaBMOyFya0Q7SIjSPzTNNpIgnD3oIv8TXWiw==",
+ "requires": {
+ "animejs": "^3.1.0",
+ "lodash.isequal": "^4.5.0"
+ }
+ },
+ "react-autosuggest": {
+ "version": "9.4.3",
+ "resolved": "https://registry.npmjs.org/react-autosuggest/-/react-autosuggest-9.4.3.tgz",
+ "integrity": "sha512-wFbp5QpgFQRfw9cwKvcgLR8theikOUkv8PFsuLYqI2PUgVlx186Cz8MYt5bLxculi+jxGGUUVt+h0esaBZZouw==",
+ "requires": {
+ "prop-types": "^15.5.10",
+ "react-autowhatever": "^10.1.2",
+ "shallow-equal": "^1.0.0"
+ }
+ },
+ "react-autowhatever": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/react-autowhatever/-/react-autowhatever-10.2.0.tgz",
+ "integrity": "sha512-dqHH4uqiJldPMbL8hl/i2HV4E8FMTDEdVlOIbRqYnJi0kTpWseF9fJslk/KS9pGDnm80JkYzVI+nzFjnOG/u+g==",
+ "requires": {
+ "prop-types": "^15.5.8",
+ "react-themeable": "^1.1.0",
+ "section-iterator": "^2.0.0"
+ }
+ },
+ "react-bootstrap": {
+ "version": "1.0.0-beta.16",
+ "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.0.0-beta.16.tgz",
+ "integrity": "sha512-wjb+3CwviDWAaz4O3gQpd2XMDNqbOiqOOzpLm5aLPcp1wTsQsVRhyM+rTPmO3hYU8auA2eNpTYLz08/fAcMqDA==",
+ "requires": {
+ "@babel/runtime": "^7.4.2",
+ "@restart/context": "^2.1.4",
+ "@restart/hooks": "^0.3.11",
+ "@types/react": "^16.8.23",
+ "classnames": "^2.2.6",
+ "dom-helpers": "^5.1.2",
+ "invariant": "^2.2.4",
+ "keycode": "^2.2.0",
+ "popper.js": "^1.16.0",
+ "prop-types": "^15.7.2",
+ "prop-types-extra": "^1.1.0",
+ "react-overlays": "^2.1.0",
+ "react-transition-group": "^4.0.0",
+ "uncontrollable": "^7.0.0",
+ "warning": "^4.0.3"
+ },
+ "dependencies": {
+ "csstype": {
+ "version": "2.6.8",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz",
+ "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA=="
+ },
+ "dom-helpers": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.3.tgz",
+ "integrity": "sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==",
+ "requires": {
+ "@babel/runtime": "^7.6.3",
+ "csstype": "^2.6.7"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.7.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz",
+ "integrity": "sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==",
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ }
+ }
+ },
+ "react-transition-group": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz",
+ "integrity": "sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw==",
+ "requires": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ }
+ },
+ "uncontrollable": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.1.1.tgz",
+ "integrity": "sha512-EcPYhot3uWTS3w00R32R2+vS8Vr53tttrvMj/yA1uYRhf8hbTG2GyugGqWDY0qIskxn0uTTojVd6wPYW9ZEf8Q==",
+ "requires": {
+ "@babel/runtime": "^7.6.3",
+ "@types/react": "^16.9.11",
+ "invariant": "^2.2.4",
+ "react-lifecycles-compat": "^3.0.4"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.7.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz",
+ "integrity": "sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==",
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ }
+ }
+ },
+ "warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ }
+ }
+ },
+ "react-bootstrap-dropdown-menu": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/react-bootstrap-dropdown-menu/-/react-bootstrap-dropdown-menu-1.1.15.tgz",
+ "integrity": "sha512-o35fODF4GsNxEzmnRWZuoe29a6x3fXqRsLXOlAvS4d+TvO3yoLTM8iZnSZpJCkHQnjOOWRnGvDh5tryqJCKZ0w=="
+ },
+ "react-color": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.18.0.tgz",
+ "integrity": "sha512-FyVeU1kQiSokWc8NPz22azl1ezLpJdUyTbWL0LPUpcuuYDrZ/Y1veOk9rRK5B3pMlyDGvTk4f4KJhlkIQNRjEA==",
+ "requires": {
+ "@icons/material": "^0.2.4",
+ "lodash": "^4.17.11",
+ "material-colors": "^1.2.1",
+ "prop-types": "^15.5.10",
+ "reactcss": "^1.2.0",
+ "tinycolor2": "^1.4.1"
+ }
+ },
+ "react-dimensions": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/react-dimensions/-/react-dimensions-1.3.1.tgz",
+ "integrity": "sha512-go5vMuGUxaB5PiTSIk+ZfAxLbHwcIgIfLhkBZ2SIMQjaCgnpttxa30z5ijEzfDjeOCTGRpxvkzcmE4Vt4Ppvyw==",
+ "requires": {
+ "element-resize-event": "^2.0.4"
+ }
+ },
+ "react-dom": {
+ "version": "16.12.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz",
+ "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "prop-types": "^15.6.2",
+ "scheduler": "^0.18.0"
+ }
+ },
+ "react-golden-layout": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/react-golden-layout/-/react-golden-layout-1.0.6.tgz",
+ "integrity": "sha512-KZQ17Bnd+LfyCqe2scVMznrGKTciX3VwoT3y4xn3Qok9hknCvVXZfXe2RSX5zNG7FlLJzWt0VWqy8qZBHpQVuQ==",
+ "requires": {
+ "golden-layout": "^1.5.9",
+ "react": "^16.3.0",
+ "react-dom": "^16.3.0"
+ }
+ },
+ "react-image-lightbox-with-rotate": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/react-image-lightbox-with-rotate/-/react-image-lightbox-with-rotate-5.1.1.tgz",
+ "integrity": "sha512-5ZubUQefKSDGIiAwK4lkfmGr/bgIfNDHXqC+Fm6nbNwTVYuYOZ1RJjULOniEB4fxb3Vm0z/x0oNhi1lbP1aMtg==",
+ "requires": {
+ "blueimp-load-image": "^2.19.0",
+ "prop-types": "^15.6.1",
+ "react-modal": "^3.4.4"
+ }
+ },
+ "react-is": {
+ "version": "16.8.6",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
+ "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA=="
+ },
+ "react-jsx-parser": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/react-jsx-parser/-/react-jsx-parser-1.21.0.tgz",
+ "integrity": "sha512-3ZYS0+Fiz1hx1owMDvA6skoYnISdsdthKEMLmcoqQ2CF+LzBKnYK/GtMJ5lKKz0AfZiNpsBq8qK7Av2ZE6vEVQ==",
+ "requires": {
+ "acorn": "^7.1.0",
+ "acorn-jsx": "^5.1.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
+ "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ=="
+ }
+ }
+ },
+ "react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ },
+ "react-measure": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/react-measure/-/react-measure-2.3.0.tgz",
+ "integrity": "sha512-dwAvmiOeblj5Dvpnk8Jm7Q8B4THF/f1l1HtKVi0XDecsG6LXwGvzV5R1H32kq3TW6RW64OAf5aoQxpIgLa4z8A==",
+ "requires": {
+ "@babel/runtime": "^7.2.0",
+ "get-node-dimensions": "^1.2.1",
+ "prop-types": "^15.6.2",
+ "resize-observer-polyfill": "^1.5.0"
+ }
+ },
+ "react-modal": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.9.1.tgz",
+ "integrity": "sha512-k+TUkhGWpIVHLsEyjNmlyOYL0Uz03fNZvlkhCImd1h+6fhNgTi6H6jexVXPVhD2LMMDzJyfugxMN+APN/em+eQ==",
+ "requires": {
+ "exenv": "^1.2.0",
+ "prop-types": "^15.5.10",
+ "react-lifecycles-compat": "^3.0.0",
+ "warning": "^4.0.3"
+ },
+ "dependencies": {
+ "warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ }
+ }
+ },
+ "react-mosaic": {
+ "version": "0.0.20",
+ "resolved": "https://registry.npmjs.org/react-mosaic/-/react-mosaic-0.0.20.tgz",
+ "integrity": "sha1-pSSr8uzyi5r2sh1NNQ/veCLvMJ4=",
+ "requires": {
+ "prop-types": "^15.6.0",
+ "threads": "^0.8.0"
+ }
+ },
+ "react-overlays": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-2.1.0.tgz",
+ "integrity": "sha512-tHPGTZosbQSo82yb9x4YCsmJJtspKvAPL5kXVnyoB2Z5UoAU3VetIuh2VblfVT408us5nLJd9uDtwI3xWDHS6w==",
+ "requires": {
+ "@babel/runtime": "^7.4.5",
+ "@restart/hooks": "^0.3.12",
+ "dom-helpers": "^5.1.0",
+ "popper.js": "^1.15.0",
+ "prop-types": "^15.7.2",
+ "uncontrollable": "^7.0.0",
+ "warning": "^4.0.3"
+ },
+ "dependencies": {
+ "csstype": {
+ "version": "2.6.8",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz",
+ "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA=="
+ },
+ "dom-helpers": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.3.tgz",
+ "integrity": "sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==",
+ "requires": {
+ "@babel/runtime": "^7.6.3",
+ "csstype": "^2.6.7"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.7.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz",
+ "integrity": "sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==",
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ }
+ }
+ },
+ "uncontrollable": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.1.1.tgz",
+ "integrity": "sha512-EcPYhot3uWTS3w00R32R2+vS8Vr53tttrvMj/yA1uYRhf8hbTG2GyugGqWDY0qIskxn0uTTojVd6wPYW9ZEf8Q==",
+ "requires": {
+ "@babel/runtime": "^7.6.3",
+ "@types/react": "^16.9.11",
+ "invariant": "^2.2.4",
+ "react-lifecycles-compat": "^3.0.4"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.7.7",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz",
+ "integrity": "sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==",
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ }
+ }
+ },
+ "warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ }
+ }
+ },
+ "react-simple-dropdown": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/react-simple-dropdown/-/react-simple-dropdown-3.2.3.tgz",
+ "integrity": "sha512-NmyyvA0D4wph5ctzkn8U4wmblOacavJMl9gTOhQR3v8I997mc1FL1NFKkj3Mx+HNysBKRD/HI+kpxXCAgXumPw==",
+ "requires": {
+ "classnames": "^2.1.2",
+ "prop-types": "^15.5.8"
+ }
+ },
+ "react-split-pane": {
+ "version": "0.1.89",
+ "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.89.tgz",
+ "integrity": "sha512-bGEiOevi6nBE1evEJOsZjd5A7plLboFAU4+HGASWWVm94XUg7QdsuPInGOB+5Ym4RtY3TZCpmUvLe6qQmrZUOg==",
+ "requires": {
+ "prop-types": "^15.5.10",
+ "react-lifecycles-compat": "^3.0.4",
+ "react-style-proptype": "^3.0.0"
+ }
+ },
+ "react-style-proptype": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz",
+ "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==",
+ "requires": {
+ "prop-types": "^15.5.4"
+ }
+ },
+ "react-table": {
+ "version": "6.11.5",
+ "resolved": "https://registry.npmjs.org/react-table/-/react-table-6.11.5.tgz",
+ "integrity": "sha512-LM+AS9v//7Y7lAlgTWW/cW6Sn5VOb3EsSkKQfQTzOW8FngB1FUskLLNEVkAYsTX9LjOWR3QlGjykJqCE6eXT/g==",
+ "requires": {
+ "@types/react-table": "^6.8.5",
+ "classnames": "^2.2.5",
+ "react-is": "^16.8.1"
+ }
+ },
+ "react-themeable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/react-themeable/-/react-themeable-1.1.0.tgz",
+ "integrity": "sha1-fURm3ZsrX6dQWHJ4JenxUro3mg4=",
+ "requires": {
+ "object-assign": "^3.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ }
+ }
+ },
+ "react-transition-group": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz",
+ "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
+ "requires": {
+ "dom-helpers": "^3.4.0",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2",
+ "react-lifecycles-compat": "^3.0.4"
+ }
+ },
+ "reactcss": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz",
+ "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==",
+ "requires": {
+ "lodash": "^4.0.1"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "readline": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz",
+ "integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw="
+ },
+ "recast": {
+ "version": "0.11.23",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz",
+ "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=",
+ "requires": {
+ "ast-types": "0.9.6",
+ "esprima": "~3.1.0",
+ "private": "~0.1.5",
+ "source-map": "~0.5.0"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
+ }
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "reduce-flatten": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
+ "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc="
+ },
+ "regenerator-runtime": {
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regexp-clone": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
+ "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
+ },
+ "regexp.prototype.flags": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
+ "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ },
+ "dependencies": {
+ "es-abstract": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz",
+ "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.5",
+ "is-regex": "^1.0.5",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.1",
+ "string.prototype.trimright": "^2.1.1"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ }
+ }
+ },
+ "registry-auth-token": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
+ "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
+ "requires": {
+ "rc": "^1.1.6",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "registry-url": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
+ "requires": {
+ "rc": "^1.0.1"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ }
+ }
+ },
+ "request-promise": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.5.tgz",
+ "integrity": "sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg==",
+ "requires": {
+ "bluebird": "^3.5.0",
+ "request-promise-core": "1.1.3",
+ "stealthy-require": "^1.1.1",
+ "tough-cookie": "^2.3.3"
+ }
+ },
+ "request-promise-core": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
+ "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==",
+ "requires": {
+ "lodash": "^4.17.15"
+ }
+ },
+ "request-promise-native": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz",
+ "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==",
+ "dev": true,
+ "requires": {
+ "request-promise-core": "1.1.3",
+ "stealthy-require": "^1.1.1",
+ "tough-cookie": "^2.3.3"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
+ },
+ "require_optional": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
+ "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
+ "requires": {
+ "resolve-from": "^2.0.0",
+ "semver": "^5.1.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
+ "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
+ }
+ }
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
+ },
+ "resilient-server-session": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/resilient-server-session/-/resilient-server-session-1.1.2.tgz",
+ "integrity": "sha512-eLoXxTc5bFOYH2JejSCYc2O8emoo80p2zOuwVVWVoK6/2NJBzLP8Yl7kU8m7tJDrOoqDSZGghsVD5ob9BbUgAQ==",
+ "requires": {
+ "@types/chai": "^4.2.7",
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^10.12.30",
+ "@types/request-promise": "^4.1.42",
+ "@types/uuid": "^3.4.6",
+ "chai": "^4.2.0",
+ "colors": "^1.4.0",
+ "jsonschema": "^1.2.5",
+ "mocha": "^7.0.0",
+ "request-promise": "^4.2.5",
+ "typescript": "^3.7.4",
+ "uuid": "^3.3.3"
+ },
+ "dependencies": {
+ "ansi-colors": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
+ "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw=="
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "binary-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
+ "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow=="
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "chokidar": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz",
+ "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==",
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.1.1",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.2.0"
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "fsevents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
+ "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+ "optional": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ },
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
+ "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "mocha": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.0.0.tgz",
+ "integrity": "sha512-CirsOPbO3jU86YKjjMzFLcXIb5YiGLUrjrXFHoJ3e2z9vWiaZVCZQ2+gtRGMPWF+nFhN6AWwLM/juzAQ6KRkbA==",
+ "requires": {
+ "ansi-colors": "3.2.3",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.3.0",
+ "debug": "3.2.6",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "find-up": "3.0.0",
+ "glob": "7.1.3",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "3.13.1",
+ "log-symbols": "2.2.0",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "ms": "2.1.1",
+ "node-environment-flags": "1.0.6",
+ "object.assign": "4.1.0",
+ "strip-json-comments": "2.0.1",
+ "supports-color": "6.0.0",
+ "which": "1.3.1",
+ "wide-align": "1.1.3",
+ "yargs": "13.3.0",
+ "yargs-parser": "13.1.1",
+ "yargs-unparser": "1.6.0"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ },
+ "node-environment-flags": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz",
+ "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==",
+ "requires": {
+ "object.getownpropertydescriptors": "^2.0.3",
+ "semver": "^5.7.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "readdirp": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz",
+ "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==",
+ "requires": {
+ "picomatch": "^2.0.4"
+ }
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
+ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ },
+ "yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ },
+ "resolve": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
+ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "dev": true,
+ "requires": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
+ },
+ "dependencies": {
+ "global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ }
+ }
+ }
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+ },
+ "retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
+ "dev": true
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
+ "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "rope-sequence": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.2.tgz",
+ "integrity": "sha512-ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg=="
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "saslprep": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
+ "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
+ "optional": true,
+ "requires": {
+ "sparse-bitfield": "^3.0.3"
+ }
+ },
+ "sass-graph": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
+ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+ "requires": {
+ "glob": "^7.0.0",
+ "lodash": "^4.0.0",
+ "scss-tokenizer": "^0.2.3",
+ "yargs": "^7.0.0"
+ }
+ },
+ "sass-loader": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz",
+ "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==",
+ "dev": true,
+ "requires": {
+ "clone-deep": "^4.0.1",
+ "loader-utils": "^1.0.1",
+ "neo-async": "^2.5.0",
+ "pify": "^4.0.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "saxes": {
+ "version": "3.1.11",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz",
+ "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==",
+ "dev": true,
+ "requires": {
+ "xmlchars": "^2.1.1"
+ }
+ },
+ "scheduler": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz",
+ "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "schema-utils": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+ "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "scss-loader": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/scss-loader/-/scss-loader-0.0.1.tgz",
+ "integrity": "sha1-6uAXueDzjBKlMtslwiC5Avs05nE=",
+ "dev": true
+ },
+ "scss-tokenizer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+ "requires": {
+ "js-base64": "^2.1.8",
+ "source-map": "^0.4.2"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
+ }
+ },
+ "section-iterator": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/section-iterator/-/section-iterator-2.0.0.tgz",
+ "integrity": "sha1-v0RNev7rlK1Dw5rS+yYVFifMuio="
+ },
+ "seedrandom": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz",
+ "integrity": "sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw="
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+ "dev": true
+ },
+ "selfsigned": {
+ "version": "1.10.7",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz",
+ "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==",
+ "dev": true,
+ "requires": {
+ "node-forge": "0.9.0"
+ }
+ },
+ "semver": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ },
+ "semver-diff": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
+ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
+ "requires": {
+ "semver": "^5.0.3"
+ }
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
+ }
+ }
+ },
+ "serialize-javascript": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz",
+ "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==",
+ "dev": true
+ },
+ "serializr": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/serializr/-/serializr-1.5.4.tgz",
+ "integrity": "sha512-ImLlkNfNSSv9d7Ah1j/yrPk1FHbRC1zkD7URcgx/8M1eYHGUxGf/Ig/d8ML04ifqN7QesyYKsfLYA4xjAVAR/g=="
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "dependencies": {
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "dev": true
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "shallow-equal": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.0.tgz",
+ "integrity": "sha512-Z21pVxR4cXsfwpMKMhCEIO1PCi5sp7KEp+CmOpBQ+E8GpHwKOw2sEzk7sgblM3d/j4z4gakoWEoPcjK0VJQogA=="
+ },
+ "sharp": {
+ "version": "0.23.4",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.23.4.tgz",
+ "integrity": "sha512-fJMagt6cT0UDy9XCsgyLi0eiwWWhQRxbwGmqQT6sY8Av4s0SVsT/deg8fobBQCTDU5iXRgz0rAeXoE2LBZ8g+Q==",
+ "requires": {
+ "color": "^3.1.2",
+ "detect-libc": "^1.0.3",
+ "nan": "^2.14.0",
+ "npmlog": "^4.1.2",
+ "prebuild-install": "^5.3.3",
+ "semver": "^6.3.0",
+ "simple-get": "^3.1.0",
+ "tar": "^5.0.5",
+ "tunnel-agent": "^0.6.0"
+ },
+ "dependencies": {
+ "chownr": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
+ "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw=="
+ },
+ "decompress-response": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
+ "requires": {
+ "mimic-response": "^2.0.0"
+ }
+ },
+ "fs-minipass": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.0.0.tgz",
+ "integrity": "sha512-40Qz+LFXmd9tzYVnnBmZvFfvAADfUA14TXPK1s7IfElJTIZ97rA8w4Kin7Wt5JBrC3ShnnFJO/5vPjPEeJIq9A==",
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "mimic-response": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.0.0.tgz",
+ "integrity": "sha512-8ilDoEapqA4uQ3TwS0jakGONKXVJqpy+RpM+3b7pLdOjghCrEiGp9SRkFbUHAmZW9vdnrENWHjaweIoTIJExSQ=="
+ },
+ "minipass": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz",
+ "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz",
+ "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==",
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "simple-get": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
+ "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
+ "requires": {
+ "decompress-response": "^4.2.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "tar": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-5.0.5.tgz",
+ "integrity": "sha512-MNIgJddrV2TkuwChwcSNds/5E9VijOiw7kAc1y5hTNJoLDSuIyid2QtLYiCYNnICebpuvjhPQZsXwUL0O3l7OQ==",
+ "requires": {
+ "chownr": "^1.1.3",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^3.0.0",
+ "minizlib": "^2.1.0",
+ "mkdirp": "^0.5.0",
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
+ },
+ "shelljs": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz",
+ "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==",
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
+ "shellwords": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
+ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
+ "dev": true
+ },
+ "sift": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz",
+ "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+ },
+ "simple-concat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
+ "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
+ },
+ "simple-get": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.0.3.tgz",
+ "integrity": "sha512-Wvre/Jq5vgoz31Z9stYWPLn0PqRqmBDpFSdypAnHu5AvRVCYPRYGnvryNLiXu8GOBNDH82J2FRHUGMjjHUpXFw==",
+ "requires": {
+ "decompress-response": "^3.3.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ }
+ }
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "sliced": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
+ "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "socket.io": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz",
+ "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==",
+ "requires": {
+ "debug": "~4.1.0",
+ "engine.io": "~3.4.0",
+ "has-binary2": "~1.0.2",
+ "socket.io-adapter": "~1.1.0",
+ "socket.io-client": "2.3.0",
+ "socket.io-parser": "~3.4.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "socket.io-adapter": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz",
+ "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g=="
+ },
+ "socket.io-client": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz",
+ "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==",
+ "requires": {
+ "backo2": "1.0.2",
+ "base64-arraybuffer": "0.1.5",
+ "component-bind": "1.0.0",
+ "component-emitter": "1.2.1",
+ "debug": "~4.1.0",
+ "engine.io-client": "~3.4.0",
+ "has-binary2": "~1.0.2",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "object-component": "0.0.3",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "socket.io-parser": "~3.3.0",
+ "to-array": "0.1.4"
+ },
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "socket.io-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
+ "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "debug": "~3.1.0",
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ }
+ }
+ },
+ "socket.io-parser": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz",
+ "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "debug": "~4.1.0",
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "sockjs": {
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
+ "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
+ "dev": true,
+ "requires": {
+ "faye-websocket": "^0.10.0",
+ "uuid": "^3.0.1"
+ }
+ },
+ "sockjs-client": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz",
+ "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.5",
+ "eventsource": "^1.0.7",
+ "faye-websocket": "~0.11.1",
+ "inherits": "^2.0.3",
+ "json3": "^3.3.2",
+ "url-parse": "^1.4.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.11.3",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
+ "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "solr-node": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/solr-node/-/solr-node-1.2.1.tgz",
+ "integrity": "sha512-DN3+FSBgpJEgGTNddzS8tNb+ILSn5MLcsWf15G9rGxi/sROHbpcevdRSVx6s5/nz56c/5AnBTBZWak7IXWX97A==",
+ "requires": {
+ "@log4js-node/log4js-api": "^1.0.2",
+ "node-fetch": "^2.3.0",
+ "underscore": "^1.8.3"
+ },
+ "dependencies": {
+ "node-fetch": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
+ "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+ }
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ },
+ "source-map-resolve": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "requires": {
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.5.12",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
+ "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+ },
+ "sparse-bitfield": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+ "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
+ "optional": true,
+ "requires": {
+ "memory-pager": "^1.0.2"
+ }
+ },
+ "spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
+ },
+ "spdy": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz",
+ "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ }
+ }
+ },
+ "spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "requires": {
+ "through": "2"
+ }
+ },
+ "split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
+ },
+ "split-skip": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/split-skip/-/split-skip-0.0.2.tgz",
+ "integrity": "sha1-2J2Iu9L3Pka1FYqjcKVhIk6A1GE="
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "ssri": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "standard-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/standard-error/-/standard-error-1.1.0.tgz",
+ "integrity": "sha1-I+UWj6HAggGJ5YEnAaeQWFENDTQ="
+ },
+ "standard-http-error": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/standard-http-error/-/standard-http-error-2.0.1.tgz",
+ "integrity": "sha1-+K6RcuPO+cs40ucIShkl9Xp8NL0=",
+ "requires": {
+ "standard-error": ">= 1.1.0 < 2"
+ }
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ },
+ "stdout-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
+ },
+ "stopword": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/stopword/-/stopword-0.3.4.tgz",
+ "integrity": "sha512-aNjoiPJEBWBp/Qnes44I7FHWvsPVTQEuhFM1EgqwjZrTaCJDNkGoUHk0W6raBSVDbSszd3YXFB4W7IhGZ7ktrQ=="
+ },
+ "stream-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-combiner": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz",
+ "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=",
+ "requires": {
+ "duplexer": "~0.1.1",
+ "through": "~2.3.4"
+ }
+ },
+ "stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "stream-parser": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
+ "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=",
+ "requires": {
+ "debug": "2"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "dev": true
+ },
+ "strict-uri-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
+ "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
+ "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "stringify-parameters": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-parameters/-/stringify-parameters-0.0.4.tgz",
+ "integrity": "sha512-H3L90ERn5UPtkpO8eugnKcLgpIVlvTyUTrcLGm607AV5JDH6z0GymtNLr3gjGlP6I6NB/mxNX9QpY6jEQGLPdQ==",
+ "requires": {
+ "magicli": "0.0.5",
+ "unpack-string": "0.0.2"
+ },
+ "dependencies": {
+ "magicli": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/magicli/-/magicli-0.0.5.tgz",
+ "integrity": "sha1-zufQ+7THBRiqyxHsPrfiX/SaSSE=",
+ "requires": {
+ "commander": "^2.9.0",
+ "get-stdin": "^5.0.1",
+ "inspect-function": "^0.2.1",
+ "pipe-functions": "^1.2.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "requires": {
+ "get-stdin": "^4.0.1"
+ },
+ "dependencies": {
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+ }
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "style-loader": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
+ "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ },
+ "symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+ "dev": true
+ },
+ "table-layout": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz",
+ "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==",
+ "requires": {
+ "array-back": "^2.0.0",
+ "deep-extend": "~0.6.0",
+ "lodash.padend": "^4.6.1",
+ "typical": "^2.6.1",
+ "wordwrapjs": "^3.0.0"
+ }
+ },
+ "tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "dev": true
+ },
+ "tar": {
+ "version": "4.4.10",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz",
+ "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.3.5",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ }
+ },
+ "tar-fs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz",
+ "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp": "^0.5.1",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "tar-stream": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz",
+ "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==",
+ "requires": {
+ "bl": "^3.0.0",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "tensorflow-models": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tensorflow-models/-/tensorflow-models-0.0.1.tgz",
+ "integrity": "sha512-ze61MpdblYag2nldtnBpFwspH312yXvO9qB5i3006YHKzO9xABUHPlmRcIOnUsKIEqXf3qfXeuNAvccYJuvoxA=="
+ },
+ "term-size": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
+ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
+ "requires": {
+ "execa": "^0.7.0"
+ }
+ },
+ "terser": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.5.1.tgz",
+ "integrity": "sha512-lH9zLIbX8PRBEFCTvfHGCy0s9HEKnNso1Dx9swSopF3VUnFLB8DpQ61tHxoofovNC/sG0spajJM3EIIRSTByiQ==",
+ "dev": true,
+ "requires": {
+ "commander": "^2.20.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.12"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz",
+ "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==",
+ "dev": true,
+ "requires": {
+ "cacache": "^12.0.2",
+ "find-cache-dir": "^2.1.0",
+ "is-wsl": "^1.1.0",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^2.1.2",
+ "source-map": "^0.6.1",
+ "terser": "^4.1.2",
+ "webpack-sources": "^1.4.0",
+ "worker-farm": "^1.7.0"
+ },
+ "dependencies": {
+ "cacache": {
+ "version": "12.0.3",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
+ "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ }
+ },
+ "find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "requires": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "mississippi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+ "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^3.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "requires": {
+ "find-up": "^3.0.0"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "serialize-javascript": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz",
+ "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "ssri": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+ "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+ "dev": true,
+ "requires": {
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ }
+ }
+ },
+ "threads": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/threads/-/threads-0.8.1.tgz",
+ "integrity": "sha1-40ARW1lHMW0vfuMSPEwsW/nHbXI=",
+ "requires": {
+ "eventemitter3": "^2.0.2",
+ "native-promise-only": "^0.8.1"
+ }
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "thunky": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
+ "dev": true
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
+ },
+ "timers-browserify": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
+ "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
+ "dev": true,
+ "requires": {
+ "setimmediate": "^1.0.4"
+ }
+ },
+ "tinycolor2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz",
+ "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g="
+ },
+ "to-array": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
+ "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
+ },
+ "token-stream": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz",
+ "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo="
+ },
+ "touch": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
+ "requires": {
+ "nopt": "~1.0.10"
+ },
+ "dependencies": {
+ "nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
+ "requires": {
+ "abbrev": "1"
+ }
+ }
+ }
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ }
+ }
+ },
+ "tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "traverse-chain": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz",
+ "integrity": "sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE="
+ },
+ "tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "dev": true
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
+ },
+ "true-case-path": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+ "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+ "requires": {
+ "glob": "^7.1.2"
+ }
+ },
+ "ts-jest": {
+ "version": "24.3.0",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz",
+ "integrity": "sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ==",
+ "requires": {
+ "bs-logger": "0.x",
+ "buffer-from": "1.x",
+ "fast-json-stable-stringify": "2.x",
+ "json5": "2.x",
+ "lodash.memoize": "4.x",
+ "make-error": "1.x",
+ "mkdirp": "0.x",
+ "resolve": "1.x",
+ "semver": "^5.5",
+ "yargs-parser": "10.x"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
+ "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "yargs-parser": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
+ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ }
+ }
+ },
+ "ts-loader": {
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.4.5.tgz",
+ "integrity": "sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.3.0",
+ "enhanced-resolve": "^4.0.0",
+ "loader-utils": "^1.0.2",
+ "micromatch": "^3.1.4",
+ "semver": "^5.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "ts-node": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz",
+ "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.0",
+ "buffer-from": "^1.1.0",
+ "diff": "^3.1.0",
+ "make-error": "^1.1.1",
+ "minimist": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.5.6",
+ "yn": "^2.0.0"
+ },
+ "dependencies": {
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "ts-node-dev": {
+ "version": "1.0.0-pre.44",
+ "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-1.0.0-pre.44.tgz",
+ "integrity": "sha512-M5ZwvB6FU3jtc70i5lFth86/6Qj5XR5nMMBwVxZF4cZhpO7XcbWw6tbNiJo22Zx0KfjEj9py5DANhwLOkPPufw==",
+ "dev": true,
+ "requires": {
+ "dateformat": "~1.0.4-1.2.3",
+ "dynamic-dedupe": "^0.3.0",
+ "filewatcher": "~3.0.0",
+ "minimist": "^1.1.3",
+ "mkdirp": "^0.5.1",
+ "node-notifier": "^5.4.0",
+ "resolve": "^1.0.0",
+ "rimraf": "^2.6.1",
+ "source-map-support": "^0.5.12",
+ "tree-kill": "^1.2.1",
+ "ts-node": "*",
+ "tsconfig": "^7.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "tsconfig": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
+ "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==",
+ "dev": true,
+ "requires": {
+ "@types/strip-bom": "^3.0.0",
+ "@types/strip-json-comments": "0.0.30",
+ "strip-bom": "^3.0.0",
+ "strip-json-comments": "^2.0.0"
+ },
+ "dependencies": {
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
+ }
+ },
+ "tslib": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
+ "dev": true
+ },
+ "tslint": {
+ "version": "5.20.1",
+ "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz",
+ "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "builtin-modules": "^1.1.1",
+ "chalk": "^2.3.0",
+ "commander": "^2.12.1",
+ "diff": "^4.0.1",
+ "glob": "^7.1.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "resolve": "^1.3.2",
+ "semver": "^5.3.0",
+ "tslib": "^1.8.0",
+ "tsutils": "^2.29.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "diff": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
+ "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "tslint-loader": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/tslint-loader/-/tslint-loader-3.6.0.tgz",
+ "integrity": "sha512-Me9Qf/87BOfCY8uJJw+J7VMF4U8WiMXKLhKKKugMydF0xMhMOt9wo2mjYTNhwbF9H7SHh8PAIwRG8roisTNekQ==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "object-assign": "^4.1.1",
+ "rimraf": "^2.4.4",
+ "semver": "^5.3.0"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "tsscmp": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
+ "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="
+ },
+ "tsutils": {
+ "version": "2.29.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
+ "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ }
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "type": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
+ "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw=="
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "typescript": {
+ "version": "3.7.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz",
+ "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw=="
+ },
+ "typescript-collections": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/typescript-collections/-/typescript-collections-1.3.3.tgz",
+ "integrity": "sha512-7sI4e/bZijOzyURng88oOFZCISQPTHozfE2sUu5AviFYk5QV7fYGb6YiDl+vKjF/pICA354JImBImL9XJWUvdQ=="
+ },
+ "typical": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
+ "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0="
+ },
+ "ua-parser-js": {
+ "version": "0.7.20",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.20.tgz",
+ "integrity": "sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw=="
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "optional": true
+ },
+ "uid-safe": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
+ "requires": {
+ "random-bytes": "~1.0.0"
+ }
+ },
+ "uid2": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
+ "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I="
+ },
+ "uncontrollable": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-5.1.0.tgz",
+ "integrity": "sha512-5FXYaFANKaafg4IVZXUNtGyzsnYEvqlr9wQ3WpZxFpEUxl29A3H6Q4G1Dnnorvq9TGOGATBApWR4YpLAh+F5hw==",
+ "requires": {
+ "invariant": "^2.2.4"
+ }
+ },
+ "undefsafe": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz",
+ "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=",
+ "requires": {
+ "debug": "^2.2.0"
+ }
+ },
+ "underscore": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+ "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dev": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
+ "requires": {
+ "crypto-random-string": "^1.0.0"
+ }
+ },
+ "unpack-string": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/unpack-string/-/unpack-string-0.0.2.tgz",
+ "integrity": "sha1-MC7PCCOLATm9Q0pNf9Z83zPKJ10="
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+ }
+ }
+ },
+ "unzip-response": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
+ "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c="
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
+ },
+ "update-notifier": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
+ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
+ "requires": {
+ "boxen": "^1.2.1",
+ "chalk": "^2.0.1",
+ "configstore": "^3.0.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^1.0.10",
+ "is-installed-globally": "^0.1.0",
+ "is-npm": "^1.0.0",
+ "latest-version": "^3.0.0",
+ "semver-diff": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "url-loader": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz",
+ "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==",
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "mime": "^2.0.3",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+ "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "url-parse": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
+ "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
+ "dev": true,
+ "requires": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "requires": {
+ "prepend-http": "^1.0.1"
+ }
+ },
+ "url-template": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
+ "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE="
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+ },
+ "util": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ },
+ "v8-compile-cache": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz",
+ "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "validator": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz",
+ "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw=="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ }
+ }
+ },
+ "vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+ "dev": true
+ },
+ "void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+ "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
+ },
+ "w3c-hr-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
+ "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
+ "dev": true,
+ "requires": {
+ "browser-process-hrtime": "^0.1.2"
+ }
+ },
+ "w3c-keyname": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.2.tgz",
+ "integrity": "sha512-8Vs/aVwcy0IJACaPm4tyzh1fzehZE70bGSjEl3dDms5UXtWnaBElrSHC8lDDeak0Gk5jxKOFstL64/65o7Ge2A=="
+ },
+ "w3c-xmlserializer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz",
+ "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==",
+ "dev": true,
+ "requires": {
+ "domexception": "^1.0.1",
+ "webidl-conversions": "^4.0.2",
+ "xml-name-validator": "^3.0.0"
+ }
+ },
+ "warning": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "watchpack": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0"
+ }
+ },
+ "wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "dev": true,
+ "requires": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "webidl-conversions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
+ },
+ "webpack": {
+ "version": "4.41.5",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz",
+ "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/helper-module-context": "1.8.5",
+ "@webassemblyjs/wasm-edit": "1.8.5",
+ "@webassemblyjs/wasm-parser": "1.8.5",
+ "acorn": "^6.2.1",
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^4.1.0",
+ "eslint-scope": "^4.0.3",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^2.4.0",
+ "loader-utils": "^1.2.3",
+ "memory-fs": "^0.4.1",
+ "micromatch": "^3.1.10",
+ "mkdirp": "^0.5.1",
+ "neo-async": "^2.6.1",
+ "node-libs-browser": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "tapable": "^1.1.3",
+ "terser-webpack-plugin": "^1.4.3",
+ "watchpack": "^1.6.0",
+ "webpack-sources": "^1.4.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz",
+ "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "webpack-cli": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz",
+ "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.2",
+ "cross-spawn": "6.0.5",
+ "enhanced-resolve": "4.1.0",
+ "findup-sync": "3.0.0",
+ "global-modules": "2.0.0",
+ "import-local": "2.0.0",
+ "interpret": "1.2.0",
+ "loader-utils": "1.2.3",
+ "supports-color": "6.1.0",
+ "v8-compile-cache": "2.0.3",
+ "yargs": "13.2.4"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "lcid": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.2.4",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz",
+ "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==",
+ "dev": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "os-locale": "^3.1.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz",
+ "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==",
+ "dev": true,
+ "requires": {
+ "memory-fs": "^0.4.1",
+ "mime": "^2.4.4",
+ "mkdirp": "^0.5.1",
+ "range-parser": "^1.2.1",
+ "webpack-log": "^2.0.0"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
+ "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
+ "dev": true
+ },
+ "webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ }
+ }
+ }
+ },
+ "webpack-dev-server": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz",
+ "integrity": "sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA==",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "bonjour": "^3.5.0",
+ "chokidar": "^2.1.8",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^1.6.0",
+ "debug": "^4.1.1",
+ "del": "^4.1.1",
+ "express": "^4.17.1",
+ "html-entities": "^1.2.1",
+ "http-proxy-middleware": "0.19.1",
+ "import-local": "^2.0.0",
+ "internal-ip": "^4.3.0",
+ "ip": "^1.1.5",
+ "is-absolute-url": "^3.0.3",
+ "killable": "^1.0.1",
+ "loglevel": "^1.6.6",
+ "opn": "^5.5.0",
+ "p-retry": "^3.0.1",
+ "portfinder": "^1.0.25",
+ "schema-utils": "^1.0.0",
+ "selfsigned": "^1.10.7",
+ "semver": "^6.3.0",
+ "serve-index": "^1.9.1",
+ "sockjs": "0.3.19",
+ "sockjs-client": "1.4.0",
+ "spdy": "^4.0.1",
+ "strip-ansi": "^3.0.1",
+ "supports-color": "^6.1.0",
+ "url": "^0.11.0",
+ "webpack-dev-middleware": "^3.7.2",
+ "webpack-log": "^2.0.0",
+ "ws": "^6.2.1",
+ "yargs": "12.0.5"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "lcid": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "loglevel": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz",
+ "integrity": "sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+ "dev": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "ws": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+ "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "yargs": {
+ "version": "12.0.5",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
+ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^3.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1 || ^4.0.0",
+ "yargs-parser": "^11.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
+ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "webpack-hot-middleware": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz",
+ "integrity": "sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "html-entities": "^1.2.0",
+ "querystring": "^0.2.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "webpack-log": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz",
+ "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.1.0",
+ "log-symbols": "^2.1.0",
+ "loglevelnext": "^1.0.1",
+ "uuid": "^3.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+ "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "websocket": {
+ "version": "1.0.31",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz",
+ "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==",
+ "requires": {
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "nan": "^2.14.0",
+ "typedarray-to-buffer": "^3.1.5",
+ "yaeti": "^0.0.6"
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz",
+ "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==",
+ "dev": true,
+ "requires": {
+ "http-parser-js": ">=0.4.0 <0.4.11",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+ "dev": true
+ },
+ "whatwg-encoding": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+ "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+ "dev": true,
+ "requires": {
+ "iconv-lite": "0.4.24"
+ }
+ },
+ "whatwg-fetch": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
+ "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q=="
+ },
+ "whatwg-mimetype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
+ "dev": true
+ },
+ "whatwg-url": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+ "dev": true,
+ "requires": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
+ },
+ "which-pm-runs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
+ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs="
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "widest-line": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
+ "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
+ "requires": {
+ "string-width": "^2.1.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "wikijs": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/wikijs/-/wikijs-6.0.1.tgz",
+ "integrity": "sha512-67ZtXyVPspYM5/B5ci0NIwvPJyG23HPk33QQLgLbCcORQ6N0I3Mhxd/KsPRh3xyly87KDs/bh1xuIG6PVTCKGw==",
+ "requires": {
+ "cheerio": "^1.0.0-rc.3",
+ "cross-fetch": "^3.0.2",
+ "infobox-parser": "3.3.1"
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
+ },
+ "with": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz",
+ "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=",
+ "requires": {
+ "acorn": "^3.1.0",
+ "acorn-globals": "^3.0.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
+ }
+ }
+ },
+ "word-extractor": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/word-extractor/-/word-extractor-0.3.0.tgz",
+ "integrity": "sha512-gFRsCojw2sijgoHXAa11b9K2OeEvajw4iQp89doDlseVYklR56Z22AlzDKeP1bo4N5wT/AJWptbcPQPstXVlsQ==",
+ "requires": {
+ "async": "^1.5.2",
+ "event-stream": "^3.3.4",
+ "underscore": "^1.8.3"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ }
+ }
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
+ "words-to-numbers": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/words-to-numbers/-/words-to-numbers-1.5.1.tgz",
+ "integrity": "sha512-uvz7zSCKmmA7o5f5zp4Z5l24RQhy6HSNu10URhNxQWv1I82RsFaZX3qD07RLFUMJsCV38oAuaca13AvhO+9yGw==",
+ "requires": {
+ "babel-runtime": "6.x.x",
+ "clj-fuzzy": "^0.3.2",
+ "its-set": "^1.1.5"
+ }
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
+ },
+ "wordwrapjs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
+ "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
+ "requires": {
+ "reduce-flatten": "^1.0.1",
+ "typical": "^2.6.1"
+ }
+ },
+ "worker-farm": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+ "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.7"
+ }
+ },
+ "worker-loader": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz",
+ "integrity": "sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==",
+ "requires": {
+ "loader-utils": "^1.0.0",
+ "schema-utils": "^0.4.0"
+ }
+ },
+ "worker-rpc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz",
+ "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==",
+ "dev": true,
+ "requires": {
+ "microevent.ts": "~0.1.1"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ws": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz",
+ "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A=="
+ },
+ "xdg-basedir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ="
+ },
+ "xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
+ "dev": true
+ },
+ "xml2js": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.1.9.tgz",
+ "integrity": "sha1-wm/Qgm4Bor5xEHSKNPD4OFvkWfE=",
+ "requires": {
+ "sax": ">=0.1.1"
+ }
+ },
+ "xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+ "dev": true
+ },
+ "xmlhttprequest-ssl": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
+ "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
+ },
+ "xoauth2": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/xoauth2/-/xoauth2-1.2.0.tgz",
+ "integrity": "sha1-8u76wRRyyXHqO8RuVU60sSMhRuU="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+ },
+ "yaeti": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
+ "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc="
+ },
+ "yallist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
+ },
+ "yaml": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz",
+ "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==",
+ "requires": {
+ "@babel/runtime": "^7.6.3"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.7.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.6.tgz",
+ "integrity": "sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw==",
+ "requires": {
+ "regenerator-runtime": "^0.13.2"
+ }
+ }
+ }
+ },
+ "yargs": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+ "requires": {
+ "camelcase": "^3.0.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.2",
+ "which-module": "^1.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^5.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
+ },
+ "yargs-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+ "requires": {
+ "camelcase": "^3.0.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ },
+ "yargs-unparser": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
+ "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
+ "requires": {
+ "flat": "^4.1.0",
+ "lodash": "^4.17.15",
+ "yargs": "^13.3.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+ },
+ "yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
+ "yeast": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
+ "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
+ },
+ "yn": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
+ "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
+ "dev": true
+ },
+ "youtube": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/youtube/-/youtube-0.1.0.tgz",
+ "integrity": "sha1-lrAetv9uhdpQX7KcyM9jt9KD2ZU=",
+ "requires": {
+ "mime": "1.2.2",
+ "qs": "0.4.2",
+ "request": "2.1.1",
+ "xml2js": "0.1.9"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.2.tgz",
+ "integrity": "sha1-udY1W/U+jX1WaTEw5FHa/zQBSM8="
+ },
+ "qs": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz",
+ "integrity": "sha1-PKxMhh43GoycR3CsI82o3mObjl8="
+ },
+ "request": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.1.1.tgz",
+ "integrity": "sha1-VXDgxzfWVuvW0dPICqUQ08+Gxvo="
+ }
+ }
+ },
+ "zip-stream": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.2.tgz",
+ "integrity": "sha512-ykebHGa2+uzth/R4HZLkZh3XFJzivhVsjJt8bN3GvBzLaqqrUdRacu+c4QtnUgjkkQfsOuNE1JgLKMCPNmkKgg==",
+ "requires": {
+ "archiver-utils": "^2.1.0",
+ "compress-commons": "^2.1.1",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
+ "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index d41119a47..4c693757b 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"child_process": "empty"
},
"scripts": {
+ "start-release": "cross-env RELEASE=true NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev -- src/server/index.ts",
"start": "cross-env NODE_OPTIONS=--max_old_space_size=4096 ts-node-dev -- src/server/index.ts",
"debug": "cross-env NODE_OPTIONS=--max_old_space_size=8192 ts-node-dev --inspect -- src/server/index.ts",
"build": "cross-env NODE_OPTIONS=--max_old_space_size=8192 webpack --env production",
@@ -17,84 +18,84 @@
"tsc": "tsc"
},
"devDependencies": {
- "@types/chai": "^4.1.7",
+ "@types/chai": "^4.2.7",
"@types/mocha": "^5.2.6",
- "@types/react-dom": "^16.8.2",
+ "@types/react-dom": "^16.9.5",
"@types/webpack-dev-middleware": "^2.0.2",
- "@types/webpack-hot-middleware": "^2.16.4",
+ "@types/webpack-hot-middleware": "^2.25.0",
"awesome-typescript-loader": "^5.2.1",
"chai": "^4.2.0",
"copy-webpack-plugin": "^4.6.0",
- "cross-env": "^5.2.0",
+ "cross-env": "^5.2.1",
"css-loader": "^2.1.1",
"file-loader": "^3.0.1",
- "fork-ts-checker-webpack-plugin": "^1.0.2",
- "jsdom": "^15.1.1",
+ "fork-ts-checker-webpack-plugin": "^1.6.0",
+ "jsdom": "^15.2.1",
"mocha": "^5.2.0",
- "sass-loader": "^7.1.0",
+ "sass-loader": "^7.3.1",
"scss-loader": "0.0.1",
"style-loader": "^0.23.1",
"ts-loader": "^5.3.3",
"ts-node": "^7.0.1",
- "ts-node-dev": "^1.0.0-pre.32",
- "tslint": "^5.15.0",
- "tslint-loader": "^3.5.4",
- "typescript": "^3.7.2",
- "webpack": "^4.29.6",
- "webpack-cli": "^3.2.3",
- "webpack-dev-middleware": "^3.6.1",
- "webpack-dev-server": "^3.3.1",
+ "ts-node-dev": "^1.0.0-pre.44",
+ "tslint": "^5.20.1",
+ "tslint-loader": "^3.6.0",
+ "typescript": "^3.7.5",
+ "webpack": "^4.41.5",
+ "webpack-cli": "^3.3.10",
+ "webpack-dev-middleware": "^3.7.2",
+ "webpack-dev-server": "^3.10.1",
"webpack-hot-middleware": "^2.24.3"
},
"dependencies": {
"@fortawesome/fontawesome-free-solid": "^5.0.13",
- "@fortawesome/fontawesome-svg-core": "^1.2.15",
- "@fortawesome/free-brands-svg-icons": "^5.9.0",
- "@fortawesome/free-regular-svg-icons": "^5.9.0",
- "@fortawesome/free-solid-svg-icons": "^5.7.2",
- "@fortawesome/react-fontawesome": "^0.1.4",
- "@hig/flyout": "^1.0.3",
+ "@fortawesome/fontawesome-svg-core": "^1.2.26",
+ "@fortawesome/free-brands-svg-icons": "^5.12.0",
+ "@fortawesome/free-regular-svg-icons": "^5.12.0",
+ "@fortawesome/free-solid-svg-icons": "^5.12.0",
+ "@fortawesome/react-fontawesome": "^0.1.8",
+ "@hig/flyout": "^1.2.0",
"@hig/theme-context": "^2.1.3",
- "@hig/theme-data": "^2.3.3",
- "@tensorflow-models/universal-sentence-encoder": "^1.2.0",
+ "@hig/theme-data": "^2.13.0",
+ "@tensorflow-models/universal-sentence-encoder": "^1.2.2",
"@tensorflow/tfjs-converter": "^1.3.2",
- "@tensorflow/tfjs-core": "^1.3.1",
- "@tensorflow/tfjs-node": "1.3.1",
+ "@tensorflow/tfjs-core": "^1.5.2",
+ "@tensorflow/tfjs-node": "^1.5.2",
"@trendmicro/react-dropdown": "^1.3.0",
"@types/adm-zip": "^0.4.32",
"@types/animejs": "^2.0.2",
"@types/archiver": "^3.0.0",
"@types/async": "^2.4.1",
"@types/bcrypt-nodejs": "0.0.30",
- "@types/bluebird": "^3.5.25",
- "@types/body-parser": "^1.17.0",
+ "@types/bluebird": "^3.5.29",
+ "@types/body-parser": "^1.17.1",
"@types/classnames": "^2.2.8",
- "@types/color": "^3.0.0",
+ "@types/color": "^3.0.1",
"@types/connect-flash": "0.0.34",
- "@types/cookie-parser": "^1.4.1",
+ "@types/cookie-parser": "^1.4.2",
"@types/cookie-session": "^2.0.36",
"@types/d3-format": "^1.3.1",
"@types/dotenv": "^6.1.1",
"@types/exif": "^0.6.0",
- "@types/express": "^4.16.1",
+ "@types/express": "^4.17.2",
"@types/express-flash": "0.0.0",
- "@types/express-session": "^1.15.12",
+ "@types/express-session": "^1.15.16",
"@types/express-validator": "^3.0.0",
"@types/formidable": "^1.0.31",
"@types/gapi": "0.0.39",
- "@types/jquery": "^3.3.29",
+ "@types/jquery": "^3.3.31",
"@types/jquery-awesome-cursor": "^0.3.0",
- "@types/jsonwebtoken": "^8.3.2",
- "@types/lodash": "^4.14.121",
+ "@types/jsonwebtoken": "^8.3.7",
+ "@types/lodash": "^4.14.149",
"@types/mobile-detect": "^1.3.4",
- "@types/mongodb": "^3.1.22",
- "@types/mongoose": "^5.5.8",
- "@types/node": "^10.12.30",
+ "@types/mongodb": "^3.3.14",
+ "@types/mongoose": "^5.5.43",
+ "@types/node": "^10.17.13",
"@types/nodemailer": "^4.6.6",
- "@types/passport": "^1.0.0",
- "@types/passport-google-oauth20": "^2.0.2",
+ "@types/passport": "^1.0.2",
+ "@types/passport-google-oauth20": "^2.0.3",
"@types/passport-local": "^1.0.33",
- "@types/pdfjs-dist": "^2.0.0",
+ "@types/pdfjs-dist": "^2.1.3",
"@types/prosemirror-commands": "^1.0.1",
"@types/prosemirror-history": "^1.0.1",
"@types/prosemirror-inputrules": "^1.0.2",
@@ -104,50 +105,54 @@
"@types/prosemirror-schema-basic": "^1.0.1",
"@types/prosemirror-schema-list": "^1.0.1",
"@types/prosemirror-state": "^1.2.3",
- "@types/prosemirror-transform": "^1.1.0",
- "@types/prosemirror-view": "^1.3.1",
+ "@types/prosemirror-transform": "^1.1.1",
+ "@types/prosemirror-view": "^1.11.2",
"@types/pug": "^2.0.4",
- "@types/rc-switch": "^1.8.0",
- "@types/react": "^16.8.7",
- "@types/react-autosuggest": "^9.3.9",
- "@types/react-color": "^2.14.1",
- "@types/react-measure": "^2.0.4",
- "@types/react-table": "^6.7.22",
- "@types/request": "^2.48.1",
- "@types/request-promise": "^4.1.42",
- "@types/sharp": "^0.22.2",
- "@types/shelljs": "^0.8.5",
- "@types/socket.io": "^2.1.2",
+ "@types/rc-switch": "^1.9.0",
+ "@types/react": "^16.9.19",
+ "@types/react-autosuggest": "^9.3.13",
+ "@types/react-color": "^2.17.3",
+ "@types/react-measure": "^2.0.6",
+ "@types/react-table": "^6.8.6",
+ "@types/request": "^2.48.4",
+ "@types/request-promise": "^4.1.45",
+ "@types/rimraf": "^2.0.3",
+ "@types/sharp": "^0.23.1",
+ "@types/shelljs": "^0.8.6",
+ "@types/socket.io": "^2.1.4",
"@types/socket.io-client": "^1.4.32",
"@types/typescript": "^2.0.0",
- "@types/uuid": "^3.4.4",
- "@types/webpack": "^4.4.25",
+ "@types/uuid": "^3.4.6",
+ "@types/webpack": "^4.41.3",
+ "@types/word-extractor": "^0.3.0",
"@types/youtube": "0.0.38",
"adm-zip": "^0.4.13",
- "archiver": "^3.0.3",
- "array-batcher": "^1.1.3",
+ "archiver": "^3.1.1",
+ "array-batcher": "^1.2.3",
"arxiv-api-node": "0.0.2",
"async": "^2.6.2",
"babel-runtime": "^6.26.0",
"bcrypt-nodejs": "0.0.3",
- "bluebird": "^3.5.3",
+ "bluebird": "^3.7.2",
"body-parser": "^1.18.3",
- "bootstrap": "^4.3.1",
+ "bootstrap": "^4.4.1",
"canvas": "^2.5.0",
"child_process": "^1.0.2",
"class-transformer": "^0.2.0",
"color": "^3.1.2",
+ "colors": "^1.4.0",
"connect-flash": "^0.1.1",
"connect-mongo": "^2.0.3",
"cookie-parser": "^1.4.4",
- "cookie-session": "^2.0.0-beta.3",
+ "cookie-session": "^2.0.0-rc.1",
+ "cors": "^2.8.5",
"crypto-browserify": "^3.11.0",
- "d3-format": "^1.3.2",
- "dotenv": "^8.0.0",
+ "d3-format": "^1.4.3",
+ "dotenv": "^8.2.0",
"exif": "^0.6.0",
"express": "^4.16.4",
"express-flash": "0.0.2",
- "express-session": "^1.15.6",
+ "express-session": "^1.17.0",
"express-validator": "^5.3.1",
"expressjs": "^1.0.1",
"feedparser": "^2.2.9",
@@ -158,87 +163,92 @@
"golden-layout": "^1.5.9",
"google-auth-library": "^4.2.4",
"googleapis": "^40.0.0",
- "googlephotos": "^0.2.1",
- "howler": "^2.1.2",
+ "googlephotos": "^0.2.5",
+ "howler": "^2.1.3",
"html-to-image": "^0.1.0",
"i": "^0.3.6",
- "ibm-watson": "^5.1.0",
- "image-data-uri": "^2.0.0",
- "image-size": "^0.7.4",
+ "ibm-watson": "^5.3.1",
+ "image-data-uri": "^2.0.1",
+ "image-size": "^0.7.5",
"imagesloaded": "^4.1.4",
"jquery-awesome-cursor": "^0.3.1",
"js-datepicker": "^4.6.6",
+ "jsonschema": "^1.2.5",
"jsonwebtoken": "^8.5.0",
"jsx-to-string": "^1.4.0",
"lodash": "^4.17.15",
- "mobile-detect": "^1.4.3",
- "mobx": "^5.9.0",
+ "mobile-detect": "^1.4.4",
+ "mobx": "^5.15.3",
"mobx-react": "^5.3.5",
"mobx-react-devtools": "^6.1.1",
- "mobx-utils": "^5.4.0",
- "mongodb": "^3.1.13",
- "mongodb-extjson": "^3.0.3",
- "mongoose": "^5.6.4",
- "node-pre-gyp": "^0.13.0",
- "node-sass": "^4.12.0",
+ "mobx-utils": "^5.5.3",
+ "mongodb": "^3.5.2",
+ "mongoose": "^5.8.9",
+ "node-sass": "^4.13.1",
+ "node-stream-zip": "^1.9.1",
+ "node-tesseract": "^0.2.7",
+ "node-tesseract-ocr": "^1.0.0",
"nodemailer": "^5.1.1",
- "nodemon": "^1.18.10",
+ "nodemon": "^1.19.4",
"normalize.css": "^8.0.1",
- "npm": "^6.12.0",
+ "npm": "^6.13.6",
"p-limit": "^2.2.0",
"passport": "^0.4.0",
"passport-google-oauth20": "^2.0.0",
"passport-local": "^1.0.0",
"pdf-parse": "^1.1.1",
- "pdfjs-dist": "^2.0.943",
+ "pdfjs-dist": "^2.3.200",
"probe-image-size": "^4.0.0",
- "prosemirror-commands": "^1.0.8",
- "prosemirror-example-setup": "^1.0.1",
+ "prosemirror-commands": "^1.1.3",
+ "prosemirror-example-setup": "^1.1.2",
"prosemirror-find-replace": "^0.9.0",
- "prosemirror-history": "^1.0.4",
- "prosemirror-keymap": "^1.0.1",
- "prosemirror-model": "^1.7.2",
- "prosemirror-schema-basic": "^1.0.1",
- "prosemirror-schema-list": "^1.0.3",
- "prosemirror-state": "^1.2.4",
- "prosemirror-transform": "^1.1.4",
- "prosemirror-view": "^1.10.3",
+ "prosemirror-history": "^1.1.3",
+ "prosemirror-keymap": "^1.1.3",
+ "prosemirror-model": "^1.9.1",
+ "prosemirror-schema-basic": "^1.1.2",
+ "prosemirror-schema-list": "^1.1.2",
+ "prosemirror-state": "^1.3.2",
+ "prosemirror-transform": "^1.2.3",
+ "prosemirror-view": "^1.13.8",
"pug": "^2.0.3",
- "query-string": "^6.8.1",
+ "query-string": "^6.10.1",
"raw-loader": "^1.0.0",
"rc-switch": "^1.9.0",
- "react": "^16.8.4",
- "react-anime": "^2.2.0",
+ "react": "^16.12.0",
+ "react-anime": "^2.3.2",
"react-autosuggest": "^9.4.3",
- "react-bootstrap": "^1.0.0-beta.5",
+ "react-bootstrap": "^1.0.0-beta.16",
"react-bootstrap-dropdown-menu": "^1.1.15",
- "react-color": "^2.17.0",
+ "react-color": "^2.18.0",
"react-dimensions": "^1.3.1",
- "react-dom": "^16.8.4",
+ "react-dom": "^16.12.0",
"react-golden-layout": "^1.0.6",
"react-image-lightbox-with-rotate": "^5.1.1",
- "react-jsx-parser": "^1.15.0",
+ "react-jsx-parser": "^1.21.0",
"react-measure": "^2.2.4",
"react-mosaic": "0.0.20",
"react-simple-dropdown": "^3.2.3",
- "react-split-pane": "^0.1.85",
- "react-table": "^6.10.3",
+ "react-split-pane": "^0.1.89",
+ "react-table": "^6.11.5",
"readline": "^1.3.0",
"request": "^2.88.0",
- "request-promise": "^4.2.4",
- "serializr": "^1.5.1",
- "sharp": "^0.22.1",
+ "request-promise": "^4.2.5",
+ "resilient-server-session": "^1.1.2",
+ "rimraf": "^3.0.0",
+ "serializr": "^1.5.4",
+ "sharp": "^0.23.4",
"shelljs": "^0.8.3",
- "socket.io": "^2.2.0",
- "socket.io-client": "^2.2.0",
+ "socket.io": "^2.3.0",
+ "socket.io-client": "^2.3.0",
"solr-node": "^1.2.1",
"standard-http-error": "^2.0.1",
"stopword": "^0.3.3",
- "typescript-collections": "^1.3.2",
+ "tensorflow-models": "0.0.1",
+ "typescript-collections": "^1.3.3",
"url-loader": "^1.1.2",
- "uuid": "^3.3.2",
+ "uuid": "^3.4.0",
"wikijs": "^6.0.1",
- "word2vec": "^1.1.4",
+ "word-extractor": "^0.3.0",
"words-to-numbers": "^1.5.1",
"xoauth2": "^1.2.0",
"youtube": "^0.1.0"
diff --git a/savedLog.txt b/savedLog.txt
deleted file mode 100644
index 5b7c5b2d3..000000000
--- a/savedLog.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Incoming : a1158484-13d0-4861-b873-b9d33f476338, receiving Set Field with data {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":0}
-calling update on data {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":0}
-called update on data {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":0}
-Incoming : a1158484-13d0-4861-b873-b9d33f476338, receiving Set Field with data {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":1}
-calling update on data {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":1}
-called update on data {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":1}
-{"n":1,"nModified":0,"upserted":[{"index":0,"_id":"a1158484-13d0-4861-b873-b9d33f476338"}],"ok":1}
-Wrote {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":1}
-Broadcast : a1158484-13d0-4861-b873-b9d33f476338, sending data {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":1}
-Wrote {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":0}
-Broadcast : a1158484-13d0-4861-b873-b9d33f476338, sending data {"_id":"a1158484-13d0-4861-b873-b9d33f476338","type":0,"data":0}
-S sending : a1158484-13d0-4861-b873-b9d33f476338, receiving Get Field with data {"_id":"a1158484-13d0-4861-b873-b9d33f476338","data":0,"type":0}
-
diff --git a/session.config.json b/session.config.json
new file mode 100644
index 000000000..b2c45a0fc
--- /dev/null
+++ b/session.config.json
@@ -0,0 +1,12 @@
+{
+ "showServerOutput": false,
+ "ports": {
+ "server": 1050,
+ "socket": 4321
+ },
+ "polling": {
+ "route": "/serverHeartbeat",
+ "intervalSeconds": 15,
+ "failureTolerance": 0
+ }
+}
diff --git a/solr-8.1.1/contrib/clustering/lib/simple-xml-2.7.1.jar b/solr-8.1.1/contrib/clustering/lib/simple-xml-2.7.1.jar
deleted file mode 100644
index ede93e644..000000000
--- a/solr-8.1.1/contrib/clustering/lib/simple-xml-2.7.1.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/dataimport.properties b/solr-8.1.1/example/example-DIH/solr/db/conf/dataimport.properties
deleted file mode 100644
index adecffcad..000000000
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/dataimport.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Feb 06 07:58:28 UTC 2017
-item.last_index_time=2017-02-06 07\:58\:28
-last_index_time=2017-02-06 07\:58\:28
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/dataimport.properties b/solr-8.1.1/example/example-DIH/solr/solr/conf/dataimport.properties
deleted file mode 100644
index 80b390f1c..000000000
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/dataimport.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 31 09:48:27 UTC 2017
-last_index_time=2017-01-31 09\:48\:26
-sep.last_index_time=2017-01-31 09\:48\:26
diff --git a/solr-8.1.1/example/exampledocs/post.jar b/solr-8.1.1/example/exampledocs/post.jar
deleted file mode 100644
index bdb55c1ae..000000000
--- a/solr-8.1.1/example/exampledocs/post.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/licenses/asciidoctor-ant-1.6.0-alpha.5.jar.sha1 b/solr-8.1.1/licenses/asciidoctor-ant-1.6.0-alpha.5.jar.sha1
deleted file mode 100644
index 0da9ca2b1..000000000
--- a/solr-8.1.1/licenses/asciidoctor-ant-1.6.0-alpha.5.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-741c5e5afd8a2c7d415feb7b9a8d6fe8a6cca57c
diff --git a/solr-8.1.1/licenses/caffeine-2.4.0.jar.sha1 b/solr-8.1.1/licenses/caffeine-2.4.0.jar.sha1
deleted file mode 100644
index 9c317d927..000000000
--- a/solr-8.1.1/licenses/caffeine-2.4.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5aa8bbb851b1ad403cc140094ba4a25998369efe
diff --git a/solr-8.1.1/licenses/commons-beanutils-1.9.3.jar.sha1 b/solr-8.1.1/licenses/commons-beanutils-1.9.3.jar.sha1
deleted file mode 100644
index da389e597..000000000
--- a/solr-8.1.1/licenses/commons-beanutils-1.9.3.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-c845703de334ddc6b4b3cd26835458cb1cba1f3d
diff --git a/solr-8.1.1/licenses/http2-client-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/http2-client-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index f2792c491..000000000
--- a/solr-8.1.1/licenses/http2-client-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-78917d06b788fad75fdd4fa73d8d8ff9679200dd
diff --git a/solr-8.1.1/licenses/http2-common-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/http2-common-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index dd687dd95..000000000
--- a/solr-8.1.1/licenses/http2-common-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-820ca2201ad531983cc3a8e2a82153268828d025
diff --git a/solr-8.1.1/licenses/http2-hpack-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/http2-hpack-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 755beb476..000000000
--- a/solr-8.1.1/licenses/http2-hpack-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e6cc7ae5b5749afe8b787595b28c6813c13c3ac2
diff --git a/solr-8.1.1/licenses/http2-http-client-transport-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/http2-http-client-transport-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index d71330cbe..000000000
--- a/solr-8.1.1/licenses/http2-http-client-transport-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-77139eb205d3ddb2d19458c534c734f11491a429
diff --git a/solr-8.1.1/licenses/http2-server-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/http2-server-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index f3b32acb8..000000000
--- a/solr-8.1.1/licenses/http2-server-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-a2ce60a90cbf4db91240bb585733e33b1a55110f
diff --git a/solr-8.1.1/licenses/jackson-annotations-2.9.8.jar.sha1 b/solr-8.1.1/licenses/jackson-annotations-2.9.8.jar.sha1
deleted file mode 100644
index 64b57a832..000000000
--- a/solr-8.1.1/licenses/jackson-annotations-2.9.8.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ba7f0e6f8f1b28d251eeff2a5604bed34c53ff35
diff --git a/solr-8.1.1/licenses/jackson-core-2.9.8.jar.sha1 b/solr-8.1.1/licenses/jackson-core-2.9.8.jar.sha1
deleted file mode 100644
index 7634344bc..000000000
--- a/solr-8.1.1/licenses/jackson-core-2.9.8.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-0f5a654e4675769c716e5b387830d19b501ca191
diff --git a/solr-8.1.1/licenses/jackson-databind-2.9.8.jar.sha1 b/solr-8.1.1/licenses/jackson-databind-2.9.8.jar.sha1
deleted file mode 100644
index 3319cf302..000000000
--- a/solr-8.1.1/licenses/jackson-databind-2.9.8.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-11283f21cc480aa86c4df7a0a3243ec508372ed2
diff --git a/solr-8.1.1/licenses/jackson-dataformat-smile-2.9.8.jar.sha1 b/solr-8.1.1/licenses/jackson-dataformat-smile-2.9.8.jar.sha1
deleted file mode 100644
index a4787c06b..000000000
--- a/solr-8.1.1/licenses/jackson-dataformat-smile-2.9.8.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-dbb47a052ac2b249ae004ce32e1e0c8bd8ee526c
diff --git a/solr-8.1.1/licenses/jetty-alpn-client-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-alpn-client-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 5b09025d5..000000000
--- a/solr-8.1.1/licenses/jetty-alpn-client-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-c567eba368e70a0a9aaded14a554a3b25a0a502e
diff --git a/solr-8.1.1/licenses/jetty-alpn-java-client-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-alpn-java-client-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index ddd5f76b1..000000000
--- a/solr-8.1.1/licenses/jetty-alpn-java-client-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f093d00fc7112bdf471efdd5d909eb9296b3d30d
diff --git a/solr-8.1.1/licenses/jetty-alpn-java-server-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-alpn-java-server-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 327c6e231..000000000
--- a/solr-8.1.1/licenses/jetty-alpn-java-server-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-686cc093a08a2ed2bc2bed059117997c8c760262
diff --git a/solr-8.1.1/licenses/jetty-alpn-server-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-alpn-server-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 1b16a3627..000000000
--- a/solr-8.1.1/licenses/jetty-alpn-server-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5aa0ca49c6f7cdd4c2c8a628620dc125162213ca
diff --git a/solr-8.1.1/licenses/jetty-client-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-client-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 9fd6a1707..000000000
--- a/solr-8.1.1/licenses/jetty-client-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1c46b088e1119928d54ff704fe38fe1b6b6700d0
diff --git a/solr-8.1.1/licenses/jetty-continuation-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-continuation-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 0d9db3a3e..000000000
--- a/solr-8.1.1/licenses/jetty-continuation-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ac4981a61bcaf4e2538de6270300a870224a16b8
diff --git a/solr-8.1.1/licenses/jetty-deploy-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-deploy-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index bdc13e2b7..000000000
--- a/solr-8.1.1/licenses/jetty-deploy-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-db0e01f00c1d11fbf2dfa72a1707b7ac9859c943
diff --git a/solr-8.1.1/licenses/jetty-http-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-http-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 5e72e348a..000000000
--- a/solr-8.1.1/licenses/jetty-http-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-6d0c8ac42e9894ae7b5032438eb4579c2a47f4fe
diff --git a/solr-8.1.1/licenses/jetty-io-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-io-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index f3acf8544..000000000
--- a/solr-8.1.1/licenses/jetty-io-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-a8c6a705ddb9f83a75777d89b0be59fcef3f7637
diff --git a/solr-8.1.1/licenses/jetty-jmx-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-jmx-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 44b8ffcff..000000000
--- a/solr-8.1.1/licenses/jetty-jmx-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3e02463d2bff175a3231cd3dc26363eaf76a3b17
diff --git a/solr-8.1.1/licenses/jetty-rewrite-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-rewrite-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 636b338b8..000000000
--- a/solr-8.1.1/licenses/jetty-rewrite-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-eb300aa639175741839b25a5109772bcc71a586a
diff --git a/solr-8.1.1/licenses/jetty-security-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-security-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 64e092033..000000000
--- a/solr-8.1.1/licenses/jetty-security-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-6cbeb2fe9b3cc4f88a7ea040b8a0c4f703cd72ce
diff --git a/solr-8.1.1/licenses/jetty-server-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-server-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 182b5c5cc..000000000
--- a/solr-8.1.1/licenses/jetty-server-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b36a3d52d78a1df6406f6fa236a6eeff48cbfef6
diff --git a/solr-8.1.1/licenses/jetty-servlet-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-servlet-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index d1576d3a1..000000000
--- a/solr-8.1.1/licenses/jetty-servlet-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-96f501462af425190ff7b63e387692c1aa3af2c8
diff --git a/solr-8.1.1/licenses/jetty-servlets-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-servlets-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 7fec6af68..000000000
--- a/solr-8.1.1/licenses/jetty-servlets-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-38cfc07b53e5d285bb2fca78bb2531565ed9c9e5
diff --git a/solr-8.1.1/licenses/jetty-util-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-util-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index ffced6999..000000000
--- a/solr-8.1.1/licenses/jetty-util-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5bb3d7a38f7ea54138336591d89dd5867b806c02
diff --git a/solr-8.1.1/licenses/jetty-webapp-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-webapp-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index 1e774f36c..000000000
--- a/solr-8.1.1/licenses/jetty-webapp-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-0088a04172b5e7736bc3e95eb58623aa9ccdb475
diff --git a/solr-8.1.1/licenses/jetty-xml-9.4.14.v20181114.jar.sha1 b/solr-8.1.1/licenses/jetty-xml-9.4.14.v20181114.jar.sha1
deleted file mode 100644
index ee136319b..000000000
--- a/solr-8.1.1/licenses/jetty-xml-9.4.14.v20181114.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-65cd197bc8082a1007130c8b644cea7938133568
diff --git a/solr-8.1.1/licenses/netty-all-4.0.52.Final.jar.sha1 b/solr-8.1.1/licenses/netty-all-4.0.52.Final.jar.sha1
deleted file mode 100644
index c95a6c896..000000000
--- a/solr-8.1.1/licenses/netty-all-4.0.52.Final.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-6adde4fa5e7b8ff8a25500a66b369a110a047862
diff --git a/solr-8.1.1/licenses/noggit-0.8.jar.sha1 b/solr-8.1.1/licenses/noggit-0.8.jar.sha1
deleted file mode 100644
index 6a004387a..000000000
--- a/solr-8.1.1/licenses/noggit-0.8.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ba4ad65a62d7dfcf97a8d42c82ae7d8824f9087f
diff --git a/solr-8.1.1/licenses/noggit-NOTICE.txt b/solr-8.1.1/licenses/noggit-NOTICE.txt
deleted file mode 100644
index 3bf8aefcd..000000000
--- a/solr-8.1.1/licenses/noggit-NOTICE.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-noggit
-
-https://github.com/yonik/noggit
diff --git a/solr-8.1.1/licenses/simple-xml-2.7.1.jar.sha1 b/solr-8.1.1/licenses/simple-xml-2.7.1.jar.sha1
deleted file mode 100644
index d790fb404..000000000
--- a/solr-8.1.1/licenses/simple-xml-2.7.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-dd91fb744c2ff921407475cb29a1e3fee397d411
diff --git a/solr-8.1.1/licenses/start.jar.sha1 b/solr-8.1.1/licenses/start.jar.sha1
deleted file mode 100644
index b350925d3..000000000
--- a/solr-8.1.1/licenses/start.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ed9434016612e1e2c29b4db88bc5fdfe7dbcec2f
diff --git a/solr-8.1.1/licenses/zookeeper-3.4.14.jar.sha1 b/solr-8.1.1/licenses/zookeeper-3.4.14.jar.sha1
deleted file mode 100644
index 6adbf71d7..000000000
--- a/solr-8.1.1/licenses/zookeeper-3.4.14.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-c114c1e1c8172a7cd3f6ae39209a635f7a06c1a1
diff --git a/solr-8.1.1/server/lib/jetty-deploy-9.4.14.v20181114.jar b/solr-8.1.1/server/lib/jetty-deploy-9.4.14.v20181114.jar
deleted file mode 100644
index 3e7f5b48e..000000000
--- a/solr-8.1.1/server/lib/jetty-deploy-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-http-9.4.14.v20181114.jar b/solr-8.1.1/server/lib/jetty-http-9.4.14.v20181114.jar
deleted file mode 100644
index ac57d6d50..000000000
--- a/solr-8.1.1/server/lib/jetty-http-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-io-9.4.14.v20181114.jar b/solr-8.1.1/server/lib/jetty-io-9.4.14.v20181114.jar
deleted file mode 100644
index 8fb6835e2..000000000
--- a/solr-8.1.1/server/lib/jetty-io-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-security-9.4.14.v20181114.jar b/solr-8.1.1/server/lib/jetty-security-9.4.14.v20181114.jar
deleted file mode 100644
index 935964938..000000000
--- a/solr-8.1.1/server/lib/jetty-security-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-server-9.4.14.v20181114.jar b/solr-8.1.1/server/lib/jetty-server-9.4.14.v20181114.jar
deleted file mode 100644
index bac55412a..000000000
--- a/solr-8.1.1/server/lib/jetty-server-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-servlet-9.4.14.v20181114.jar b/solr-8.1.1/server/lib/jetty-servlet-9.4.14.v20181114.jar
deleted file mode 100644
index fc6f152a3..000000000
--- a/solr-8.1.1/server/lib/jetty-servlet-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-xml-9.4.14.v20181114.jar b/solr-8.1.1/server/lib/jetty-xml-9.4.14.v20181114.jar
deleted file mode 100644
index 3c8c16409..000000000
--- a/solr-8.1.1/server/lib/jetty-xml-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/caffeine-2.4.0.jar b/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/caffeine-2.4.0.jar
deleted file mode 100644
index 80b85190e..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/caffeine-2.4.0.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-beanutils-1.9.3.jar b/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-beanutils-1.9.3.jar
deleted file mode 100644
index 6728154e5..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-beanutils-1.9.3.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-http-client-transport-9.4.14.v20181114.jar b/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-http-client-transport-9.4.14.v20181114.jar
deleted file mode 100644
index d9c2e00a7..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-http-client-transport-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-http-9.4.14.v20181114.jar b/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-http-9.4.14.v20181114.jar
deleted file mode 100644
index ac57d6d50..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-http-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-io-9.4.14.v20181114.jar b/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-io-9.4.14.v20181114.jar
deleted file mode 100644
index 8fb6835e2..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-io-9.4.14.v20181114.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-8.1.1.jar b/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-8.1.1.jar
deleted file mode 100644
index d2f138400..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-8.1.1.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/noggit-0.8.jar b/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/noggit-0.8.jar
deleted file mode 100644
index d530cd128..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/noggit-0.8.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.4.14.jar b/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.4.14.jar
deleted file mode 100644
index 0b5620eee..000000000
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.4.14.jar
+++ /dev/null
Binary files differ
diff --git a/solr-8.1.1/server/tmp/start_1162091086783172980.properties b/solr-8.1.1/server/tmp/start_1162091086783172980.properties
deleted file mode 100644
index c3317f095..000000000
--- a/solr-8.1.1/server/tmp/start_1162091086783172980.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Fri Jun 21 14:24:12 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_2100856759874646244.properties b/solr-8.1.1/server/tmp/start_2100856759874646244.properties
deleted file mode 100644
index 0afe891f2..000000000
--- a/solr-8.1.1/server/tmp/start_2100856759874646244.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Wed Jun 26 21:41:12 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_2576004904278670344.properties b/solr-8.1.1/server/tmp/start_2576004904278670344.properties
deleted file mode 100644
index eeb8a16db..000000000
--- a/solr-8.1.1/server/tmp/start_2576004904278670344.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Tue Jun 25 21:53:42 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_2971323387275179200.properties b/solr-8.1.1/server/tmp/start_2971323387275179200.properties
deleted file mode 100644
index 364a50ae0..000000000
--- a/solr-8.1.1/server/tmp/start_2971323387275179200.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Mon Jul 01 20:20:49 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_3460593255669540278.properties b/solr-8.1.1/server/tmp/start_3460593255669540278.properties
deleted file mode 100644
index 32741d3ee..000000000
--- a/solr-8.1.1/server/tmp/start_3460593255669540278.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Wed Jun 26 21:47:12 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_405608392786276922.properties b/solr-8.1.1/server/tmp/start_405608392786276922.properties
deleted file mode 100644
index 4b15b3d7f..000000000
--- a/solr-8.1.1/server/tmp/start_405608392786276922.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Mon Jun 24 19:38:02 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_4369196645186488783.properties b/solr-8.1.1/server/tmp/start_4369196645186488783.properties
deleted file mode 100644
index 116e3a6e1..000000000
--- a/solr-8.1.1/server/tmp/start_4369196645186488783.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Fri Jun 28 15:46:27 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_4663740760277313991.properties b/solr-8.1.1/server/tmp/start_4663740760277313991.properties
deleted file mode 100644
index c38547ac5..000000000
--- a/solr-8.1.1/server/tmp/start_4663740760277313991.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Thu Jul 11 19:15:41 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_4733293799511346628.properties b/solr-8.1.1/server/tmp/start_4733293799511346628.properties
deleted file mode 100644
index d87531d6f..000000000
--- a/solr-8.1.1/server/tmp/start_4733293799511346628.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Mon Jul 01 14:26:40 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_4743562251234760998.properties b/solr-8.1.1/server/tmp/start_4743562251234760998.properties
deleted file mode 100644
index 07e168931..000000000
--- a/solr-8.1.1/server/tmp/start_4743562251234760998.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Tue Jul 09 18:55:20 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_5229015896118315876.properties b/solr-8.1.1/server/tmp/start_5229015896118315876.properties
deleted file mode 100644
index 707a758c6..000000000
--- a/solr-8.1.1/server/tmp/start_5229015896118315876.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Thu Jul 11 16:10:20 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_5271912985233565832.properties b/solr-8.1.1/server/tmp/start_5271912985233565832.properties
deleted file mode 100644
index 4f5220a9d..000000000
--- a/solr-8.1.1/server/tmp/start_5271912985233565832.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Fri Jul 12 15:10:54 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_5430857760236735908.properties b/solr-8.1.1/server/tmp/start_5430857760236735908.properties
deleted file mode 100644
index a9a142e94..000000000
--- a/solr-8.1.1/server/tmp/start_5430857760236735908.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Thu Jun 20 22:44:44 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_544112310419136346.properties b/solr-8.1.1/server/tmp/start_544112310419136346.properties
deleted file mode 100644
index bd546ae3a..000000000
--- a/solr-8.1.1/server/tmp/start_544112310419136346.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Wed Jun 26 20:29:27 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_5597932996249302507.properties b/solr-8.1.1/server/tmp/start_5597932996249302507.properties
deleted file mode 100644
index 0a5d1b30a..000000000
--- a/solr-8.1.1/server/tmp/start_5597932996249302507.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Thu Jul 11 16:29:55 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_5600187431431293204.properties b/solr-8.1.1/server/tmp/start_5600187431431293204.properties
deleted file mode 100644
index 19d9c0952..000000000
--- a/solr-8.1.1/server/tmp/start_5600187431431293204.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Wed Jun 19 15:04:19 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_6033597490012985323.properties b/solr-8.1.1/server/tmp/start_6033597490012985323.properties
deleted file mode 100644
index bb463c28c..000000000
--- a/solr-8.1.1/server/tmp/start_6033597490012985323.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Wed Jul 10 17:03:20 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_6505785163785330358.properties b/solr-8.1.1/server/tmp/start_6505785163785330358.properties
deleted file mode 100644
index 22b6b1f90..000000000
--- a/solr-8.1.1/server/tmp/start_6505785163785330358.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Thu Jun 13 15:10:20 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_6748886024297018280.properties b/solr-8.1.1/server/tmp/start_6748886024297018280.properties
deleted file mode 100644
index c72372471..000000000
--- a/solr-8.1.1/server/tmp/start_6748886024297018280.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Fri Jun 28 17:19:15 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Desktop\\AndrewKim\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Desktop/AndrewKim/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_7361894075389096225.properties b/solr-8.1.1/server/tmp/start_7361894075389096225.properties
deleted file mode 100644
index 67819e570..000000000
--- a/solr-8.1.1/server/tmp/start_7361894075389096225.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Thu Jul 11 16:13:09 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_7478138185329880739.properties b/solr-8.1.1/server/tmp/start_7478138185329880739.properties
deleted file mode 100644
index 950a611e0..000000000
--- a/solr-8.1.1/server/tmp/start_7478138185329880739.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Thu Jul 11 16:20:39 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_8093481146562670635.properties b/solr-8.1.1/server/tmp/start_8093481146562670635.properties
deleted file mode 100644
index a4edbb182..000000000
--- a/solr-8.1.1/server/tmp/start_8093481146562670635.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Thu Jun 13 17:43:49 UTC 2019
-java.version.platform=8
-java.version=1.8.0_181
-java.version.micro=0
-jetty.home=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
-jetty.base=C\:\\Users\\avd\\Downloads\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/avd/Downloads/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_8121074207568089845.properties b/solr-8.1.1/server/tmp/start_8121074207568089845.properties
deleted file mode 100644
index 0d3a84d32..000000000
--- a/solr-8.1.1/server/tmp/start_8121074207568089845.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Wed Jul 10 15:47:10 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_8126409778075289800.properties b/solr-8.1.1/server/tmp/start_8126409778075289800.properties
deleted file mode 100644
index 92353cbb9..000000000
--- a/solr-8.1.1/server/tmp/start_8126409778075289800.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Fri Jul 05 17:17:36 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_8282691445249098340.properties b/solr-8.1.1/server/tmp/start_8282691445249098340.properties
deleted file mode 100644
index 2cdb314c3..000000000
--- a/solr-8.1.1/server/tmp/start_8282691445249098340.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Mon Jul 08 19:16:52 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_8630006632336387536.properties b/solr-8.1.1/server/tmp/start_8630006632336387536.properties
deleted file mode 100644
index 122681318..000000000
--- a/solr-8.1.1/server/tmp/start_8630006632336387536.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Wed Jul 03 16:04:22 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/server/tmp/start_8840501328449354697.properties b/solr-8.1.1/server/tmp/start_8840501328449354697.properties
deleted file mode 100644
index 726eae1a8..000000000
--- a/solr-8.1.1/server/tmp/start_8840501328449354697.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#start.jar properties
-#Thu Jul 11 15:55:05 UTC 2019
-java.version.platform=8
-java.version=1.8.0_161
-java.version.micro=0
-jetty.home=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.minor=8
-jetty.home.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
-jetty.base=C\:\\Users\\GFX lab\\Desktop\\AB_Documents\\Dash Web\\Dash-Web\\solr-8.1.1\\server
-java.version.major=1
-jetty.base.uri=file\:///C\:/Users/GFX%20lab/Desktop/AB_Documents/Dash%20Web/Dash-Web/solr-8.1.1/server
diff --git a/solr-8.1.1/CHANGES.txt b/solr-8.3.1/CHANGES.txt
index 15959bb6b..219888b49 100644
--- a/solr-8.1.1/CHANGES.txt
+++ b/solr-8.3.1/CHANGES.txt
@@ -16,6 +16,533 @@ In this release, there is an example Solr server including a bundled
servlet container in the directory named "example".
See the Solr tutorial at https://lucene.apache.org/solr/guide/solr-tutorial.html
+================== 8.3.1 ==================
+
+Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
+
+Versions of Major Components
+---------------------
+Apache Tika 1.19.1
+Carrot2 3.16.0
+Velocity 2.0 and Velocity Tools 3.0
+Apache ZooKeeper 3.5.5
+Jetty 9.4.19.v20190610
+
+Upgrade Notes
+----------------------
+
+* Velocity: The initialization parameters
+ "params.resource.loader.enabled" and "solr.resource.loader.enabled" have been removed and replaced by
+ Java system properties "velocity.resourceloader.params.enabled" and "velocity.resourceloader.solr.enabled"
+ respectively (both turned off by default). Please see SOLR-13971 for more details.
+
+Bug Fixes
+----------------------
+
+* SOLR-13963: JavaBinCodec has concurrent modification of CharArr resulting in corrupt internode updates (Colvin Cowie, noble)
+
+* SOLR-13941: Tests configure Jetty differently than when running via start.jar (janhoy, Uwe Schindler)
+
+* SOLR-13905: Make findRequestType in AuditEvent more robust (janhoy)
+
+* SOLR-13465: CoreContainer.auditloggerPlugin should be volatile (janhoy, hossman)
+
+* SOLR-13971: Velocity response writer's resource loading now possible only through startup parameters.
+ (Ishan Chattopadhyaya, David Smiley)
+
+================== 8.3.0 ==================
+
+Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
+
+Versions of Major Components
+---------------------
+Apache Tika 1.19.1
+Carrot2 3.16.0
+Velocity 2.0 and Velocity Tools 3.0
+Apache ZooKeeper 3.5.5
+Jetty 9.4.19.v20190610
+
+Upgrade Notes
+----------------------
+
+* Users who have written test cases that extend SolrTestCaseJ4 may see NullPointerExceptions if
+ their tests directly reference both SolrTestCaseJ4.initCoreDataDir and SolrTestCaseJ4.deleteCore().
+ This change in behavior is due to a bug fix in deleteCore() to ensure the dataDir is properly reset
+ in tests that call initCore()/deleteCore() multiple times in a given test (class). initCoreDataDir
+ is now deprecated, and users are encouraged to use SolrTestCaseJ4.initAndGetDataDir() in it's place.
+ See SOLR-13664 for more details.
+
+* For JWTAuthPlugin, the 'jwkUrl' configuration key is deprecated and may be removed later, please use 'jwksUrl'
+ instead. See SOLR-13734.
+
+New Features
+----------------------
+
+* SOLR-13375: Two dimensional routed aliases are now available for organizing collections based on the data values
+ of two fields. (Gus Heck)
+
+* SOLR-13399: SPLITSHARD implements a new splitByPrefix option that takes into account the actual document distribution
+ when using compositeIds. Document distribution is calculated using the "id_prefix" field (if it exists) containing
+ just the compositeId prefixes, or directly from the indexed "id" field otherwise. (yonik, Megan Carey)
+
+* SOLR-13622: Add cat() stream source to create tuples from lines in local files (Jason Gerlowski and Joel Bernstein)
+
+* SOLR-11866: QueryElevationComponent can have query rules configured with match="subset" wherein the words need only
+ match a subset of the query's words and in any order. (Bruno Roustant via David Smiley)
+
+* SOLR-13682: command line option to export documents to a file (noble)
+
+* SOLR-13257: Support deterministic replica routing preferences for better cache usage (Michael Gibney
+ via Christine Poerschke, Tomás Fernández Löbbe)
+
+* SOLR-13122: Ability to query aliases in Solr Admin UI (janhoy)
+
+* SOLR-13713: JWTAuthPlugin to support multiple JWKS endpoints (janhoy)
+
+* SOLR-13734: JWTAuthPlugin now supports multiple IdP issuers through configuring a new 'issuers' configuration key.
+ Access tokens issued and signed by any of the configured issuers will be validated (janhoy)
+
+* SOLR-13272: Add support for arbitrary ranges in JSON facet's Range facets.
+ (Apoorv Bhawsar, Munendra S N, Mikhail Khludnev, Ishan Chattopadhyaya, Jan Høydahl)
+
+* SOLR-13632: Support integral plots, cosine distance and string truncation with math expressions (Joel Bernstein)
+
+* SOLR-13667: Add upper, lower, trim and split Stream Evaluators (Joel Bernstein)
+
+* SOLR-13625: Add CsvStream, TsvStream Streaming Expressions and supporting Stream Evaluators (Joel bernstein)
+
+* SOLR-8241: Add CaffeineCache, an efficient implementation of SolrCache.(Ben Manes, Shawn Heisey, David Smiley, Andrzej Bialecki)
+
+Improvements
+----------------------
+
+* SOLR-12368: Support InPlace DV updates for a field that does not yet exist in any documents
+ (hossman, Simon Willnauer, Adrien Grand, Munendra S N)
+
+* SOLR-13558, SOLR-13693: Allow dynamic resizing of SolrCache-s. (ab)
+
+* SOLR-6305: Ability to set the replication factor for index files created by HDFSDirectoryFactory (Boris Pasko via Kevin Risden)
+
+* SOLR-13702: Some components register twice their metric names (janhoy)
+
+* SOLR-11601: Improved error message when geodist(llpsf) is used with arguments referring to a LatLonPointSpatialField.
+ (Amrit Sarkar)
+
+* SOLR-13542: Code cleanup - Avoid using stream filter count where possible (Koen De Groote via Tomás Fernández Löbbe)
+
+* SOLR-13720: BlockJoinParentQParser.getCachedFilter()made public for accessing from QParser plugins
+ (Stanislav Livotov via Mikhail Khludnev)
+
+* SOLR-13728: If a partial update (aka atomic update) is attempted on a document that has child docs, then ensure
+ the schema supports it (_root_ stored/docValues) by throwing an exception. (David Smiley)
+
+* SOLR-13742: Allow optional redaction of data saved by 'bin/solr autoscaling -save'. (ab)
+
+* SOLR-13739: Optimized large managed schema modifications; Internal O(n^2) problem. (Thomas Wöckinger via David Smiley)
+
+* SOLR-9658: Max idle time support for SolrCache implementations. (hoss, ab)
+
+* SOLR-13763: Improve the tracking of "freedisk" in autoscaling simulations. (ab)
+
+* SOLR-13773: Add Prometheus Exporter GC and Heap options. (Houston Putman via Anshum Gupta, David Smiley)
+
+* SOLR-13638: Add debug, trace logging to RuleBasedAuthorizationPlugin (Jason Gerlowski)
+
+* SOLR-13784: EmbeddedSolrServer's defaultCore constructor argument is now optional (David Smiley)
+
+* LUCENE-8984: MoreLikeThis MLT is biased for uncommon fields (Andy Hind via Anshum Gupta)
+
+* SOLR-13798: SSL: Adding Enabling/Disabling client's hostname verification config (Cao Manh Dat)
+
+* SOLR-13771: Add -v and -m to ulimit section of reference guide and bin/solr checks (Erick Erickson)
+
+* SOLR-13795: Managed schema operations should do a core reload in Solr standalone mode.
+ (Thomas Wöckinger via David Smiley)
+
+* SOLR-13719: Introducing SolrClient.ping(collection) in SolrJ (Geza Nagy via Mikhail Khludnev)
+
+Bug Fixes
+----------------------
+
+* SOLR-13206: Fix AIOOBE when group.facet is specified with group.query and return proper error code. (Marek, Munendra S N)
+
+* SOLR-11556: Backup and restore command really supports picking one of a few repositories by
+ repository parameter (Timothy Potter via Mikhail Khludnev)
+
+* SOLR-13647: Default solr.in.sh contains incorrect default value (John Ryan)
+
+* SOLR-13660: Fixed AbstractFullDistribZkTestBase.waitForActiveReplicaCount() to ensure
+ replicas are active. (hossman)
+
+* SOLR-13664: Fixed SolrTestCaseJ4.deleteCore() to properly reset the dataDir used by initCore()
+ (hossman)
+
+* SOLR-13679: Default style of ExplainDocTransformer registered via solrconfig.xml should be same as default style
+ of ExplainDocTransformer registered in defaultFactories (Munendra S N)
+
+* SOLR-13672: Cloud -> Zk Status page now parses response from Zookeeper 3.5.5 correctly (Jörn Franke, janhoy, Shawn Heisey)
+
+* SOLR-13674: NodeAddedTrigger does not support configuration of replica type hint. A new replicaType property
+ has been added to NodeAddTrigger so that new replicas of the given type are added. The default value is `NRT`.
+ (Irena Shaigorodsky via shalin)
+
+* SOLR-13141: CDCR bootstrap does not replicate index to the replicas of target cluster.
+ (Krzysztof Watral, Amrit Sarkar, Tim, Tdspringsteen, shalin)
+
+* SOLR-13694: IndexSizeEstimator NullPointerException. (ab, hossman)
+
+* SOLR-13700: Fixed a race condition when initializing metrics for new security plugins on security.json change (hossman)
+
+* SOLR-13701: Fixed JWTAuthPlugin to update metrics prior to continuing w/other filters or returning error (hossman)
+
+* SOLR-6328: facet.missing=true should return missing count even when facet.limit=0 (hossman, Munendra S N)
+
+* SOLR-13704: Improve error message and change error code to 400 for client errors in ExpandComponent (Munendra S N)
+
+* SOLR-13699 - maxChars no longer working on CopyField with javabin (Chris Troullis via noble)
+
+* SOLR-13718: SPLITSHARD (async) with failures in underlying sub-operations can result in data loss (Ishan Chattopadhyaya)
+
+* SOLR-13717: Fixed distributed grouping when multiple 'fl' params are specified (hossman, Christine Poerschke)
+
+* SOLR-13240: Fixed UTILIZENODE action resulting in IllegalArgumentException.
+ (Hendrik Haddorp, Richard Goodman, Tim Owen, shalin, noble, Christine Poerschke)
+
+* SOLR-13238: BlobHandler generates non-padded md5 (Jeff Walraven via janhoy)
+
+* SOLR-13780: Fix ClassCastException in NestableJsonFacet (Tiago Martinho de Barros, Munendra S N)
+
+* SOLR-13725: Allow negative values for limit in TermsFacetMap (Richard Walker, Munendra S N)
+
+* SOLR-13022: Fix NPE when sorting by non-existent aggregate function in JSON Facet (hossman, Munendra S N)
+
+* SOLR-13727: Fixed V2Requests - HttpSolrClient replaced first instance of "/solr" with "/api" which
+ caused a change in host names starting with "solr". (Megan Carey via yonik)
+
+* SOLR-13180: Fix ClassCastException in Json Request API (Johannes Kloos, Jan Høydahl, Munendra S N)
+
+* SOLR-13417: Handle stats aggregation on date and string fields in SolrJ's JSON facet response processing
+ (Jason Gerlowski, Munendra S N)
+
+* SOLR-13712: JMX MBeans are not exposed because of race condition between creating platform mbean server and
+ registering mbeans. (shalin)
+
+* SOLR-13802: Managed schema manipulations were not persisting the optional luceneMatchVersion that can be set
+ on an Analyzer. (Thomas Wöckinger)
+
+* SOLR-13790: LRUStatsCache size explosion and ineffective caching. (ab)
+
+* SOLR-13539: Fix for class-cast issues during atomic-update 'removeregex' operations. This also incorporated some
+ tests Tim wrote as a part of SOLR-9505. (Tim Owen via Jason Gerlowski)
+
+* SOLR-13376: Multi-node race condition to create/remove nodeLost markers. (hoss, ab)
+
+* SOLR-13293: ConcurrentUpdateHttp2SolrClient always log AsynchronousCloseException exception error on indexing.
+ (Cao Manh Dat)
+
+* SOLR-13828: Improve ExecutePlanAction error handling. (ab)
+
+* SOLR-13760: Fix regression in support for Date math in TRA start date that was introduced by SOLR-13375
+
+* SOLR-13829: RecursiveEvaluator casts Continuous numbers to Discrete Numbers, causing mismatch (Trey Grainger, Joel Bernstein)
+
+* SOLR-13815: Live shard split (where updates actively continue during the split) can lose updates due to cluster
+ state happening to change between checking if the current shard is active and later checking if there are any
+ sub-shard leaders to forward the update to. (yonik)
+
+* SOLR-13665: Added missing netty dependencies to solrJ and upgraded netty to v 4.1.29.Final (Jörn Franke, janhoy)
+
+* SOLR-13793: HttpSolrCall now maintains internal request count (_forwardedCount) for remote queries and limits them to
+ the number of replicas. This avoids making too many cascading calls to remote servers, which, if not restricted, can
+ bring down nodes containing the said collection (Kesharee Nandan Vishwakarma, Ishan Chattopadhyaya)
+
+* SOLR-13834: ZkController#getSolrCloudManager() created a new instance of ZkStateReader, thereby causing mismatch in the
+ visibility of the cluster state and, as a result, undesired race conditions (Clay Goddard via Ishan Chattopadhyaya)
+
+* SOLR-13835: HttpSolrCall produces incorrect extra AuditEvent on AuthorizationResponse.PROMPT (janhoy, hossman)
+
+* SOLR-13843: The MOVEREPLICA API ignores replica type and always adds 'nrt' replicas (Amrit Sarkar via shalin)
+
+* SOLR-13677: All Metrics Gauges should be unregistered by components that registered them. (noble, ab)
+
+* SOLR-13855: DistributedZkUpdateProcessor should have been propagating URP.finish() lifecycle like it used to before
+ 8.1 (a regression). Impacts integrity since Run URP's finish() propagates this to the updateLog to fsync.
+ (David Smiley)
+
+Other Changes
+----------------------
+
+* SOLR-13779: Use the safe fork of simple-xml for clustering contrib. (Dawid Weiss)
+
+* SOLR-13585: Factor out SearchGroupsResultTransformer.[de]serializeOneSearchGroup methods. (Christine Poerschke, Diego Ceccarelli)
+
+* SOLR-12870: Use StandardCharsets instead of String values (Peter Somogyi via Munendra S N)
+
+* SOLR-10377: Add `debug.explain.structured` to Admin UI. (David Smiley, Munendra S N)
+
+* SOLR-13629: Clean trailing whitespace from 'analytics' contrib (Neal Sidhwaney via Jason Gerlowski)
+
+* SOLR-13643: Add Getters/Setters in ResponseBuilder for analytics response handling (Neal Sidhwaney via Munendra S N)
+
+* SOLR-13680: Use try-with-resource to close the closeable resource (Furkan KAMACI, Munendra S N)
+
+* SOLR-13573: Add SolrRangeQuery getters for upper, lower bound (Brian Rhees via Jason Gerlowski)
+
+* SOLR-13658: Precommit fail Java "var" until 9x. Fail "var...<>" constructs entirely (Erick Erickson)
+
+* SOLR-13767: Upgrade jackson to 2.9.9 (janhoy)
+
+* SOLR-11492: Clean up /solr/cloud-dev scripts and provide a single well documented script (Gus Heck, Robert Bunch)
+
+* SOLR-13747: New TestSSLTestConfig.testFailIfUserRunsTestsWithJVMThatHasKnownSSLBugs() to give people running
+ tests more visibility if/when they use a known-buggy JVM causing most SSL tests to silently SKIP. (hossman)
+
+* SOLR-13791: Remove remaining Commons BeanUtils references. (Andras Salamon, Christine Poerschke)
+
+* SOLR-13812: Add javadocs, uneven rejection and basic test coverage for the SolrTestCaseJ4.params method.
+ (Diego Ceccarelli, Christine Poerschke, Munendra S N)
+
+* SOLR-13787: An annotation based system to write v2 APIs (noble)
+
+* SOLR-12786: Update Ref Guide build tool versions (Cassandra)
+
+================== 8.2.0 ==================
+
+Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
+
+Versions of Major Components
+---------------------
+Apache Tika 1.19.1
+Carrot2 3.16.0
+Velocity 2.0 and Velocity Tools 3.0
+Apache ZooKeeper 3.5.5
+Jetty 9.4.19.v20190610
+
+Upgrade Notes
+----------------------
+
+* SOLR-8346: Upgrade ZooKeeper to 3.5.5. ZooKeeper 3.5.5 introduces more security features. Include in your zoo.cfg
+ file at minimum the following:
+ 4lw.commands.whitelist=mntr,conf,ruok
+ You can use
+ 4lw.commands.whitelist=* to enable all ZooKeeper "4 letter commands".
+ (Erick Erickson)
+
+* SOLR-13515: org.apache.solr.util.SolrPluginUtils.IdentityRegenerator has been removed, please use
+ the identical org.apache.solr.search.NoOpRegenerator instead. (David Smiley, Christine Poerschke)
+
+* SOLR-13541: Upgrade Jetty to 9.4.19.v20190610. (Erick Erickson, Cao Manh Dat)
+
+* SOLR-13420: Routed Aliases now use collection properties rather than core properties to identify collections that
+ belong to the alias by default. This should be invisible and fully backwards compatible from within solr, and
+ existing routed alias collections with core based properties will continue to work, but new collections created will
+ not add a property to core.properties anymoore so any external code that inspected core.properties will not find the
+ 'routedAliasName' key in new cores belonging to routed aliases.
+
+* SOLR-13419: Time Routed Aliases now have a '__TRA__' infix preceding the timestamp portion of the collection names.
+ collections with the old format will not be altered and will continue to work, but any new TRA's or new collections
+ for existing TRA's will use the new format. Solr will handle this invisibly, but any external code that attempted to
+ predict collection names in TRA's will probably need adjustment.
+
+* SOLR-13507: Support for "addr" parameter from the "/solr/admin/zookeeper" endpoint has now been removed and will no
+ longer be supported.
+
+New Features
+----------------------
+
+* SOLR-13320: add an update param failOnVersionConflicts=false to updates not fail when there is a version conflict (noble)
+
+* SOLR-13445: Preferred replicas on nodes with same system properties as the query master (Cao Manh Dat)
+
+* SOLR-13047: Add facet2D Streaming Expression (Nazerke Seidan, Joel Bernstein)
+
+* SOLR-13494: Add DeepRandomStream implementation (Joel Bernstein)
+
+* SOLR-13434: OpenTracing support for Solr (Cao Manh Dat)
+
+* SOLR-13512: Raw index data analysis tool (extension of COLSTATUS collection command). (ab)
+
+* SOLR-13550: Allow zplot to automatically create the x axis (Joel Bernstein)
+
+* SOLR-13552: Add recNum Stream Evaluator (Joel Bernstein)
+
+* SOLR-13560: Add isNull and notNull Stream Evaluators (Joel Bernstein)
+
+* SOLR-10291: Add matches Stream Evaluator to support regex matching (Joel Bernstein)
+
+* SOLR-13589: Allow zplot to visualize 2D clusters and convex hulls (Joel Bernstein)
+
+Improvements
+----------------------
+
+* SOLR-13049: Make contrib/ltr Feature.defaultValue configurable. (Stanislav Livotov, Christine Poerschke)
+
+* SOLR-13306: Add a request parameter to execute a streaming expression locally
+
+* SOLR-13440: Support saving/restoring autoscaling state for repeatable simulations. (ab)
+
+* SOLR-11558: It would be nice if the Graph section of the Cloud tab in the Admin UI could give some more
+ information about the replicas of a collection (Erick Erickson)
+
+* SOLR-13468: autoscaling/suggestions should be able to give suggestions from config sent as a payload (noble)
+
+* SOLR-12304: The MoreLikeThisComponent now supports the mlt.interestingTerms parameter. Previously this option was
+ unique to the MLT handler. (Alessandro Benedetti via David Smiley)
+
+* SOLR-13484: autoscaling/diagnostics API should be able to give diagnostics output from config sent as a payload (noble)
+
+* SOLR-13493: /autoscaling/suggestions to be able to filter by type (noble)
+
+* SOLR-13504: In autoscaling policies, use an explicit 'nodeset' attribute for filtering
+ nodes instead of using them directly at the toplevel (noble)
+
+* SOLR-13329: In autoscaling policies, use an explicit 'put : on-each-node'
+ to specify the the rules is applied on each node (noble)
+
+* SOLR-13347: Transaction log to natively support UUID types (Thomas Wöckinger via noble)
+
+* SOLR-13367: Highlighting: Range queries will now highlight in hl.method=unified mode. (David Smiley)
+
+* SOLR-13569: Admin UI visual indication of prod/test/dev environment (janhoy)
+
+* SOLR-12554: Expose IndexWriterConfig's ramPerThreadHardLimitMB through solrconfig.xml (Ishan Chattopadhyaya, Munendra S N)
+
+* SOLR-13602 SOLR-13588: Add a field type for Estonian language to default managed_schema,
+ document about Estonian language analysis in Solr Ref Guide (Tomoko Uchida)
+
+* SOLR-13003: Query Result Cache does not honor maxRamBytes parameter. (ab, Brian Ecker)
+
+Bug Fixes
+----------------------
+
+* SOLR-13474: Fix "Search is temporarily disabled" logic to be consistent for entire request (hossman)
+
+* SOLR-13469: Fix rejected requests during full disk full + IndexFetch to use 503 not 403 (hossman)
+
+* SOLR-12941: Fix IndexSizeTrigger to correctly work with "aboveBytes" and "splitMethod=link" parameters. (ab)
+
+* SOLR-13491: SolrZkClient's watch wrapper no longer allows zookeeper to hold the same watch object multiple times.
+
+* SOLR-13489: Stop the leader from trying to rejoin the election on session expiration and harden our zk reconnect code path.
+ (Mark Miller, Anshum Gupta)
+
+* SOLR-12249: Better error message when grouping on a tokenized (non SortableText) field in SolrCloud (Erick Erickson)
+
+* SOLR-13521: Fix input parameter handling in SchemaRequest.DynamicField and SchemaRequest.FieldTypes (Schema API)
+ (Tomás Fernández Löbbe)
+
+* SOLR-13496: Fix distributed grouping related NullPointerException in JSONWriter.writeSolrDocument (Christine Poerschke)
+
+* SOLR-12013: collections API CUSTERSTATUS command fails when configset missing (Erick Erickson)
+
+* SOLR-13509: NPE on omitHeader=true is fixed by sending omitHeader=false to shard searches (Munendra S N, Mikhail Khludnev)
+
+* SOLR-13333: unleashing terms.ttf from terms.list when distrib=false (Munendra S N via Mikhail Khludnev)
+
+* SOLR-13490: Fix CollectionStateWatcher/CollectionStatePredicate based APIs in ZkStateReader and
+ CloudSolrClient to be triggered on liveNode changes. Also add Predicate<DocCollection> equivalents
+ for callers that don't care about liveNodes. (hossman)
+
+* SOLR-13545: ContentStreamUpdateRequest refused to close file (Colvin Cowie, Mikhail Khludnev)
+
+* SOLR-12127: Updates containing 'set' operation with value null or empty list should be considered as Atomic Update
+ (Oliver Kuldmäe, Munendra S N, Ishan Chattopadhyaya)
+
+* SOLR-13187: Fix NPE when invalid query parser is specified and return 400 error code.
+ (Cesar Rodriguez, Marek, Charles Sanders, Munendra S N, Mikhail Khludnev)
+
+* SOLR-12979: Improve error message and change error code to 400 when collapse field is non-docValued and
+ non-uninvertible (hossman, Munendra S N)
+
+* SOLR-13574: Fix many test and test-framework classes to not fail on After/AfterClass cleanup if
+ assumptions fail in Before/BeforeClass setup (hossman)
+
+* SOLR-13280: Strengthen ScheduledTrigger's preferredOperation parameter validation. (Christine Poerschke)
+
+* SOLR-9409: Improve error message for unsupported field types and return 400 error code on
+ unsupported values in collapsing (hossman, Munendra S N)
+
+* SOLR-13404: Support group.query in multi-shard environment when group.main=true or group.format=simple (Munendra S N)
+
+* SOLR-13538: toNativeType () TrieDate & EnumField do not handle CharSequence properly (Munendra S N)
+
+* SOLR-13532: Fix http timeout and error logging bugs in RecoveryStrategy. (Suril Shah, hossman)
+
+* SOLR-13472: Forwarded requests should skip authorization on receiving nodes (adfel, Ishan Chattopadhyaya)
+
+* SOLR-13619: Kerberos plugin to pass original user principal to avoid 403 on nodes not hosting a collection
+ (adfel, Ishan Chattopadhyaya, noble)
+
+Other Changes
+----------------------
+
+* SOLR-13453: Adjust auth metrics asserts in tests caused by SOLR-13449 (janhoy)
+
+* SOLR-13437: noggit json parser is forked into solrj (noble)
+
+* SOLR-13467: Include the S2 Geometry lib to make it simpler to use prefixTree="s2" on a Geo3D spatial field.
+ Improved documentation on Geo3D too. (David Smiley)
+
+* SOLR-13371: Re-structure and clarify Security chapters in Ref Guide (janhoy)
+
+* SOLR-13235: Split Collections API Ref Guide page into several smaller child pages (Cassandra Targett)
+
+* SOLR-8754: Adding test cases for org.apache.solr.util.hll.NumberUtilTest (Benoit Vanalderweireldt via janhoy)
+
+* SOLR-13511: Add SearchHandler.newResponseBuilder method to facilitate custom plugins' maintenance
+ of per-request state in a custom ResponseBuilder. (Ramsey Haddad, Christine Poerschke)
+
+* SOLR-12988: SSLTestConfig has been changed to throw AssumptionViolatedException when tests/seeds
+ request SSL but the JVM appears to be an OpenJDK version known to have SSL bugs (hossman, Cao Manh Dat)
+
+* SOLR-13279: Clarify ScheduledTrigger's "every parameter missing" error response. (Christine Poerschke)
+
+* SOLR-13576: Factor out a TopGroupsShardResponseProcessor.fillResultIds method. (Christine Poerschke, Diego Ceccarelli)
+
+* SOLR-12364: Add test cases for edismax boost (David Smiley, Munendra S N)
+
+* SOLR-13603: Remove usage of GroupingSpecification's deprecated methods (Munendra S N)
+
+* SOLR-13507: Remove support for "addr" parameter from the "/solr/admin/zookeeper" endpoint. (janhoy, Anshum Gupta)
+
+* SOLR-13588: Document Estonian analyzer in Solr Ref Guide (Tomoko Uchida)
+
+* SOLR-13602: Add a field type for Estonian language to default managed_schema (Tomoko Uchida)
+
+================== 8.1.2 ==================
+
+Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
+
+Versions of Major Components
+---------------------
+Apache Tika 1.19.1
+Carrot2 3.16.0
+Velocity 2.0 and Velocity Tools 3.0
+Apache ZooKeeper 3.4.14
+Jetty 9.4.14.v20181114
+
+Bug Fixes
+----------------------
+
+* SOLR-13510: Intermittent 401's for internode requests with basicauth enabled (Cao Manh Dat, Colvin Cowie)
+
+* SOLR-13523: In 8.1, Atomic Updates were broken (NPE) when the schema declared the new _nest_path_ field even if you
+ weren't using nested docs. In-place updates were not affected (worked).
+ Reminder: if you don't need nested docs then remove both _root_ and _nest_path_ ! (David Smiley)
+
+* SOLR-13566: REINDEXCOLLECTION does not work with (basic) authentication. (Colvin Cowie, ab)
+
+* SOLR-13159: Fix atomic update encoding issue for UUID, enum, bool, and binary fields (Thomas Wockinger via Jason Gerlowski)
+
+* SOLR-13583: Impossible to delete a collection with the same name as an existing alias. This fixes also a bug in
+ REINDEXCOLLECTION when used with removeSource=true which could lead to a data loss. (ab)
+
+Improvements
+----------------------
+
+* SOLR-13158: DataImportHandler: Added enable.dih.dataConfigParam system property to toggle whether the dataConfig param
+ is permitted. (David Smiley, janhoy, Tomás Fernández Löbbe)
+
================== 8.1.1 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
@@ -220,7 +747,7 @@ Bug Fixes
* SOLR-12291: prematurely reporting not yet finished async Collections API call as completed
when collection's replicas are collocated at least at one node (Varun Thacker, Mikhail Khludnev)
-* SOLR-13410: Designated overseer wasn't able to rejoin election queue at head upon restart (Ishan Chattopadhyaya,
+* SOLR-13410: Designated overseer wasn't able to rejoin election queue upon restart (Ishan Chattopadhyaya,
Kesharee Nandan Vishwakarma)
* SOLR-13318: Fix ClassCastException in SolrJ JsonFaceting classes (Munendra S N via Jason Gerlowski)
@@ -335,8 +862,6 @@ Other Changes
* SOLR-13414: SolrSchema - Avoid NPE if Luke returns field with no type defined (Kevin Risden)
-* SOLR-13453: Adjust auth metrics asserts in tests caused by SOLR-13449 (janhoy)
-
================== 8.0.0 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
@@ -582,6 +1107,100 @@ Other Changes
* SOLR-9515: Hadoop dependencies have been upgraded to Hadoop 3.2.0 from 2.7.2. (Mark Miller, Kevin Risden)
+================== 7.7.2 ==================
+
+Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
+
+Versions of Major Components
+---------------------
+Apache Tika 1.19.1
+Carrot2 3.16.0
+Velocity 1.7 and Velocity Tools 2.0
+Apache ZooKeeper 3.4.14
+Jetty 9.4.14.v20181114
+
+Upgrade Notes
+----------------------
+
+* SOLR-13234: The Prometheus Metric Exporter now collects metrics from Solr at a fixed schedule that is controlled
+ by the exporter itself. The default interval is 60s but it can be changed by specifying the --scrape-interval
+ command line parameter to the tool. The collected metrics are cached and returned for any requests coming in before
+ the next scheduled collection. This can impact the freshness of the metrics if prometheus is configured to query the
+ tool more frequently.
+
+* SOLR-12708: When requesting the status of an async request via REQUESTSTATUS collections API, the response will
+ include the list of internal async requests (if any) in the "success" or "failed" keys (in addition
+ to them being included outside those keys for backwards compatibility). See SOLR-12708 for more
+ details
+
+Bug fixes
+----------------------
+
+* SOLR-13234: Prometheus Metric Exporter not threadsafe. This changes the prometheus exporter to collect metrics
+ from Solr on a fixed interval controlled by this tool and prevents concurrent collections. This change also improves
+ performance slightly by using the cluster state instead of sending multiple HTTP requests to each node to lookup
+ all the cores.
+ (Danyal Prout via shalin)
+
+* SOLR-12708: Async collection actions should not hide internal failures (Mano Kovacs, Varun Thacker, Tomás Fernández Löbbe)
+
+* SOLR-11876: In-place update fails when resolving from Tlog if schema has a required field (Justin Deoliveira, janhoy,
+ Ishan Chattopadhyaya)
+
+* SOLR-13349: High CPU usage in Solr due to Java 8 bug (Erick Erickson)
+
+* SOLR-13355: 'all' permission ignored by RuleBasedAuthorizationPlugin in most cases (Jason Gerlowski, janhoy)
+
+* SOLR-13344: Admin UI inaccessible with RuleBasedAuthorizationPlugin (janhoy, Jason Gerlowski)
+
+* SOLR-12860: MetricsHistoryHandler now uses PKI Auth for metrics collection in background thread (janhoy, Lorenzo)
+
+* SOLR-13331: Atomic Update 'remove' operations broken for certain field types in SolrJ (Thomas Wockinger via Jason Gerlowski)
+
+* SOLR-13285: Updates with enum fields and javabin cause ClassCastException (noble)
+
+* SOLR-12371: Editing authorization config via REST API now works in standalone mode (janhoy)
+
+* SOLR-13281: Fixed NPE in DocExpirationUpdateProcessorFactory (Munendra S N, Tomás Fernández Löbbe)
+
+* SOLR-13409: Disable HTML directory listings in admin interface to prevent possible security issues (Uwe Schindler)
+
+* SOLR-13126: Query boosts were not being combined correctly for documents where not all boost queries
+ matched (Alan Woodward, Mikhail Khludnev)
+
+* SOLR-13414: SolrSchema - Avoid NPE if Luke returns field with no type defined (Kevin Risden)
+
+* SOLR-12833: Avoid unnecessary memory cost when DistributedUpdateProcessor timed-out lock is not used. (ab)
+
+* SOLR-13449: SolrClientNodeStateProvider always retries on requesting metrics from other nodes (Cao Manh Dat)
+
+* SOLR-13112: Upgrade jackson to 2.9.8 (Kevin Risden)
+
+* SOLR-13410: Designated overseer wasn't able to rejoin election queue at head upon restart (Ishan Chattopadhyaya,
+ Kesharee Nandan Vishwakarma)
+
+* SOLR-13254: Correct message that is logged in solrj's ConnectionManager when an exception
+ occurred while reconnecting to ZooKeeper. (hu xiaodong via Christine Poerschke)
+
+* SOLR-13252: Fix an NPE when setting a "policy" property for an existing collection (ab)
+
+* SOLR-13398: Move log line "Processing SSL Credential Provider chain..." from INFO to DEBUG (janhoy)
+
+* SOLR-13386: OverseerTaskQueue#remove should not throw an exception when no node exists after an exists
+ check and the Overseer work loop should not allow free spinning the loop when it hits a KeeperException.
+ (Mark Miller, Fernandez-Lobbe, Mike Drob)
+
+* SOLR-13366: Clarify 'Invalid stage name' warning logging in AutoScalingConfig (Christine Poerschke)
+
+* SOLR-13352: Remove risk of deadlock/threadleak when shutting down an Overseer(TriggerThread). (hossman)
+
+* SOLR-13229: Cleanup replicasMetTragicEvent after all types of exception (Tomás Fernández Löbbe)
+
+Other Changes
+----------------------
+
+* SOLR-13363: Upgrade to ZooKeeper 3.4.14 (Erick Erickson)
+
================== 7.7.1 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
diff --git a/solr-8.1.1/LICENSE.txt b/solr-8.3.1/LICENSE.txt
index 534e44ea1..534e44ea1 100644
--- a/solr-8.1.1/LICENSE.txt
+++ b/solr-8.3.1/LICENSE.txt
diff --git a/solr-8.1.1/LUCENE_CHANGES.txt b/solr-8.3.1/LUCENE_CHANGES.txt
index 990204c44..0d7b7021f 100644
--- a/solr-8.1.1/LUCENE_CHANGES.txt
+++ b/solr-8.3.1/LUCENE_CHANGES.txt
@@ -3,6 +3,311 @@ Lucene Change Log
For more information on past and future Lucene versions, please see:
http://s.apache.org/luceneversions
+======================= Lucene 8.3.1 =======================
+
+Bug Fixes
+---------------------
+
+* LUCENE-9050: MultiTermIntervalsSource.visit() was not calling back to its
+ visitor. (Alan Woodward)
+
+======================= Lucene 8.3.0 =======================
+
+API Changes
+
+* LUCENE-8909: IndexWriter#getFieldNames() method is used to get fields present in index. After LUCENE-8316, this
+ method is no longer required. Hence, deprecate IndexWriter#getFieldNames() method. (Adrien Grand, Munendra S N)
+
+* LUCENE-8755: SpatialPrefixTreeFactory now consumes the "version" parsed with Lucene's Version class. The quad
+ and packed quad prefix trees are sensitive to this. It's recommended to pass the version like you
+ should do likewise for analysis components for tokenized text, or else changes to the encoding in future versions
+ may be incompatible with older indexes. (Chongchen Chen, David Smiley)
+
+* LUCENE-8956: QueryRescorer now only sorts the first topN hits instead of all
+ initial hits. (Paul Sanwald via Adrien Grand)
+
+* LUCENE-8921: IndexSearcher.termStatistics() no longer takes a TermStates; it takes the docFreq and totalTermFreq.
+ And don't call if docFreq <= 0. The previous implementation survives as deprecated and final. It's removed in 9.0.
+ (Bruno Roustant, David Smiley, Alan Woodward)
+
+* LUCENE-8990: PointValues#estimateDocCount(visitor) estimates the number of documents that would be matched by
+ the given IntersectVisitor. THe method is used to compute the cost() of ScorerSuppliers instead of
+ PointValues#estimatePointCount(visitor). (Ignacio Vera, Adrien Grand)
+
+New Features
+
+* LUCENE-8936: Add SpanishMinimalStemFilter (vinod kumar via Tomoko Uchida)
+
+* LUCENE-8764 LUCENE-8945: Add "export all terms and doc freqs" feature to Luke with delimiters. (Leonardo Menezes, Amish Shah via Tomoko Uchida)
+
+* LUCENE-8747: Composite Matches from multiple subqueries now allow access to
+ their submatches, and a new NamedMatches API allows marking of subqueries
+ and a simple way to find which subqueries have matched on a given document
+ (Alan Woodward, Jim Ferenczi)
+
+* LUCENE-8769: Introduce Range Query For Multiple Connected Ranges (Atri Sharma)
+
+* LUCENE-8960: Introduce LatLonDocValuesPointInPolygonQuery for LatLonDocValuesField (Ignacio Vera)
+
+* LUCENE-8753: New UniformSplitPostingsFormat (name "UniformSplit") primarily benefiting in simplicity and
+ extensibility. New STUniformSplitPostingsFormat (name "SharedTermsUniformSplit") that shares a single internal
+ term dictionary across fields. (Bruno Roustant, Juan Rodriguez, David Smiley)
+
+Improvements
+
+* LUCENE-8874: Show SPI names instead of class names in Luke Analysis tab. (Tomoko Uchida)
+
+* LUCENE-8894: Add APIs to find SPI names for Tokenizer/CharFilter/TokenFilter factory classes. (Tomoko Uchida)
+
+* LUCENE-8914: move the logic for discarding inner modes in FloatPointNearestNeighbor to the IntersectVisitor
+ so we take advantage of the change introduced in LUCENE-7862. (Ignacio Vera)
+
+* LUCENE-8955: move the logic for discarding inner modes in LatLonPoint NearestNeighbor to the IntersectVisitor
+ so we take advantage of the change introduced in LUCENE-7862. (Ignacio Vera)
+
+* LUCENE-8918: PhraseQuery throws exceptions at construction time if it is passed
+ null arguments. (Alan Woodward)
+
+* LUCENE-8916: GraphTokenStreamFiniteStrings preserves all Token attributes
+ through its finite strings TokenStreams (Alan Woodward)
+
+* LUCENE-8933: Check kuromoji user dictionary beforehand to avoid unexpected runtime exceptions. (Tomoko Uchida
+
+* LUCENE-8906: Expose Lucene50PostingsFormat.IntBlockTermState as public so that other postings formats can re-use it.
+ (Bruno Roustant)
+
+* LUCENE-8942: Remove redundant parameters and improve visibility strictness in
+ LRUQueryCache (Atri Sharma)
+
+* SOLR-13663: Introduce <SpanPositionRange> into XML Query Parser (Alessandro Benedetti via Mikhail Khludnev)
+
+* LUCENE-8952: Use a sort key instead of true distance in NearestNeighbor (Julie Tibshirani).
+
+* LUCENE-8620: Tessellator labels the edges of the generated triangles whether they belong to
+ the original polygon. This information is added to the triangle encoding. (Ignacio Vera)
+
+* LUCENE-8964: Fix geojson shape parsing on string arrays in properties
+ (Alexander Reelsen)
+
+* LUCENE-8976: Use exact distance between point and bounding rectangle in FloatPointNearestNeighbor. (Ignacio Vera)
+
+* LUCENE-8966: The Korean analyzer now splits tokens on boundaries between digits and alphabetic characters. (Jim Ferenczi)
+
+* LUCENE-8984: MoreLikeThis MLT is biased for uncommon fields (Andy Hind via Anshum Gupta)
+
+Optimizations
+
+* LUCENE-8922: DisjunctionMaxQuery more efficiently leverages impacts to skip
+ non-competitive hits. (Adrien Grand)
+
+* LUCENE-8935: BooleanQuery with no scoring clause can now early terminate the query when
+the total hits is not requested.
+
+* LUCENE-8941: Matches on wildcard queries will defer building their full
+ disjunction until a MatchesIterator is pulled (Alan Woodward)
+
+* LUCENE-8755: spatial-extras quad and packed quad prefix trees now index points faster.
+ (Chongchen Chen, David Smiley)
+
+* LUCENE-8860: add additional leaf node level optimizations in LatLonShapeBoundingBoxQuery.
+ (Igor Motov via Ignacio Vera)
+
+* LUCENE-8968: Improve performance of WITHIN and DISJOINT queries for Shape queries by
+ doing just one pass whenever possible. (Ignacio Vera)
+
+* LUCENE-8939: Introduce shared count based early termination across multiple slices
+ (Atri Sharma)
+
+* LUCENE-8980: Blocktree's seekExact now short-circuits false if the term isn't in the min-max range of the segment.
+ Large perf gain for ID/time like data when populated sequentially. (Guoqiang Jiang)
+
+Bug Fixes
+
+* LUCENE-8755: spatial-extras quad and packed quad prefix trees could throw a
+ NullPointerException for certain cell edge coordinates (Chongchen Chen, David Smiley)
+
+* LUCENE-9005: BooleanQuery.visit() would pull subVisitors from its parent visitor, rather
+ than from a visitor for its own specific query. This could cause problems when BQ was
+ nested under another BQ. Instead, we now pull a MUST subvisitor, pass it to any MUST
+ subclauses, and then pull SHOULD, MUST_NOT and FILTER visitors from it rather than from
+ the parent. (Alan Woodward)
+
+Other
+
+* LUCENE-8778 LUCENE-8911 LUCENE-8957: Define analyzer SPI names as static final fields and document the names in Javadocs.
+ (Tomoko Uchida, Uwe Schindler)
+
+* LUCENE-8758: QuadPrefixTree: removed levelS and levelN fields which weren't used. (Amish Shah)
+
+* LUCENE-8975: Code Cleanup: Use entryset for map iteration wherever possible.
+
+* LUCENE-8993, LUCENE-8807: Changed all repository and download references in build files
+ to HTTPS. (Uwe Schindler)
+
+* LUCENE-8998: Fix OverviewImplTest.testIsOptimized reproducible failure. (Tomoko Uchida)
+
+* LUCENE-8999: LuceneTestCase.expectThrows now propogates assert/assumption failures up to the test
+ w/o wrapping in a new assertion failure unless the caller has explicitly expected them (hossman)
+
+* LUCENE-8062: GlobalOrdinalsWithScoreQuery is no longer eligible for query caching. (Jim Ferenczi)
+
+======================= Lucene 8.2.0 =======================
+
+API Changes
+
+* LUCENE-8865: IndexSearcher now uses Executor instead of ExecutorSerivce.
+ This change is fully backwards compatible since ExecutorService directly
+ implements Executor. (Simon Willnauer)
+
+* LUCENE-8856: Intervals queries have moved from the sandbox to the queries
+ module. (Alan Woodward)
+
+* LUCENE-8893: Intervals.wildcard() and Intervals.prefix() methods now take
+ BytesRef rather than String. (Alan Woodward)
+
+New Features
+
+* LUCENE-8632: New XYShape Field and Queries for indexing and searching general cartesian
+ geometries. (Nick Knize)
+
+* LUCENE-8891: Snowball stemmer/analyzer for the Estonian language.
+ (Gert Morten Paimla via Tomoko Uchida)
+
+* LUCENE-8815: Provide a DoubleValues implementation for retrieving the value of features without
+ requiring a separate numeric field. Note that as feature values are stored with only 8 bits of
+ mantissa the values returned may have a delta from the original values indexed.
+ (Colin Goodheart-Smithe via Adrien Grand)
+
+* LUCENE-8803: Provide a FeatureSortfield to allow sorting search hits by descending value of a
+ feature. This is exposed via the factory method FeatureField#newFeatureSort.
+ (Colin Goodheart-Smithe via Adrien Grand)
+
+* LUCENE-8784: The KoreanTokenizer now preserves punctuations if discardPunctuation is set
+ to false (defaults to true).
+ (Namgyu Kim via Jim Ferenczi)
+
+* LUCENE-8812: Add new KoreanNumberFilter that can change Hangul character to number
+ and process decimal point. It is similar to the JapaneseNumberFilter.
+ (Namgyu Kim)
+
+* LUCENE-8362: Add doc-value support to range fields. (Atri Sharma via Adrien Grand)
+
+* LUCENE-8766: Add monitor subproject (previously Luwak monitoring library). This
+ allows a stream of documents to be matched against a set of registered queries
+ in an efficient manner, for use as a monitoring or classification tool.
+ (Alan Woodward)
+
+* LUCENE-7714: Add a numeric range query in sandbox that takes advantage of index sorting.
+ (Julie Tibshirani via Jim Ferenczi)
+
+* LUCENE-8859: The completion suggester's postings format now have an option to
+ load its internal FST off-heap. (Jim Ferenczi)
+
+Bug Fixes
+
+* LUCENE-8831: Fixed LatLonShapeBoundingBoxQuery .hashCode methods. (Ignacio Vera)
+
+* LUCENE-8775: Improve tessellator to handle better cases where a hole share a vertex
+ with the polygon. (Ignacio Vera)
+
+* LUCENE-8785: Ensure new threadstates are locked before retrieving the number of active threadstates.
+ This causes assertion errors and potentially broken field attributes in the IndexWriter when
+ IndexWriter#deleteAll is called while actively indexing. (Simon Willnauer)
+
+* LUCENE-8804: Forbid calls to putAttribute on frozen FieldType instances.
+ (Vamshi Vijay Nakkirtha via Adrien Grand)
+
+* LUCENE-8828: Removes the buggy 'disallow overlaps' boolean from Intervals.unordered(),
+ and replaces it with a new Intervals.unorderedNoOverlaps() method (Alan Woodward)
+
+* LUCENE-8843: Don't ignore exceptions that are thrown when trying to open a
+ file in IOUtils#fsync. (Jason Tedor via Adrien Grand)
+
+* LUCENE-8835: FileSwitchDirectory now respects the file extension when listing directory
+ contents to ensure we don't expose pending deletes if both directory point to the same
+ underlying filesystem directory. (Simon Willnauer)
+
+* LUCENE-8853: FileSwitchDirectory now applies best effort to place tmp files in the same
+ directory as the target files. (Simon Willnauer)
+
+* LUCENE-8892: Add missing closing parentheses in MultiBoolFunction's description() (Florian Diebold, Munendra S N)
+
+Improvements
+
+* LUCENE-7840: Non-scoring BooleanQuery now removes SHOULD clauses before building the scorer supplier
+ as opposed to eliminating them during scoring construction. (Atri Sharma via Jim Ferenczi)
+
+* LUCENE-8770: BlockMaxConjunctionScorer now leverages two-phase iterators in order to avoid
+ executing the second phase when scorers don't intersect. (Adrien Grand, Jim Ferenczi)
+
+* LUCENE-8781: FST lookup performance has been improved in many cases by
+ encoding Arcs using full-sized arrays with gaps. The new encoding is
+ enabled for postings in the default codec and for suggesters. (Mike Sokolov)
+
+* LUCENE-8818: Fix smokeTestRelease.py encoding bug (janhoy)
+
+* LUCENE-8845: Allow Intervals.prefix() and Intervals.wildcard() to specify
+ their maximum allowed expansions (Alan Woodward)
+
+* LUCENE-8875: Introduce a Collector optimized for use cases when large
+ number of hits are requested (Atri Sharma)
+
+* LUCENE-8848 LUCENE-7757 LUCENE-8492: The UnifiedHighlighter now detects that parts of the query are not understood by
+ it, and thus it should not make optimizations that result in no highlights or slow highlighting. This generally works
+ best for WEIGHT_MATCHES mode. Consequently queries produced by ComplexPhraseQueryParser and the surround QueryParser
+ will now highlight correctly. (David Smiley)
+
+* LUCENE-8793: Luke enhanced UI for CustomAnalyzer: show detailed analysis steps. (Jun Ohtani via Tomoko Uchida)
+
+* LUCENE-8855: Add Accountable to some Query implementations (ab, Adrien Grand)
+
+Optimizations
+
+* LUCENE-8796: Use exponential search instead of binary search in
+ IntArrayDocIdSet#advance method (Luca Cavanna via Adrien Grand)
+
+* LUCENE-8865: Use incoming thread for execution if IndexSearcher has an executor.
+ Now caller threads execute at least one search on an index even if there is
+ an executor provided to minimize thread context switching. (Simon Willnauer)
+
+* LUCENE-8868: New storing strategy for BKD tree leaves with low cardinality.
+ It stores the distinct values once with the cardinality value reducing the
+ storage cost. (Ignacio Vera)
+
+* LUCENE-8885: Optimise BKD reader by exploiting cardinality information stored
+ on leaves. (Ignacio Vera)
+
+* LUCENE-8896: Override default implementation of IntersectVisitor#visit(DocIDSetBuilder, byte[])
+ for several queries. (Ignacio Vera)
+
+* LUCENE-8901: Load frequencies lazily only when needed in BlockDocsEnum and
+ BlockImpactsEverythingEnum (Mayya Sharipova).
+
+* LUCENE-8888: Optimize distribution of points with data dimensions in
+ BKD tree leaves. (Ignacio Vera)
+
+* LUCENE-8311: Phrase queries now leverage impacts. (Adrien Grand)
+
+Test Framework
+
+* LUCENE-8825: CheckHits now display the shard index in case of mismatch
+ between top hits. (Atri Sharma via Adrien Grand)
+
+Other
+
+* LUCENE-8847: Code Cleanup: Remove StringBuilder.append with concatenated
+ strings. (Koen De Groote via Uwe Schindler)
+
+* LUCENE-8861: Script to find open Github PRs that needs attention (janhoy)
+
+* LUCENE-8852: ReleaseWizard tool for release managers (janhoy)
+
+* LUCENE-8838: Remove support for Steiner points on Tessellator. (Ignacio Vera)
+
+* LUCENE-8879: Improve BKDRadixSelector tests. (Ignacio Vera)
+
+* LUCENE-8886: Fix TestMutablePointsReaderUtils tests. (Ignacio Vera)
+
======================= Lucene 8.1.1 =======================
(No Changes)
@@ -76,10 +381,6 @@ Bug fixes
* LUCENE-8765: Fixed validation of the number of added points in KD trees.
(Zhao Yang via Adrien Grand)
-* LUCENE-8785: Ensure new threadstates are locked before retrieving the number of active threadstates.
- This causes assertion errors and potentially broken field attributes in the IndexWriter when
- IndexWriter#deleteAll is called while actively indexing. (Simon Willnauer)
-
Improvements
* LUCENE-8673: Use radix partitioning when merging dimensional points instead
@@ -140,6 +441,9 @@ Changes in Runtime Behavior
trigger changes in the produced scores due to changes to the order in which
scores of sub clauses are summed up. (Adrien Grand)
+* LUCENE-8756: MoreLikeThisQuery now respects custom term frequencies
+ (TermFrequencyAttribute) at search time (Olli Kuonanoja)
+
Other
* LUCENE-8680: Refactor EdgeTree#relateTriangle method. (Ignacio Vera)
@@ -298,7 +602,7 @@ Changes in Runtime Behavior
* LUCENE-8535: Highlighter and FVH doesn't support ToParent and ToChildBlockJoinQuery out of the
box anymore. In order to highlight on Block-Join Queries a custom WeightedSpanTermExtractor / FieldQuery
- should be used. (Simon Willnauer, Jim Ferenczi, Julie Tibshiran)
+ should be used. (Simon Willnauer, Jim Ferenczi, Julie Tibshirani)
* LUCENE-8563: BM25 scores don't include the (k1+1) factor in their numerator
anymore. This doesn't affect ordering as this is a constant factor which is
@@ -422,6 +726,31 @@ Optimizations
* LUCENE-8585: Index-time jump-tables for DocValues, for O(1) advance when retrieving doc values.
(Toke Eskildsen, Adrien Grand)
+======================= Lucene 7.7.2 =======================
+
+Bug fixes
+
+* LUCENE-8726: ValueSource.asDoubleValuesSource() could leak a reference to
+ IndexSearcher (Alan Woodward, Yury Pakhomov)
+
+* LUCENE-8735: FilterDirectory.getPendingDeletions now forwards to the delegate
+ even the method is not abstract in the super class. This prevents issues
+ where our best effort in carrying on generations in the IndexWriter since pending
+ deletions are swallowed by the FilterDirectory. (Henning Andersen, Simon Willnauer)
+
+* LUCENE-8688: TieredMergePolicy#findForcedMerges now tries to create the
+ cheapest merges that allow the index to go down to `maxSegmentCount` segments
+ or less. (Armin Braun via Adrien Grand)
+
+* LUCENE-8785: Ensure new threadstates are locked before retrieving the number of active threadstates.
+ This causes assertion errors and potentially broken field attributes in the IndexWriter when
+ IndexWriter#deleteAll is called while actively indexing. (Simon Willnauer)
+
+* LUCENE-8720: NameIntCacheLRU (in the facets module) had an int
+ overflow bug that disabled cleaning of the cache (Russell A Brown)
+
+* LUCENE-8809: Refresh and rollback concurrently can leave segment states unclosed (Nhat Nguyen)
+
======================= Lucene 7.7.1 =======================
(No Changes)
diff --git a/solr-8.1.1/NOTICE.txt b/solr-8.3.1/NOTICE.txt
index 58b66c4fa..760d650b9 100644
--- a/solr-8.1.1/NOTICE.txt
+++ b/solr-8.3.1/NOTICE.txt
@@ -591,3 +591,16 @@ Apache Commons Codec project. http://commons.apache.org/proper/commons-codec/
JSON processing in this software was derived from the JSON.simple toolkit.
https://code.google.com/p/json-simple/
+
+=========================================================================
+== noggit notice ==
+=========================================================================
+
+noggit
+
+Copyright 2006- Yonik Seeley
+
+Noggit is a fast streaming JSON parser for java. The code is included
+into Solr codebase.
+
+https://github.com/yonik/noggit
diff --git a/solr-8.1.1/README.txt b/solr-8.3.1/README.txt
index 15e9b6090..15e9b6090 100644
--- a/solr-8.1.1/README.txt
+++ b/solr-8.3.1/README.txt
diff --git a/solr-8.1.1/bin/init.d/solr b/solr-8.3.1/bin/init.d/solr
index e73e0d683..e73e0d683 100644
--- a/solr-8.1.1/bin/init.d/solr
+++ b/solr-8.3.1/bin/init.d/solr
diff --git a/solr-8.1.1/bin/install_solr_service.sh b/solr-8.3.1/bin/install_solr_service.sh
index 6cfb6a578..6cfb6a578 100644
--- a/solr-8.1.1/bin/install_solr_service.sh
+++ b/solr-8.3.1/bin/install_solr_service.sh
diff --git a/solr-8.1.1/bin/oom_solr.sh b/solr-8.3.1/bin/oom_solr.sh
index 5ecba6bc3..5ecba6bc3 100644
--- a/solr-8.1.1/bin/oom_solr.sh
+++ b/solr-8.3.1/bin/oom_solr.sh
diff --git a/solr-8.1.1/bin/post b/solr-8.3.1/bin/post
index 4c629d105..4c629d105 100644
--- a/solr-8.1.1/bin/post
+++ b/solr-8.3.1/bin/post
diff --git a/solr-8.1.1/bin/solr b/solr-8.3.1/bin/solr
index 81e98a526..596242fac 100644
--- a/solr-8.1.1/bin/solr
+++ b/solr-8.3.1/bin/solr
@@ -209,6 +209,11 @@ if [ "$SOLR_SSL_ENABLED" == "true" ]; then
if [ -n "$SOLR_SSL_NEED_CLIENT_AUTH" ]; then
SOLR_SSL_OPTS+=" -Dsolr.jetty.ssl.needClientAuth=$SOLR_SSL_NEED_CLIENT_AUTH"
fi
+
+ if [ -z "$SOLR_SSL_CLIENT_HOSTNAME_VERIFICATION" ] ; then
+ SOLR_SSL_OPTS+=" -Dsolr.jetty.ssl.verifyClientHostName=HTTPS"
+ fi
+
if [ -n "$SOLR_SSL_WANT_CLIENT_AUTH" ]; then
SOLR_SSL_OPTS+=" -Dsolr.jetty.ssl.wantClientAuth=$SOLR_SSL_WANT_CLIENT_AUTH"
fi
@@ -312,7 +317,7 @@ function print_usage() {
if [ -z "$CMD" ]; then
echo ""
echo "Usage: solr COMMAND OPTIONS"
- echo " where COMMAND is one of: start, stop, restart, status, healthcheck, create, create_core, create_collection, delete, version, zk, auth, assert, config, autoscaling"
+ echo " where COMMAND is one of: start, stop, restart, status, healthcheck, create, create_core, create_collection, delete, version, zk, auth, assert, config, autoscaling, export"
echo ""
echo " Standalone server example (start Solr running in the background on port 8984):"
echo ""
@@ -1349,6 +1354,11 @@ if [[ "$SCRIPT_CMD" == "autoscaling" ]]; then
exit $?
fi
+if [[ "$SCRIPT_CMD" == "export" ]]; then
+ run_tool export $@
+ exit $?
+fi
+
if [[ "$SCRIPT_CMD" == "auth" ]]; then
VERBOSE=""
@@ -1511,6 +1521,8 @@ if [ -z "$SOLR_ULIMIT_CHECKS" ] || [ "$SOLR_ULIMIT_CHECKS" != "false" ]; then
if hash ulimit 2>/dev/null; then
openFiles=$(ulimit -n)
maxProcs=$(ulimit -u)
+ virtualMemory=$(ulimit -v)
+ maxMemory=$(ulimit -m)
if [ $openFiles != "unlimited" ] && [ $openFiles -lt "$SOLR_RECOMMENDED_OPEN_FILES" ]; then
echo "*** [WARN] *** Your open file limit is currently $openFiles. "
echo " It should be set to $SOLR_RECOMMENDED_OPEN_FILES to avoid operational disruption. "
@@ -1522,10 +1534,23 @@ if [ -z "$SOLR_ULIMIT_CHECKS" ] || [ "$SOLR_ULIMIT_CHECKS" != "false" ]; then
echo " It should be set to $SOLR_RECOMMENDED_MAX_PROCESSES to avoid operational disruption. "
echo " If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh"
fi
+ if [ $virtualMemory != "unlimited" ]; then
+ echo "*** [WARN] *** Your Virtual Memory limit is $virtualMemory. "
+ echo " It should be set to 'unlimited' to avoid operational disruption. "
+ echo " If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh"
+ fi
+ if [ $maxMemory != "unlimited" ]; then
+ echo "*** [WARN] *** Your Max Memory Size limit is $maxMemory. "
+ echo " It should be set to 'unlimited' to avoid operational disruption. "
+ echo " If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh"
+ fi
+
else
echo "Could not check ulimits for processes and open files, recommended values are"
- echo " max processes: $SOLR_RECOMMENDED_MAX_PROCESSES "
- echo " open files: $SOLR_RECOMMENDED_OPEN_FILES"
+ echo " max processes: $SOLR_RECOMMENDED_MAX_PROCESSES "
+ echo " open files: $SOLR_RECOMMENDED_OPEN_FILES"
+ echo " virtual memory: unlimited"
+ echo " max memorh size: unlimited"
fi
fi
fi
diff --git a/solr-8.3.1/bin/solr-8983.pid b/solr-8.3.1/bin/solr-8983.pid
new file mode 100644
index 000000000..a6905f8ba
--- /dev/null
+++ b/solr-8.3.1/bin/solr-8983.pid
@@ -0,0 +1 @@
+999
diff --git a/solr-8.1.1/bin/solr-8983.port b/solr-8.3.1/bin/solr-8983.port
index 56d21626c..56d21626c 100644
--- a/solr-8.1.1/bin/solr-8983.port
+++ b/solr-8.3.1/bin/solr-8983.port
diff --git a/solr-8.1.1/bin/solr.cmd b/solr-8.3.1/bin/solr.cmd
index a4c9d4f89..221b514f1 100644
--- a/solr-8.1.1/bin/solr.cmd
+++ b/solr-8.3.1/bin/solr.cmd
@@ -214,6 +214,7 @@ IF "%1"=="-v" goto get_version
IF "%1"=="-version" goto get_version
IF "%1"=="assert" goto run_assert
IF "%1"=="autoscaling" goto run_autoscaling
+IF "%1"=="export" goto run_export
REM Only allow the command to be the first argument, assume start if not supplied
IF "%1"=="start" goto set_script_cmd
@@ -290,7 +291,7 @@ goto done
:script_usage
@echo.
@echo Usage: solr COMMAND OPTIONS
-@echo where COMMAND is one of: start, stop, restart, healthcheck, create, create_core, create_collection, delete, version, zk, auth, assert, config, autoscaling
+@echo where COMMAND is one of: start, stop, restart, healthcheck, create, create_core, create_collection, delete, version, zk, auth, assert, config, autoscaling, export
@echo.
@echo Standalone server example (start Solr running in the background on port 8984):
@echo.
@@ -1412,7 +1413,14 @@ goto done
-Dlog4j.configurationFile="file:///%DEFAULT_SERVER_DIR%\resources\log4j2-console.xml" ^
-classpath "%DEFAULT_SERVER_DIR%\solr-webapp\webapp\WEB-INF\lib\*;%DEFAULT_SERVER_DIR%\lib\ext\*" ^
org.apache.solr.util.SolrCLI %*
-goto done
+goto done:
+
+:run_export
+"%JAVA%" %SOLR_SSL_OPTS% %AUTHC_OPTS% %SOLR_ZK_CREDS_AND_ACLS% -Dsolr.install.dir="%SOLR_TIP%" ^
+ -Dlog4j.configurationFile="file:///%DEFAULT_SERVER_DIR%\resources\log4j2-console.xml" ^
+ -classpath "%DEFAULT_SERVER_DIR%\solr-webapp\webapp\WEB-INF\lib\*;%DEFAULT_SERVER_DIR%\lib\ext\*" ^
+ org.apache.solr.util.SolrCLI %*
+goto done:
:parse_config_args
IF [%1]==[] goto run_config
diff --git a/solr-8.1.1/bin/solr.in.cmd b/solr-8.3.1/bin/solr.in.cmd
index 8f6c2bd34..20f42fe98 100644
--- a/solr-8.1.1/bin/solr.in.cmd
+++ b/solr-8.3.1/bin/solr.in.cmd
@@ -122,6 +122,8 @@ REM Require clients to authenticate
REM set SOLR_SSL_NEED_CLIENT_AUTH=false
REM Enable clients to authenticate (but not require)
REM set SOLR_SSL_WANT_CLIENT_AUTH=false
+REM Verify client hostname during SSL handshake
+REM set SOLR_SSL_CLIENT_HOSTNAME_VERIFICATION=false
REM SSL Certificates contain host/ip "peer name" information that is validated by default. Setting
REM this to false can be useful to disable these checks when re-using a certificate on many hosts
REM set SOLR_SSL_CHECK_PEER_NAME=true
@@ -168,3 +170,8 @@ REM list of hosts needs to be whitelisted or Solr will forbid the request. The w
REM or if you are using the OOTB solr.xml, can be specified using the system property "solr.shardsWhitelist". Alternatively
REM host checking can be disabled by using the system property "solr.disable.shardsWhitelist"
REM set SOLR_OPTS="%SOLR_OPTS% -Dsolr.shardsWhitelist=http://localhost:8983,http://localhost:8984"
+
+REM For a visual indication in the Admin UI of what type of environment this cluster is, configure
+REM a -Dsolr.environment property below. Valid values are prod, stage, test, dev, with an optional
+REM label or color, e.g. -Dsolr.environment=test,label=Functional+test,color=brown
+REM SOLR_OPTS="$SOLR_OPTS -Dsolr.environment=prod"
diff --git a/solr-8.1.1/bin/solr.in.sh b/solr-8.3.1/bin/solr.in.sh
index 832e3cbf5..d4e6b7bb6 100644
--- a/solr-8.1.1/bin/solr.in.sh
+++ b/solr-8.3.1/bin/solr.in.sh
@@ -82,7 +82,7 @@
# Set to true to activate the JMX RMI connector to allow remote JMX client applications
# to monitor the JVM hosting Solr; set to "false" to disable that behavior
# (false is recommended in production environments)
-ENABLE_REMOTE_JMX_OPTS="true"
+#ENABLE_REMOTE_JMX_OPTS="false"
# The script will use SOLR_PORT+10000 for the RMI_PORT or you can set it here
# RMI_PORT=18983
@@ -139,6 +139,8 @@ ENABLE_REMOTE_JMX_OPTS="true"
#SOLR_SSL_NEED_CLIENT_AUTH=false
# Enable clients to authenticate (but not require)
#SOLR_SSL_WANT_CLIENT_AUTH=false
+# Verify client's hostname during SSL handshake
+#SOLR_SSL_CLIENT_HOSTNAME_VERIFICATION=false
# SSL Certificates contain host/ip "peer name" information that is validated by default. Setting
# this to false can be useful to disable these checks when re-using a certificate on many hosts
#SOLR_SSL_CHECK_PEER_NAME=true
@@ -196,3 +198,8 @@ ENABLE_REMOTE_JMX_OPTS="true"
# or if you are using the OOTB solr.xml, can be specified using the system property "solr.shardsWhitelist". Alternatively
# host checking can be disabled by using the system property "solr.disable.shardsWhitelist"
#SOLR_OPTS="$SOLR_OPTS -Dsolr.shardsWhitelist=http://localhost:8983,http://localhost:8984"
+
+# For a visual indication in the Admin UI of what type of environment this cluster is, configure
+# a -Dsolr.environment property below. Valid values are prod, stage, test, dev, with an optional
+# label or color, e.g. -Dsolr.environment=test,label=Functional+test,color=brown
+#SOLR_OPTS="$SOLR_OPTS -Dsolr.environment=prod"
diff --git a/solr-8.1.1/contrib/analysis-extras/README.txt b/solr-8.3.1/contrib/analysis-extras/README.txt
index fb8381a7a..fb8381a7a 100644
--- a/solr-8.1.1/contrib/analysis-extras/README.txt
+++ b/solr-8.3.1/contrib/analysis-extras/README.txt
diff --git a/solr-8.1.1/contrib/analysis-extras/lib/icu4j-62.1.jar b/solr-8.3.1/contrib/analysis-extras/lib/icu4j-62.1.jar
index c9f8fa227..c9f8fa227 100644
--- a/solr-8.1.1/contrib/analysis-extras/lib/icu4j-62.1.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lib/icu4j-62.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/analysis-extras/lib/morfologik-fsa-2.1.5.jar b/solr-8.3.1/contrib/analysis-extras/lib/morfologik-fsa-2.1.5.jar
index f172e1cfa..f172e1cfa 100644
--- a/solr-8.1.1/contrib/analysis-extras/lib/morfologik-fsa-2.1.5.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lib/morfologik-fsa-2.1.5.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/analysis-extras/lib/morfologik-polish-2.1.5.jar b/solr-8.3.1/contrib/analysis-extras/lib/morfologik-polish-2.1.5.jar
index 35dfd42d1..35dfd42d1 100644
--- a/solr-8.1.1/contrib/analysis-extras/lib/morfologik-polish-2.1.5.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lib/morfologik-polish-2.1.5.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/analysis-extras/lib/morfologik-stemming-2.1.5.jar b/solr-8.3.1/contrib/analysis-extras/lib/morfologik-stemming-2.1.5.jar
index 417a93813..417a93813 100644
--- a/solr-8.1.1/contrib/analysis-extras/lib/morfologik-stemming-2.1.5.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lib/morfologik-stemming-2.1.5.jar
Binary files differ
diff --git a/solr-8.3.1/contrib/analysis-extras/lib/morfologik-ukrainian-search-3.9.0.jar b/solr-8.3.1/contrib/analysis-extras/lib/morfologik-ukrainian-search-3.9.0.jar
new file mode 100644
index 000000000..8b701b311
--- /dev/null
+++ b/solr-8.3.1/contrib/analysis-extras/lib/morfologik-ukrainian-search-3.9.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/analysis-extras/lib/opennlp-tools-1.9.1.jar b/solr-8.3.1/contrib/analysis-extras/lib/opennlp-tools-1.9.1.jar
index cb7b031c8..cb7b031c8 100644
--- a/solr-8.1.1/contrib/analysis-extras/lib/opennlp-tools-1.9.1.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lib/opennlp-tools-1.9.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-icu-8.1.1.jar b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-icu-8.3.1.jar
index 8ac689d59..762d7b52e 100644
--- a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-icu-8.1.1.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-icu-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-morfologik-8.1.1.jar b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-morfologik-8.3.1.jar
index 05f89634f..1d5935e7f 100644
--- a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-morfologik-8.1.1.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-morfologik-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-opennlp-8.1.1.jar b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-opennlp-8.3.1.jar
index 0cfc77050..f7c396c4f 100644
--- a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-opennlp-8.1.1.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-opennlp-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.1.1.jar b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.3.1.jar
index ba837b6a7..7edf55402 100644
--- a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.1.1.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-stempel-8.1.1.jar b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-stempel-8.3.1.jar
index 929b2b3e2..9ee13cb99 100644
--- a/solr-8.1.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-stempel-8.1.1.jar
+++ b/solr-8.3.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-stempel-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/clustering/README.txt b/solr-8.3.1/contrib/clustering/README.txt
index 5e9dcb55f..5e9dcb55f 100644
--- a/solr-8.1.1/contrib/clustering/README.txt
+++ b/solr-8.3.1/contrib/clustering/README.txt
diff --git a/solr-8.1.1/contrib/clustering/lib/attributes-binder-1.3.3.jar b/solr-8.3.1/contrib/clustering/lib/attributes-binder-1.3.3.jar
index 4a7c23619..4a7c23619 100644
--- a/solr-8.1.1/contrib/clustering/lib/attributes-binder-1.3.3.jar
+++ b/solr-8.3.1/contrib/clustering/lib/attributes-binder-1.3.3.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/clustering/lib/carrot2-guava-18.0.jar b/solr-8.3.1/contrib/clustering/lib/carrot2-guava-18.0.jar
index 9c916299c..9c916299c 100644
--- a/solr-8.1.1/contrib/clustering/lib/carrot2-guava-18.0.jar
+++ b/solr-8.3.1/contrib/clustering/lib/carrot2-guava-18.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/clustering/lib/carrot2-mini-3.16.0.jar b/solr-8.3.1/contrib/clustering/lib/carrot2-mini-3.16.0.jar
index d0a188444..d0a188444 100644
--- a/solr-8.1.1/contrib/clustering/lib/carrot2-mini-3.16.0.jar
+++ b/solr-8.3.1/contrib/clustering/lib/carrot2-mini-3.16.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-annotations-2.9.8.jar b/solr-8.3.1/contrib/clustering/lib/jackson-annotations-2.9.9.jar
index 4d9f42153..8e059d971 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-annotations-2.9.8.jar
+++ b/solr-8.3.1/contrib/clustering/lib/jackson-annotations-2.9.9.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/clustering/lib/jackson-databind-2.9.8.jar b/solr-8.3.1/contrib/clustering/lib/jackson-databind-2.9.9.3.jar
index 2d8687b5d..5bf4ba88d 100644
--- a/solr-8.1.1/contrib/clustering/lib/jackson-databind-2.9.8.jar
+++ b/solr-8.3.1/contrib/clustering/lib/jackson-databind-2.9.9.3.jar
Binary files differ
diff --git a/solr-8.3.1/contrib/clustering/lib/simple-xml-safe-2.7.1.jar b/solr-8.3.1/contrib/clustering/lib/simple-xml-safe-2.7.1.jar
new file mode 100644
index 000000000..d4ce9f11e
--- /dev/null
+++ b/solr-8.3.1/contrib/clustering/lib/simple-xml-safe-2.7.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/dataimporthandler-extras/lib/activation-1.1.1.jar b/solr-8.3.1/contrib/dataimporthandler-extras/lib/activation-1.1.1.jar
index 1b703ab28..1b703ab28 100644
--- a/solr-8.1.1/contrib/dataimporthandler-extras/lib/activation-1.1.1.jar
+++ b/solr-8.3.1/contrib/dataimporthandler-extras/lib/activation-1.1.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/dataimporthandler-extras/lib/gimap-1.5.1.jar b/solr-8.3.1/contrib/dataimporthandler-extras/lib/gimap-1.5.1.jar
index 6f1932471..6f1932471 100644
--- a/solr-8.1.1/contrib/dataimporthandler-extras/lib/gimap-1.5.1.jar
+++ b/solr-8.3.1/contrib/dataimporthandler-extras/lib/gimap-1.5.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/dataimporthandler-extras/lib/javax.mail-1.5.1.jar b/solr-8.3.1/contrib/dataimporthandler-extras/lib/javax.mail-1.5.1.jar
index 0c5ac3967..0c5ac3967 100644
--- a/solr-8.1.1/contrib/dataimporthandler-extras/lib/javax.mail-1.5.1.jar
+++ b/solr-8.3.1/contrib/dataimporthandler-extras/lib/javax.mail-1.5.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/dataimporthandler/README.txt b/solr-8.3.1/contrib/dataimporthandler/README.txt
index c9698725a..c9698725a 100644
--- a/solr-8.1.1/contrib/dataimporthandler/README.txt
+++ b/solr-8.3.1/contrib/dataimporthandler/README.txt
diff --git a/solr-8.1.1/contrib/extraction/README.txt b/solr-8.3.1/contrib/extraction/README.txt
index b2ba66d50..b2ba66d50 100644
--- a/solr-8.1.1/contrib/extraction/README.txt
+++ b/solr-8.3.1/contrib/extraction/README.txt
diff --git a/solr-8.1.1/contrib/extraction/lib/apache-mime4j-core-0.8.2.jar b/solr-8.3.1/contrib/extraction/lib/apache-mime4j-core-0.8.2.jar
index c60c3a43a..c60c3a43a 100644
--- a/solr-8.1.1/contrib/extraction/lib/apache-mime4j-core-0.8.2.jar
+++ b/solr-8.3.1/contrib/extraction/lib/apache-mime4j-core-0.8.2.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/apache-mime4j-dom-0.8.2.jar b/solr-8.3.1/contrib/extraction/lib/apache-mime4j-dom-0.8.2.jar
index 5913c4a9b..5913c4a9b 100644
--- a/solr-8.1.1/contrib/extraction/lib/apache-mime4j-dom-0.8.2.jar
+++ b/solr-8.3.1/contrib/extraction/lib/apache-mime4j-dom-0.8.2.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/aspectjrt-1.8.0.jar b/solr-8.3.1/contrib/extraction/lib/aspectjrt-1.8.0.jar
index 776f99885..776f99885 100644
--- a/solr-8.1.1/contrib/extraction/lib/aspectjrt-1.8.0.jar
+++ b/solr-8.3.1/contrib/extraction/lib/aspectjrt-1.8.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/bcmail-jdk15on-1.60.jar b/solr-8.3.1/contrib/extraction/lib/bcmail-jdk15on-1.60.jar
index 215641b74..215641b74 100644
--- a/solr-8.1.1/contrib/extraction/lib/bcmail-jdk15on-1.60.jar
+++ b/solr-8.3.1/contrib/extraction/lib/bcmail-jdk15on-1.60.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/bcpkix-jdk15on-1.60.jar b/solr-8.3.1/contrib/extraction/lib/bcpkix-jdk15on-1.60.jar
index 87ce8b473..87ce8b473 100644
--- a/solr-8.1.1/contrib/extraction/lib/bcpkix-jdk15on-1.60.jar
+++ b/solr-8.3.1/contrib/extraction/lib/bcpkix-jdk15on-1.60.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/bcprov-jdk15on-1.60.jar b/solr-8.3.1/contrib/extraction/lib/bcprov-jdk15on-1.60.jar
index 5be567cbb..5be567cbb 100644
--- a/solr-8.1.1/contrib/extraction/lib/bcprov-jdk15on-1.60.jar
+++ b/solr-8.3.1/contrib/extraction/lib/bcprov-jdk15on-1.60.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/boilerpipe-1.1.0.jar b/solr-8.3.1/contrib/extraction/lib/boilerpipe-1.1.0.jar
index b64b033af..b64b033af 100644
--- a/solr-8.1.1/contrib/extraction/lib/boilerpipe-1.1.0.jar
+++ b/solr-8.3.1/contrib/extraction/lib/boilerpipe-1.1.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/commons-collections4-4.2.jar b/solr-8.3.1/contrib/extraction/lib/commons-collections4-4.2.jar
index 73a4f3f2e..73a4f3f2e 100644
--- a/solr-8.1.1/contrib/extraction/lib/commons-collections4-4.2.jar
+++ b/solr-8.3.1/contrib/extraction/lib/commons-collections4-4.2.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/commons-compress-1.18.jar b/solr-8.3.1/contrib/extraction/lib/commons-compress-1.18.jar
index e401046b5..e401046b5 100644
--- a/solr-8.1.1/contrib/extraction/lib/commons-compress-1.18.jar
+++ b/solr-8.3.1/contrib/extraction/lib/commons-compress-1.18.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/curvesapi-1.04.jar b/solr-8.3.1/contrib/extraction/lib/curvesapi-1.04.jar
index f097d0b3a..f097d0b3a 100644
--- a/solr-8.1.1/contrib/extraction/lib/curvesapi-1.04.jar
+++ b/solr-8.3.1/contrib/extraction/lib/curvesapi-1.04.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/dec-0.1.2.jar b/solr-8.3.1/contrib/extraction/lib/dec-0.1.2.jar
index 7f1c1be5a..7f1c1be5a 100644
--- a/solr-8.1.1/contrib/extraction/lib/dec-0.1.2.jar
+++ b/solr-8.3.1/contrib/extraction/lib/dec-0.1.2.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/fontbox-2.0.12.jar b/solr-8.3.1/contrib/extraction/lib/fontbox-2.0.12.jar
index a201a6c23..a201a6c23 100644
--- a/solr-8.1.1/contrib/extraction/lib/fontbox-2.0.12.jar
+++ b/solr-8.3.1/contrib/extraction/lib/fontbox-2.0.12.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/icu4j-62.1.jar b/solr-8.3.1/contrib/extraction/lib/icu4j-62.1.jar
index c9f8fa227..c9f8fa227 100644
--- a/solr-8.1.1/contrib/extraction/lib/icu4j-62.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/icu4j-62.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/isoparser-1.1.22.jar b/solr-8.3.1/contrib/extraction/lib/isoparser-1.1.22.jar
index c48e77673..c48e77673 100644
--- a/solr-8.1.1/contrib/extraction/lib/isoparser-1.1.22.jar
+++ b/solr-8.3.1/contrib/extraction/lib/isoparser-1.1.22.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/jackcess-2.1.12.jar b/solr-8.3.1/contrib/extraction/lib/jackcess-2.1.12.jar
index eac0450c4..eac0450c4 100644
--- a/solr-8.1.1/contrib/extraction/lib/jackcess-2.1.12.jar
+++ b/solr-8.3.1/contrib/extraction/lib/jackcess-2.1.12.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/jackcess-encrypt-2.1.4.jar b/solr-8.3.1/contrib/extraction/lib/jackcess-encrypt-2.1.4.jar
index 8b4c75aad..8b4c75aad 100644
--- a/solr-8.1.1/contrib/extraction/lib/jackcess-encrypt-2.1.4.jar
+++ b/solr-8.3.1/contrib/extraction/lib/jackcess-encrypt-2.1.4.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/java-libpst-0.8.1.jar b/solr-8.3.1/contrib/extraction/lib/java-libpst-0.8.1.jar
index 61e834d19..61e834d19 100644
--- a/solr-8.1.1/contrib/extraction/lib/java-libpst-0.8.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/java-libpst-0.8.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/jdom2-2.0.6.jar b/solr-8.3.1/contrib/extraction/lib/jdom2-2.0.6.jar
index 2850ca10c..2850ca10c 100644
--- a/solr-8.1.1/contrib/extraction/lib/jdom2-2.0.6.jar
+++ b/solr-8.3.1/contrib/extraction/lib/jdom2-2.0.6.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/jempbox-1.8.16.jar b/solr-8.3.1/contrib/extraction/lib/jempbox-1.8.16.jar
index edd06c59f..edd06c59f 100644
--- a/solr-8.1.1/contrib/extraction/lib/jempbox-1.8.16.jar
+++ b/solr-8.3.1/contrib/extraction/lib/jempbox-1.8.16.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/jmatio-1.5.jar b/solr-8.3.1/contrib/extraction/lib/jmatio-1.5.jar
index ce7df6cbe..ce7df6cbe 100644
--- a/solr-8.1.1/contrib/extraction/lib/jmatio-1.5.jar
+++ b/solr-8.3.1/contrib/extraction/lib/jmatio-1.5.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/juniversalchardet-1.0.3.jar b/solr-8.3.1/contrib/extraction/lib/juniversalchardet-1.0.3.jar
index ef4d7af57..ef4d7af57 100644
--- a/solr-8.1.1/contrib/extraction/lib/juniversalchardet-1.0.3.jar
+++ b/solr-8.3.1/contrib/extraction/lib/juniversalchardet-1.0.3.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/metadata-extractor-2.11.0.jar b/solr-8.3.1/contrib/extraction/lib/metadata-extractor-2.11.0.jar
index 49da45e15..49da45e15 100644
--- a/solr-8.1.1/contrib/extraction/lib/metadata-extractor-2.11.0.jar
+++ b/solr-8.3.1/contrib/extraction/lib/metadata-extractor-2.11.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/parso-2.0.9.jar b/solr-8.3.1/contrib/extraction/lib/parso-2.0.9.jar
index 25de5e162..25de5e162 100644
--- a/solr-8.1.1/contrib/extraction/lib/parso-2.0.9.jar
+++ b/solr-8.3.1/contrib/extraction/lib/parso-2.0.9.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/pdfbox-2.0.12.jar b/solr-8.3.1/contrib/extraction/lib/pdfbox-2.0.12.jar
index 3f630596d..3f630596d 100644
--- a/solr-8.1.1/contrib/extraction/lib/pdfbox-2.0.12.jar
+++ b/solr-8.3.1/contrib/extraction/lib/pdfbox-2.0.12.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/pdfbox-tools-2.0.12.jar b/solr-8.3.1/contrib/extraction/lib/pdfbox-tools-2.0.12.jar
index e0cc0c4e7..e0cc0c4e7 100644
--- a/solr-8.1.1/contrib/extraction/lib/pdfbox-tools-2.0.12.jar
+++ b/solr-8.3.1/contrib/extraction/lib/pdfbox-tools-2.0.12.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/poi-4.0.0.jar b/solr-8.3.1/contrib/extraction/lib/poi-4.0.0.jar
index a910407be..a910407be 100644
--- a/solr-8.1.1/contrib/extraction/lib/poi-4.0.0.jar
+++ b/solr-8.3.1/contrib/extraction/lib/poi-4.0.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/poi-ooxml-4.0.0.jar b/solr-8.3.1/contrib/extraction/lib/poi-ooxml-4.0.0.jar
index 29a2fd2b3..29a2fd2b3 100644
--- a/solr-8.1.1/contrib/extraction/lib/poi-ooxml-4.0.0.jar
+++ b/solr-8.3.1/contrib/extraction/lib/poi-ooxml-4.0.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/poi-ooxml-schemas-4.0.0.jar b/solr-8.3.1/contrib/extraction/lib/poi-ooxml-schemas-4.0.0.jar
index 0386d6ed3..0386d6ed3 100644
--- a/solr-8.1.1/contrib/extraction/lib/poi-ooxml-schemas-4.0.0.jar
+++ b/solr-8.3.1/contrib/extraction/lib/poi-ooxml-schemas-4.0.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/poi-scratchpad-4.0.0.jar b/solr-8.3.1/contrib/extraction/lib/poi-scratchpad-4.0.0.jar
index 20eb0bc89..20eb0bc89 100644
--- a/solr-8.1.1/contrib/extraction/lib/poi-scratchpad-4.0.0.jar
+++ b/solr-8.3.1/contrib/extraction/lib/poi-scratchpad-4.0.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/rome-1.5.1.jar b/solr-8.3.1/contrib/extraction/lib/rome-1.5.1.jar
index 8befaa005..8befaa005 100644
--- a/solr-8.1.1/contrib/extraction/lib/rome-1.5.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/rome-1.5.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/rome-utils-1.5.1.jar b/solr-8.3.1/contrib/extraction/lib/rome-utils-1.5.1.jar
index 0fb83ebb8..0fb83ebb8 100644
--- a/solr-8.1.1/contrib/extraction/lib/rome-utils-1.5.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/rome-utils-1.5.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/tagsoup-1.2.1.jar b/solr-8.3.1/contrib/extraction/lib/tagsoup-1.2.1.jar
index 275160191..275160191 100644
--- a/solr-8.1.1/contrib/extraction/lib/tagsoup-1.2.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/tagsoup-1.2.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/tika-core-1.19.1.jar b/solr-8.3.1/contrib/extraction/lib/tika-core-1.19.1.jar
index 21393f8b0..21393f8b0 100644
--- a/solr-8.1.1/contrib/extraction/lib/tika-core-1.19.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/tika-core-1.19.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/tika-java7-1.19.1.jar b/solr-8.3.1/contrib/extraction/lib/tika-java7-1.19.1.jar
index a49db3974..a49db3974 100644
--- a/solr-8.1.1/contrib/extraction/lib/tika-java7-1.19.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/tika-java7-1.19.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/tika-parsers-1.19.1.jar b/solr-8.3.1/contrib/extraction/lib/tika-parsers-1.19.1.jar
index 1230e1b77..1230e1b77 100644
--- a/solr-8.1.1/contrib/extraction/lib/tika-parsers-1.19.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/tika-parsers-1.19.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/tika-xmp-1.19.1.jar b/solr-8.3.1/contrib/extraction/lib/tika-xmp-1.19.1.jar
index 8dec5ac6c..8dec5ac6c 100644
--- a/solr-8.1.1/contrib/extraction/lib/tika-xmp-1.19.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/tika-xmp-1.19.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/vorbis-java-core-0.8.jar b/solr-8.3.1/contrib/extraction/lib/vorbis-java-core-0.8.jar
index ff2b3f158..ff2b3f158 100644
--- a/solr-8.1.1/contrib/extraction/lib/vorbis-java-core-0.8.jar
+++ b/solr-8.3.1/contrib/extraction/lib/vorbis-java-core-0.8.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/vorbis-java-tika-0.8.jar b/solr-8.3.1/contrib/extraction/lib/vorbis-java-tika-0.8.jar
index 7b2ca9846..7b2ca9846 100644
--- a/solr-8.1.1/contrib/extraction/lib/vorbis-java-tika-0.8.jar
+++ b/solr-8.3.1/contrib/extraction/lib/vorbis-java-tika-0.8.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/xercesImpl-2.9.1.jar b/solr-8.3.1/contrib/extraction/lib/xercesImpl-2.9.1.jar
index 547f56300..547f56300 100644
--- a/solr-8.1.1/contrib/extraction/lib/xercesImpl-2.9.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/xercesImpl-2.9.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/xmlbeans-3.0.1.jar b/solr-8.3.1/contrib/extraction/lib/xmlbeans-3.0.1.jar
index 1e61b5f98..1e61b5f98 100644
--- a/solr-8.1.1/contrib/extraction/lib/xmlbeans-3.0.1.jar
+++ b/solr-8.3.1/contrib/extraction/lib/xmlbeans-3.0.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/xmpcore-5.1.3.jar b/solr-8.3.1/contrib/extraction/lib/xmpcore-5.1.3.jar
index dfd0f37cd..dfd0f37cd 100644
--- a/solr-8.1.1/contrib/extraction/lib/xmpcore-5.1.3.jar
+++ b/solr-8.3.1/contrib/extraction/lib/xmpcore-5.1.3.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/extraction/lib/xz-1.8.jar b/solr-8.3.1/contrib/extraction/lib/xz-1.8.jar
index 9931efa3e..9931efa3e 100644
--- a/solr-8.1.1/contrib/extraction/lib/xz-1.8.jar
+++ b/solr-8.3.1/contrib/extraction/lib/xz-1.8.jar
Binary files differ
diff --git a/solr-8.3.1/contrib/jaegertracer-configurator/README.txt b/solr-8.3.1/contrib/jaegertracer-configurator/README.txt
new file mode 100644
index 000000000..4fe1c2406
--- /dev/null
+++ b/solr-8.3.1/contrib/jaegertracer-configurator/README.txt
@@ -0,0 +1,32 @@
+Welcome to Apache Solr Jaeger Tracer Configurator
+========
+
+Apache Solr Jaeger Tracer Configurator (solr-jaegertracer) provides a way for you to expose Solr's tracing to Jaeger.
+
+# Setup Jaeger Tracer Configurator
+
+Note that all library of solr-jaegertracer must be included in the classpath of all nodes then Jaeger tracer can be setup in `solr.xml` like this:
+
+```
+<tracerConfig name="tracerConfig" class="org.apache.solr.jaeger.JaegerTracerConfigurator">
+ <str name="agentHost">localhost</str>
+ <int name="agentPort">5775</int>
+ <bool name="logSpans">true</bool>
+ <int name="flushInterval">1000</int>
+ <int name="maxQueueSize">10000</int>
+</tracerConfig>
+```
+
+List of parameters for JaegerTracerConfigurator include:
+|Parameter|Type|Required|Default|Description|
+|---------|----|--------|-------|-----------|
+|agentHost|string|Yes||The host of Jaeger backend|
+|agentPort|int|Yes||The port of Jaeger port|
+|logsSpans|bool|No|true|Whether the tracer should also log the spans|
+|flushInterval|int|No|5000|The tracer's flush interval (ms)|
+|maxQueueSize|int|No|10000|The tracer's maximum queue size|
+
+Other parameters which are not listed above can be configured using System Properties or Environment Variables. The full list are listed at [Jaeger-README](https://github.com/jaegertracing/jaeger-client-java/blob/master/jaeger-core/README.md).
+
+By default the sampling rate is 0.1%, this value can be changed by updating
+key `samplePercentage` of cluster properties. I.e: `/admin/collections?action=CLUSTERPROP&name=propertyName&samplePercentage=100`.
diff --git a/solr-8.3.1/contrib/jaegertracer-configurator/lib/jaeger-core-0.35.5.jar b/solr-8.3.1/contrib/jaegertracer-configurator/lib/jaeger-core-0.35.5.jar
new file mode 100644
index 000000000..44e4bac19
--- /dev/null
+++ b/solr-8.3.1/contrib/jaegertracer-configurator/lib/jaeger-core-0.35.5.jar
Binary files differ
diff --git a/solr-8.3.1/contrib/jaegertracer-configurator/lib/jaeger-thrift-0.35.5.jar b/solr-8.3.1/contrib/jaegertracer-configurator/lib/jaeger-thrift-0.35.5.jar
new file mode 100644
index 000000000..906b22c2b
--- /dev/null
+++ b/solr-8.3.1/contrib/jaegertracer-configurator/lib/jaeger-thrift-0.35.5.jar
Binary files differ
diff --git a/solr-8.3.1/contrib/jaegertracer-configurator/lib/libthrift-0.12.0.jar b/solr-8.3.1/contrib/jaegertracer-configurator/lib/libthrift-0.12.0.jar
new file mode 100644
index 000000000..f5f0446c7
--- /dev/null
+++ b/solr-8.3.1/contrib/jaegertracer-configurator/lib/libthrift-0.12.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/langid/README.txt b/solr-8.3.1/contrib/langid/README.txt
index 68a2ea58c..68a2ea58c 100644
--- a/solr-8.1.1/contrib/langid/README.txt
+++ b/solr-8.3.1/contrib/langid/README.txt
diff --git a/solr-8.1.1/contrib/langid/lib/jsonic-1.2.7.jar b/solr-8.3.1/contrib/langid/lib/jsonic-1.2.7.jar
index 11fcfd4ba..11fcfd4ba 100644
--- a/solr-8.1.1/contrib/langid/lib/jsonic-1.2.7.jar
+++ b/solr-8.3.1/contrib/langid/lib/jsonic-1.2.7.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/langid/lib/langdetect-1.1-20120112.jar b/solr-8.3.1/contrib/langid/lib/langdetect-1.1-20120112.jar
index 2e7a9cf36..2e7a9cf36 100644
--- a/solr-8.1.1/contrib/langid/lib/langdetect-1.1-20120112.jar
+++ b/solr-8.3.1/contrib/langid/lib/langdetect-1.1-20120112.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/langid/lib/opennlp-tools-1.9.1.jar b/solr-8.3.1/contrib/langid/lib/opennlp-tools-1.9.1.jar
index cb7b031c8..cb7b031c8 100644
--- a/solr-8.1.1/contrib/langid/lib/opennlp-tools-1.9.1.jar
+++ b/solr-8.3.1/contrib/langid/lib/opennlp-tools-1.9.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/ltr/README.txt b/solr-8.3.1/contrib/ltr/README.txt
index 6324ecfb3..6324ecfb3 100644
--- a/solr-8.1.1/contrib/ltr/README.txt
+++ b/solr-8.3.1/contrib/ltr/README.txt
diff --git a/solr-8.1.1/contrib/prometheus-exporter/README.txt b/solr-8.3.1/contrib/prometheus-exporter/README.txt
index 888f237b8..888f237b8 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/README.txt
+++ b/solr-8.3.1/contrib/prometheus-exporter/README.txt
diff --git a/solr-8.1.1/contrib/prometheus-exporter/bin/solr-exporter b/solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter
index ea349609e..9dc717ea7 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/bin/solr-exporter
+++ b/solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter
@@ -104,7 +104,23 @@ do
CLASSPATH="$CLASSPATH":"$JAR"
done
-EXTRA_JVM_ARGUMENTS="-Xmx512m -Dlog4j.configurationFile=file:"$BASEDIR"/../../server/resources/log4j2-console.xml"
+# Memory settings
+JAVA_MEM_OPTS=
+if [ -z "$JAVA_HEAP" ] && [ -n "$JAVA_MEM" ]; then
+ JAVA_MEM_OPTS="$JAVA_MEM"
+else
+ JAVA_HEAP="${JAVA_HEAP:-512m}"
+ JAVA_MEM_OPTS="-Xms$JAVA_HEAP -Xmx$JAVA_HEAP"
+fi
+
+# define default GC_TUNE
+if [ -z ${GC_TUNE+x} ]; then
+ GC_TUNE='-XX:+UseG1GC'
+else
+ GC_TUNE="$GC_TUNE"
+fi
+
+EXTRA_JVM_ARGUMENTS="-Dlog4j.configurationFile=file:"$BASEDIR"/../../server/resources/log4j2-console.xml"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
@@ -115,7 +131,10 @@ if $cygwin; then
[ -n "$REPO" ] && REPO=`cygpath --path --windows "$REPO"`
fi
-exec "$JAVACMD" $JAVA_OPTS \
+exec "$JAVACMD" \
+ $JAVA_MEM_OPTS \
+ $GC_TUNE \
+ $JAVA_OPTS \
$EXTRA_JVM_ARGUMENTS \
-classpath "$CLASSPATH" \
-Dapp.name="solr-exporter" \
diff --git a/solr-8.1.1/contrib/prometheus-exporter/bin/solr-exporter.cmd b/solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter.cmd
index 4ff47cf6d..e5bd65ef8 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/bin/solr-exporter.cmd
+++ b/solr-8.3.1/contrib/prometheus-exporter/bin/solr-exporter.cmd
@@ -63,19 +63,22 @@ set BASEDIR=%~dp0..
:repoSetup
+IF NOT "%JAVA_HEAP%"=="" set JAVA_MEM=-Xms%JAVA_HEAP% -Xmx%JAVA_HEAP%
+IF "%JAVA_MEM%"=="" set JAVA_MEM=-Xms512m -Xmx512m
+IF "%GC_TUNE%"=="" set GC_TUNE=-XX:+UseG1GC
if "%JAVACMD%"=="" set JAVACMD=java
if "%REPO%"=="" set REPO=%BASEDIR%\lib
set CLASSPATH=%REPO%\*;%BASEDIR%\..\..\dist\solrj-lib\*;%BASEDIR%\..\..\dist\*;%BASEDIR%\lucene-libs\*;%BASEDIR%\..\..\server\solr-webapp\webapp\WEB-INF\lib\*
-set EXTRA_JVM_ARGUMENTS=-Xmx512m -Dlog4j.configurationFile=file:///%BASEDIR%\..\..\server\resources\log4j2-console.xml
+set EXTRA_JVM_ARGUMENTS=-Dlog4j.configurationFile=file:///%BASEDIR%\..\..\server\resources\log4j2-console.xml
goto endInit
@REM Reaching here means variables are defined and arguments have been captured
:endInit
-%JAVACMD% %JAVA_OPTS% %EXTRA_JVM_ARGUMENTS% -classpath "%CLASSPATH_PREFIX%;%CLASSPATH%" -Dapp.name="solr-exporter" -Dapp.repo="%REPO%" -Dbasedir="%BASEDIR%" org.apache.solr.prometheus.exporter.SolrExporter %CMD_LINE_ARGS%
+%JAVACMD% %JAVA_MEM% %GC_TUNE% %JAVA_OPTS% %EXTRA_JVM_ARGUMENTS% -classpath "%CLASSPATH_PREFIX%;%CLASSPATH%" -Dapp.name="solr-exporter" -Dapp.repo="%REPO%" -Dbasedir="%BASEDIR%" org.apache.solr.prometheus.exporter.SolrExporter %CMD_LINE_ARGS%
if ERRORLEVEL 1 goto error
goto end
diff --git a/solr-8.1.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json b/solr-8.3.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json
index ddc5b4410..ddc5b4410 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json
+++ b/solr-8.3.1/contrib/prometheus-exporter/conf/grafana-solr-dashboard.json
diff --git a/solr-8.1.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml b/solr-8.3.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml
index b043835ec..b043835ec 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml
+++ b/solr-8.3.1/contrib/prometheus-exporter/conf/solr-exporter-config.xml
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/argparse4j-0.8.1.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/argparse4j-0.8.1.jar
index b3039f4a3..b3039f4a3 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/argparse4j-0.8.1.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/argparse4j-0.8.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/clustering/lib/jackson-annotations-2.9.8.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/jackson-annotations-2.9.9.jar
index 4d9f42153..8e059d971 100644
--- a/solr-8.1.1/contrib/clustering/lib/jackson-annotations-2.9.8.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/jackson-annotations-2.9.9.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/jackson-core-2.9.8.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/jackson-core-2.9.9.jar
index 362f1f393..02bd446dd 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/jackson-core-2.9.8.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/jackson-core-2.9.9.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/jackson-databind-2.9.8.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/jackson-databind-2.9.9.3.jar
index 2d8687b5d..5bf4ba88d 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/jackson-databind-2.9.8.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/jackson-databind-2.9.9.3.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/jackson-jq-0.0.8.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/jackson-jq-0.0.8.jar
index ddaa28236..ddaa28236 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/jackson-jq-0.0.8.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/jackson-jq-0.0.8.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/log4j-api-2.11.2.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/log4j-api-2.11.2.jar
index 809773c0b..809773c0b 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/log4j-api-2.11.2.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/log4j-api-2.11.2.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/log4j-core-2.11.2.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/log4j-core-2.11.2.jar
index dcb652cb7..dcb652cb7 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/log4j-core-2.11.2.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/log4j-core-2.11.2.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/log4j-slf4j-impl-2.11.2.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/log4j-slf4j-impl-2.11.2.jar
index ce8acdaae..ce8acdaae 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/log4j-slf4j-impl-2.11.2.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/log4j-slf4j-impl-2.11.2.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/simpleclient-0.2.0.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/simpleclient-0.2.0.jar
index 7637da86d..7637da86d 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/simpleclient-0.2.0.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/simpleclient-0.2.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/simpleclient_common-0.2.0.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/simpleclient_common-0.2.0.jar
index cb0a6ec46..cb0a6ec46 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/simpleclient_common-0.2.0.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/simpleclient_common-0.2.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/simpleclient_httpserver-0.2.0.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/simpleclient_httpserver-0.2.0.jar
index 8edddf173..8edddf173 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/simpleclient_httpserver-0.2.0.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/simpleclient_httpserver-0.2.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/slf4j-api-1.7.24.jar b/solr-8.3.1/contrib/prometheus-exporter/lib/slf4j-api-1.7.24.jar
index 05941a12f..05941a12f 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/slf4j-api-1.7.24.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lib/slf4j-api-1.7.24.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-common-8.1.1.jar b/solr-8.3.1/contrib/prometheus-exporter/lucene-libs/lucene-analyzers-common-8.3.1.jar
index fb4388552..9fb59d2e7 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-common-8.1.1.jar
+++ b/solr-8.3.1/contrib/prometheus-exporter/lucene-libs/lucene-analyzers-common-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/velocity/lib/commons-lang3-3.8.1.jar b/solr-8.3.1/contrib/velocity/lib/commons-lang3-3.8.1.jar
index 2c65ce67d..2c65ce67d 100644
--- a/solr-8.1.1/contrib/velocity/lib/commons-lang3-3.8.1.jar
+++ b/solr-8.3.1/contrib/velocity/lib/commons-lang3-3.8.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/velocity/lib/velocity-engine-core-2.0.jar b/solr-8.3.1/contrib/velocity/lib/velocity-engine-core-2.0.jar
index c48d6606e..c48d6606e 100644
--- a/solr-8.1.1/contrib/velocity/lib/velocity-engine-core-2.0.jar
+++ b/solr-8.3.1/contrib/velocity/lib/velocity-engine-core-2.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/velocity/lib/velocity-tools-generic-3.0.jar b/solr-8.3.1/contrib/velocity/lib/velocity-tools-generic-3.0.jar
index c69681fb2..c69681fb2 100644
--- a/solr-8.1.1/contrib/velocity/lib/velocity-tools-generic-3.0.jar
+++ b/solr-8.3.1/contrib/velocity/lib/velocity-tools-generic-3.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/velocity/lib/velocity-tools-view-3.0.jar b/solr-8.3.1/contrib/velocity/lib/velocity-tools-view-3.0.jar
index 562a9d29c..562a9d29c 100644
--- a/solr-8.1.1/contrib/velocity/lib/velocity-tools-view-3.0.jar
+++ b/solr-8.3.1/contrib/velocity/lib/velocity-tools-view-3.0.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/velocity/lib/velocity-tools-view-jsp-3.0.jar b/solr-8.3.1/contrib/velocity/lib/velocity-tools-view-jsp-3.0.jar
index 88e46ba31..88e46ba31 100644
--- a/solr-8.1.1/contrib/velocity/lib/velocity-tools-view-jsp-3.0.jar
+++ b/solr-8.3.1/contrib/velocity/lib/velocity-tools-view-jsp-3.0.jar
Binary files differ
diff --git a/solr-8.1.1/docs/images/solr.svg b/solr-8.3.1/docs/images/solr.svg
index cb4ae64f8..cb4ae64f8 100644
--- a/solr-8.1.1/docs/images/solr.svg
+++ b/solr-8.3.1/docs/images/solr.svg
diff --git a/solr-8.1.1/docs/index.html b/solr-8.3.1/docs/index.html
index 07ccead0a..d00deea56 100644
--- a/solr-8.1.1/docs/index.html
+++ b/solr-8.3.1/docs/index.html
@@ -1,7 +1,7 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Apache Solr 8.1.1 Documentation</title>
+<title>Apache Solr 8.3.1 Documentation</title>
<link rel="icon" type="image/x-icon" href="images/favicon.ico">
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico">
</head>
@@ -12,9 +12,9 @@
<span style="font-size: x-small">TM</span>
</div>
</div>
-<h1>Apache Solr<span style="vertical-align: top; font-size: x-small">TM</span> 8.1.1 Documentation</h1>
+<h1>Apache Solr<span style="vertical-align: top; font-size: x-small">TM</span> 8.3.1 Documentation</h1>
<p>
-<a href="https://lucene.apache.org/solr/8_1_1/">Follow this link to view online documentation for Solr 8.1.1.</a>
+<a href="https://lucene.apache.org/solr/8_3_1/">Follow this link to view online documentation for Solr 8.3.1.</a>
</p>
</body>
</html>
diff --git a/solr-8.1.1/example/README.txt b/solr-8.3.1/example/README.txt
index 1bfb59890..1bfb59890 100644
--- a/solr-8.1.1/example/README.txt
+++ b/solr-8.3.1/example/README.txt
diff --git a/solr-8.1.1/example/example-DIH/README.txt b/solr-8.3.1/example/example-DIH/README.txt
index 30c37ebf1..30c37ebf1 100644
--- a/solr-8.1.1/example/example-DIH/README.txt
+++ b/solr-8.3.1/example/example-DIH/README.txt
diff --git a/solr-8.1.1/example/example-DIH/hsqldb/ex.script b/solr-8.3.1/example/example-DIH/hsqldb/ex.script
index b78f6cfb2..b78f6cfb2 100644
--- a/solr-8.1.1/example/example-DIH/hsqldb/ex.script
+++ b/solr-8.3.1/example/example-DIH/hsqldb/ex.script
diff --git a/solr-8.1.1/example/example-DIH/solr/atom/conf/atom-data-config.xml b/solr-8.3.1/example/example-DIH/solr/atom/conf/atom-data-config.xml
index b7de812d0..b7de812d0 100644
--- a/solr-8.1.1/example/example-DIH/solr/atom/conf/atom-data-config.xml
+++ b/solr-8.3.1/example/example-DIH/solr/atom/conf/atom-data-config.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/atom/conf/lang/stopwords_en.txt b/solr-8.3.1/example/example-DIH/solr/atom/conf/lang/stopwords_en.txt
index 2c164c0b2..2c164c0b2 100644
--- a/solr-8.1.1/example/example-DIH/solr/atom/conf/lang/stopwords_en.txt
+++ b/solr-8.3.1/example/example-DIH/solr/atom/conf/lang/stopwords_en.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/atom/conf/managed-schema b/solr-8.3.1/example/example-DIH/solr/atom/conf/managed-schema
index 58751520d..58751520d 100644
--- a/solr-8.1.1/example/example-DIH/solr/atom/conf/managed-schema
+++ b/solr-8.3.1/example/example-DIH/solr/atom/conf/managed-schema
diff --git a/solr-8.1.1/example/example-DIH/solr/atom/conf/protwords.txt b/solr-8.3.1/example/example-DIH/solr/atom/conf/protwords.txt
index 1303e42a0..1303e42a0 100644
--- a/solr-8.1.1/example/example-DIH/solr/atom/conf/protwords.txt
+++ b/solr-8.3.1/example/example-DIH/solr/atom/conf/protwords.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/atom/conf/solrconfig.xml b/solr-8.3.1/example/example-DIH/solr/atom/conf/solrconfig.xml
index f78511354..3694c1531 100644
--- a/solr-8.1.1/example/example-DIH/solr/atom/conf/solrconfig.xml
+++ b/solr-8.3.1/example/example-DIH/solr/atom/conf/solrconfig.xml
@@ -36,7 +36,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>8.1.1</luceneMatchVersion>
+ <luceneMatchVersion>8.3.1</luceneMatchVersion>
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar"/>
diff --git a/solr-8.1.1/example/example-DIH/solr/atom/conf/synonyms.txt b/solr-8.3.1/example/example-DIH/solr/atom/conf/synonyms.txt
index eab4ee875..eab4ee875 100644
--- a/solr-8.1.1/example/example-DIH/solr/atom/conf/synonyms.txt
+++ b/solr-8.3.1/example/example-DIH/solr/atom/conf/synonyms.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/atom/conf/url_types.txt b/solr-8.3.1/example/example-DIH/solr/atom/conf/url_types.txt
index 808f31384..808f31384 100644
--- a/solr-8.1.1/example/example-DIH/solr/atom/conf/url_types.txt
+++ b/solr-8.3.1/example/example-DIH/solr/atom/conf/url_types.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/atom/core.properties b/solr-8.3.1/example/example-DIH/solr/atom/core.properties
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/example/example-DIH/solr/atom/core.properties
+++ b/solr-8.3.1/example/example-DIH/solr/atom/core.properties
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml b/solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml
index d802465f6..d802465f6 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/kmeans-attributes.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml b/solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml
index 5febfc320..5febfc320 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/lingo-attributes.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml b/solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml
index c1bf110c8..c1bf110c8 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/clustering/carrot2/stc-attributes.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/currency.xml b/solr-8.3.1/example/example-DIH/solr/db/conf/currency.xml
index 3a9c58afe..3a9c58afe 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/currency.xml
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/currency.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/db-data-config.xml b/solr-8.3.1/example/example-DIH/solr/db/conf/db-data-config.xml
index 4a7dba955..4a7dba955 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/db-data-config.xml
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/db-data-config.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/elevate.xml b/solr-8.3.1/example/example-DIH/solr/db/conf/elevate.xml
index 2c09ebed6..2c09ebed6 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/elevate.xml
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/elevate.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_ca.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_ca.txt
index 307a85f91..307a85f91 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_ca.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_ca.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_fr.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_fr.txt
index f1bba51b2..f1bba51b2 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_fr.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_fr.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_ga.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_ga.txt
index 9ebe7fa34..9ebe7fa34 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_ga.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_ga.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_it.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_it.txt
index cac040953..cac040953 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/contractions_it.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/contractions_it.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/hyphenations_ga.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/hyphenations_ga.txt
index 4d2642cc5..4d2642cc5 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/hyphenations_ga.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/hyphenations_ga.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stemdict_nl.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stemdict_nl.txt
index 441072971..441072971 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stemdict_nl.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stemdict_nl.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stoptags_ja.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stoptags_ja.txt
index 71b750845..71b750845 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stoptags_ja.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stoptags_ja.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ar.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ar.txt
index 046829db6..046829db6 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ar.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ar.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_bg.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_bg.txt
index 1ae4ba2ae..1ae4ba2ae 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_bg.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_bg.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ca.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ca.txt
index 3da65deaf..3da65deaf 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ca.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ca.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ckb.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ckb.txt
index 87abf118f..87abf118f 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ckb.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ckb.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_cz.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_cz.txt
index 53c6097da..53c6097da 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_cz.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_cz.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_da.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_da.txt
index 42e6145b9..42e6145b9 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_da.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_da.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_de.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_de.txt
index 86525e7ae..86525e7ae 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_de.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_de.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_el.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_el.txt
index 232681f5b..232681f5b 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_el.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_el.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_en.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_en.txt
index 2c164c0b2..2c164c0b2 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_en.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_en.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_es.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_es.txt
index 487d78c8d..487d78c8d 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_es.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_es.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_eu.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_eu.txt
index 25f1db934..25f1db934 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_eu.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_eu.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_fa.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_fa.txt
index 723641c6d..723641c6d 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_fa.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_fa.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_fi.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_fi.txt
index 4372c9a05..4372c9a05 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_fi.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_fi.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_fr.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_fr.txt
index 749abae68..749abae68 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_fr.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_fr.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ga.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ga.txt
index 9ff88d747..9ff88d747 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ga.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ga.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_gl.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_gl.txt
index d8760b12c..d8760b12c 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_gl.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_gl.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_hi.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_hi.txt
index 86286bb08..86286bb08 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_hi.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_hi.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_hu.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_hu.txt
index 37526da8a..37526da8a 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_hu.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_hu.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_hy.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_hy.txt
index 60c1c50fb..60c1c50fb 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_hy.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_hy.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_id.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_id.txt
index 4617f83a5..4617f83a5 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_id.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_id.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_it.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_it.txt
index 1219cc773..1219cc773 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_it.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_it.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ja.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ja.txt
index d4321be6b..d4321be6b 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ja.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ja.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_lv.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_lv.txt
index e21a23c06..e21a23c06 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_lv.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_lv.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_nl.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_nl.txt
index 47a2aeacf..47a2aeacf 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_nl.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_nl.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_no.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_no.txt
index a7a2c28ba..a7a2c28ba 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_no.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_no.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_pt.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_pt.txt
index acfeb01af..acfeb01af 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_pt.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_pt.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ro.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ro.txt
index 4fdee90a5..4fdee90a5 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ro.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ro.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ru.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ru.txt
index 55271400c..55271400c 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_ru.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_ru.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_sv.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_sv.txt
index 096f87f67..096f87f67 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_sv.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_sv.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_th.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_th.txt
index 07f0fabe6..07f0fabe6 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_th.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_th.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_tr.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_tr.txt
index 84d9408d4..84d9408d4 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/stopwords_tr.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/stopwords_tr.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/userdict_ja.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/userdict_ja.txt
index 6f0368e4d..6f0368e4d 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/lang/userdict_ja.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/lang/userdict_ja.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/managed-schema b/solr-8.3.1/example/example-DIH/solr/db/conf/managed-schema
index 7da41de2e..7da41de2e 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/managed-schema
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/managed-schema
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/mapping-FoldToASCII.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/mapping-FoldToASCII.txt
index 9a84b6eac..9a84b6eac 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/mapping-FoldToASCII.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/mapping-FoldToASCII.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/mapping-ISOLatin1Accent.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/mapping-ISOLatin1Accent.txt
index ede774258..ede774258 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/mapping-ISOLatin1Accent.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/mapping-ISOLatin1Accent.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/protwords.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/protwords.txt
index 1dfc0abec..1dfc0abec 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/protwords.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/protwords.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/solrconfig.xml b/solr-8.3.1/example/example-DIH/solr/db/conf/solrconfig.xml
index b0e9ac128..0a9e830f6 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/solrconfig.xml
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/solrconfig.xml
@@ -35,7 +35,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>8.1.1</luceneMatchVersion>
+ <luceneMatchVersion>8.3.1</luceneMatchVersion>
<!-- <lib/> directives can be used to instruct Solr to load any Jars
identified and use them to resolve any "plugins" specified in
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/spellings.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/spellings.txt
index 162a044d5..162a044d5 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/spellings.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/spellings.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/stopwords.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/stopwords.txt
index ae1e83eeb..ae1e83eeb 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/stopwords.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/stopwords.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/synonyms.txt b/solr-8.3.1/example/example-DIH/solr/db/conf/synonyms.txt
index eab4ee875..eab4ee875 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/synonyms.txt
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/synonyms.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/update-script.js b/solr-8.3.1/example/example-DIH/solr/db/conf/update-script.js
index 49b07f9b7..49b07f9b7 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/update-script.js
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/update-script.js
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/example.xsl b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example.xsl
index b89927008..b89927008 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/example.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl
index b6c23151d..b6c23151d 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_atom.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl
index c8ab5bfb1..c8ab5bfb1 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/example_rss.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/luke.xsl b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/luke.xsl
index 05fb5bfee..05fb5bfee 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/luke.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/luke.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl
index 7c4a48e73..7c4a48e73 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/db/conf/xslt/updateXml.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/db/core.properties b/solr-8.3.1/example/example-DIH/solr/db/core.properties
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/core.properties
+++ b/solr-8.3.1/example/example-DIH/solr/db/core.properties
diff --git a/solr-8.1.1/example/example-DIH/solr/db/lib/derby-10.9.1.0.jar b/solr-8.3.1/example/example-DIH/solr/db/lib/derby-10.9.1.0.jar
index 26feece9e..26feece9e 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/lib/derby-10.9.1.0.jar
+++ b/solr-8.3.1/example/example-DIH/solr/db/lib/derby-10.9.1.0.jar
Binary files differ
diff --git a/solr-8.1.1/example/example-DIH/solr/db/lib/hsqldb-2.4.0.jar b/solr-8.3.1/example/example-DIH/solr/db/lib/hsqldb-2.4.0.jar
index d05807dad..d05807dad 100644
--- a/solr-8.1.1/example/example-DIH/solr/db/lib/hsqldb-2.4.0.jar
+++ b/solr-8.3.1/example/example-DIH/solr/db/lib/hsqldb-2.4.0.jar
Binary files differ
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml b/solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml
index d802465f6..d802465f6 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/kmeans-attributes.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml b/solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml
index 5febfc320..5febfc320 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/lingo-attributes.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml b/solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml
index c1bf110c8..c1bf110c8 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/clustering/carrot2/stc-attributes.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/currency.xml b/solr-8.3.1/example/example-DIH/solr/mail/conf/currency.xml
index 3a9c58afe..3a9c58afe 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/currency.xml
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/currency.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/elevate.xml b/solr-8.3.1/example/example-DIH/solr/mail/conf/elevate.xml
index 2c09ebed6..2c09ebed6 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/elevate.xml
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/elevate.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_ca.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_ca.txt
index 307a85f91..307a85f91 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_ca.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_ca.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_fr.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_fr.txt
index f1bba51b2..f1bba51b2 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_fr.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_fr.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_ga.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_ga.txt
index 9ebe7fa34..9ebe7fa34 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_ga.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_ga.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_it.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_it.txt
index cac040953..cac040953 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/contractions_it.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/contractions_it.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/hyphenations_ga.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/hyphenations_ga.txt
index 4d2642cc5..4d2642cc5 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/hyphenations_ga.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/hyphenations_ga.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stemdict_nl.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stemdict_nl.txt
index 441072971..441072971 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stemdict_nl.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stemdict_nl.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stoptags_ja.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stoptags_ja.txt
index 71b750845..71b750845 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stoptags_ja.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stoptags_ja.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ar.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ar.txt
index 046829db6..046829db6 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ar.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ar.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_bg.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_bg.txt
index 1ae4ba2ae..1ae4ba2ae 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_bg.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_bg.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ca.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ca.txt
index 3da65deaf..3da65deaf 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ca.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ca.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ckb.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ckb.txt
index 87abf118f..87abf118f 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ckb.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ckb.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_cz.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_cz.txt
index 53c6097da..53c6097da 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_cz.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_cz.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_da.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_da.txt
index 42e6145b9..42e6145b9 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_da.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_da.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_de.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_de.txt
index 86525e7ae..86525e7ae 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_de.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_de.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_el.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_el.txt
index 232681f5b..232681f5b 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_el.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_el.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_en.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_en.txt
index 2c164c0b2..2c164c0b2 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_en.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_en.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_es.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_es.txt
index 487d78c8d..487d78c8d 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_es.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_es.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_eu.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_eu.txt
index 25f1db934..25f1db934 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_eu.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_eu.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_fa.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_fa.txt
index 723641c6d..723641c6d 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_fa.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_fa.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_fi.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_fi.txt
index 4372c9a05..4372c9a05 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_fi.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_fi.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_fr.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_fr.txt
index 749abae68..749abae68 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_fr.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_fr.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ga.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ga.txt
index 9ff88d747..9ff88d747 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ga.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ga.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_gl.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_gl.txt
index d8760b12c..d8760b12c 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_gl.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_gl.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_hi.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_hi.txt
index 86286bb08..86286bb08 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_hi.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_hi.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_hu.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_hu.txt
index 37526da8a..37526da8a 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_hu.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_hu.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_hy.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_hy.txt
index 60c1c50fb..60c1c50fb 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_hy.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_hy.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_id.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_id.txt
index 4617f83a5..4617f83a5 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_id.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_id.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_it.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_it.txt
index 1219cc773..1219cc773 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_it.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_it.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ja.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ja.txt
index d4321be6b..d4321be6b 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ja.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ja.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_lv.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_lv.txt
index e21a23c06..e21a23c06 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_lv.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_lv.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_nl.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_nl.txt
index 47a2aeacf..47a2aeacf 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_nl.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_nl.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_no.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_no.txt
index a7a2c28ba..a7a2c28ba 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_no.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_no.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_pt.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_pt.txt
index acfeb01af..acfeb01af 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_pt.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_pt.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ro.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ro.txt
index 4fdee90a5..4fdee90a5 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ro.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ro.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ru.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ru.txt
index 55271400c..55271400c 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_ru.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_ru.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_sv.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_sv.txt
index 096f87f67..096f87f67 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_sv.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_sv.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_th.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_th.txt
index 07f0fabe6..07f0fabe6 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_th.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_th.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_tr.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_tr.txt
index 84d9408d4..84d9408d4 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/stopwords_tr.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/stopwords_tr.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/userdict_ja.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/userdict_ja.txt
index 6f0368e4d..6f0368e4d 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/lang/userdict_ja.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/lang/userdict_ja.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/mail-data-config.xml b/solr-8.3.1/example/example-DIH/solr/mail/conf/mail-data-config.xml
index 736aea7cc..736aea7cc 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/mail-data-config.xml
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/mail-data-config.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/managed-schema b/solr-8.3.1/example/example-DIH/solr/mail/conf/managed-schema
index 1a371d446..1a371d446 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/managed-schema
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/managed-schema
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/mapping-FoldToASCII.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/mapping-FoldToASCII.txt
index 9a84b6eac..9a84b6eac 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/mapping-FoldToASCII.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/mapping-FoldToASCII.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/mapping-ISOLatin1Accent.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/mapping-ISOLatin1Accent.txt
index ede774258..ede774258 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/mapping-ISOLatin1Accent.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/mapping-ISOLatin1Accent.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/protwords.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/protwords.txt
index 1dfc0abec..1dfc0abec 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/protwords.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/protwords.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/solrconfig.xml b/solr-8.3.1/example/example-DIH/solr/mail/conf/solrconfig.xml
index 531cdd7f9..9596884c1 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/solrconfig.xml
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/solrconfig.xml
@@ -35,7 +35,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>8.1.1</luceneMatchVersion>
+ <luceneMatchVersion>8.3.1</luceneMatchVersion>
<!-- <lib/> directives can be used to instruct Solr to load any Jars
identified and use them to resolve any "plugins" specified in
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/spellings.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/spellings.txt
index 162a044d5..162a044d5 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/spellings.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/spellings.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/stopwords.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/stopwords.txt
index ae1e83eeb..ae1e83eeb 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/stopwords.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/stopwords.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/synonyms.txt b/solr-8.3.1/example/example-DIH/solr/mail/conf/synonyms.txt
index eab4ee875..eab4ee875 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/synonyms.txt
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/synonyms.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/update-script.js b/solr-8.3.1/example/example-DIH/solr/mail/conf/update-script.js
index 49b07f9b7..49b07f9b7 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/update-script.js
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/update-script.js
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/example.xsl b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example.xsl
index b89927008..b89927008 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/example.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl
index b6c23151d..b6c23151d 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_atom.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl
index c8ab5bfb1..c8ab5bfb1 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/example_rss.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl
index 05fb5bfee..05fb5bfee 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/luke.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl
index a96e1d024..a96e1d024 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/mail/conf/xslt/updateXml.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/mail/core.properties b/solr-8.3.1/example/example-DIH/solr/mail/core.properties
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/example/example-DIH/solr/mail/core.properties
+++ b/solr-8.3.1/example/example-DIH/solr/mail/core.properties
diff --git a/solr-8.1.1/example/example-DIH/solr/solr.xml b/solr-8.3.1/example/example-DIH/solr/solr.xml
index 191e51f59..191e51f59 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr.xml
+++ b/solr-8.3.1/example/example-DIH/solr/solr.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml b/solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml
index d802465f6..d802465f6 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/kmeans-attributes.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml b/solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml
index 5febfc320..5febfc320 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/lingo-attributes.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml b/solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml
index c1bf110c8..c1bf110c8 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/clustering/carrot2/stc-attributes.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/currency.xml b/solr-8.3.1/example/example-DIH/solr/solr/conf/currency.xml
index 532221a90..532221a90 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/currency.xml
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/currency.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/elevate.xml b/solr-8.3.1/example/example-DIH/solr/solr/conf/elevate.xml
index 2c09ebed6..2c09ebed6 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/elevate.xml
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/elevate.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_ca.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_ca.txt
index 307a85f91..307a85f91 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_ca.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_ca.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_fr.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_fr.txt
index f1bba51b2..f1bba51b2 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_fr.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_fr.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_ga.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_ga.txt
index 9ebe7fa34..9ebe7fa34 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_ga.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_ga.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_it.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_it.txt
index cac040953..cac040953 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/contractions_it.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/contractions_it.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/hyphenations_ga.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/hyphenations_ga.txt
index 4d2642cc5..4d2642cc5 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/hyphenations_ga.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/hyphenations_ga.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stemdict_nl.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stemdict_nl.txt
index 441072971..441072971 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stemdict_nl.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stemdict_nl.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stoptags_ja.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stoptags_ja.txt
index 71b750845..71b750845 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stoptags_ja.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stoptags_ja.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ar.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ar.txt
index 046829db6..046829db6 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ar.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ar.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_bg.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_bg.txt
index 1ae4ba2ae..1ae4ba2ae 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_bg.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_bg.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ca.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ca.txt
index 3da65deaf..3da65deaf 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ca.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ca.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ckb.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ckb.txt
index 87abf118f..87abf118f 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ckb.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ckb.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_cz.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_cz.txt
index 53c6097da..53c6097da 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_cz.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_cz.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_da.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_da.txt
index 42e6145b9..42e6145b9 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_da.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_da.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_de.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_de.txt
index 86525e7ae..86525e7ae 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_de.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_de.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_el.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_el.txt
index 232681f5b..232681f5b 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_el.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_el.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_en.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_en.txt
index 2c164c0b2..2c164c0b2 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_en.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_en.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_es.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_es.txt
index 487d78c8d..487d78c8d 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_es.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_es.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_eu.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_eu.txt
index 25f1db934..25f1db934 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_eu.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_eu.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_fa.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_fa.txt
index 723641c6d..723641c6d 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_fa.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_fa.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_fi.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_fi.txt
index 4372c9a05..4372c9a05 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_fi.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_fi.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_fr.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_fr.txt
index 749abae68..749abae68 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_fr.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_fr.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ga.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ga.txt
index 9ff88d747..9ff88d747 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ga.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ga.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_gl.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_gl.txt
index d8760b12c..d8760b12c 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_gl.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_gl.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_hi.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_hi.txt
index 86286bb08..86286bb08 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_hi.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_hi.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_hu.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_hu.txt
index 37526da8a..37526da8a 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_hu.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_hu.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_hy.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_hy.txt
index 60c1c50fb..60c1c50fb 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_hy.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_hy.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_id.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_id.txt
index 4617f83a5..4617f83a5 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_id.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_id.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_it.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_it.txt
index 1219cc773..1219cc773 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_it.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_it.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ja.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ja.txt
index d4321be6b..d4321be6b 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ja.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ja.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_lv.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_lv.txt
index e21a23c06..e21a23c06 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_lv.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_lv.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_nl.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_nl.txt
index 47a2aeacf..47a2aeacf 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_nl.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_nl.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_no.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_no.txt
index a7a2c28ba..a7a2c28ba 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_no.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_no.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_pt.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_pt.txt
index acfeb01af..acfeb01af 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_pt.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_pt.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ro.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ro.txt
index 4fdee90a5..4fdee90a5 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ro.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ro.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ru.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ru.txt
index 55271400c..55271400c 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_ru.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_ru.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_sv.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_sv.txt
index 096f87f67..096f87f67 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_sv.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_sv.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_th.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_th.txt
index 07f0fabe6..07f0fabe6 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_th.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_th.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_tr.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_tr.txt
index 84d9408d4..84d9408d4 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/stopwords_tr.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/stopwords_tr.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/userdict_ja.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/userdict_ja.txt
index 6f0368e4d..6f0368e4d 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/lang/userdict_ja.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/lang/userdict_ja.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/managed-schema b/solr-8.3.1/example/example-DIH/solr/solr/conf/managed-schema
index 5c360b9b4..5c360b9b4 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/managed-schema
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/managed-schema
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/mapping-FoldToASCII.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/mapping-FoldToASCII.txt
index 9a84b6eac..9a84b6eac 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/mapping-FoldToASCII.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/mapping-FoldToASCII.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/mapping-ISOLatin1Accent.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/mapping-ISOLatin1Accent.txt
index ede774258..ede774258 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/mapping-ISOLatin1Accent.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/mapping-ISOLatin1Accent.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/protwords.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/protwords.txt
index 1dfc0abec..1dfc0abec 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/protwords.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/protwords.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/solr-data-config.xml b/solr-8.3.1/example/example-DIH/solr/solr/conf/solr-data-config.xml
index 97ace3319..97ace3319 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/solr-data-config.xml
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/solr-data-config.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/solrconfig.xml b/solr-8.3.1/example/example-DIH/solr/solr/conf/solrconfig.xml
index 4f78d21ad..1637cf9f1 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/solrconfig.xml
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/solrconfig.xml
@@ -35,7 +35,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>8.1.1</luceneMatchVersion>
+ <luceneMatchVersion>8.3.1</luceneMatchVersion>
<!-- <lib/> directives can be used to instruct Solr to load any Jars
identified and use them to resolve any "plugins" specified in
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/spellings.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/spellings.txt
index 162a044d5..162a044d5 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/spellings.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/spellings.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/stopwords.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/stopwords.txt
index ae1e83eeb..ae1e83eeb 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/stopwords.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/stopwords.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/synonyms.txt b/solr-8.3.1/example/example-DIH/solr/solr/conf/synonyms.txt
index eab4ee875..eab4ee875 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/synonyms.txt
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/synonyms.txt
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/update-script.js b/solr-8.3.1/example/example-DIH/solr/solr/conf/update-script.js
index 49b07f9b7..49b07f9b7 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/update-script.js
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/update-script.js
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/example.xsl b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example.xsl
index b89927008..b89927008 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/example.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl
index b6c23151d..b6c23151d 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_atom.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl
index c8ab5bfb1..c8ab5bfb1 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/example_rss.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl
index 05fb5bfee..05fb5bfee 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/luke.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl
index a96e1d024..a96e1d024 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl
+++ b/solr-8.3.1/example/example-DIH/solr/solr/conf/xslt/updateXml.xsl
diff --git a/solr-8.1.1/example/example-DIH/solr/solr/core.properties b/solr-8.3.1/example/example-DIH/solr/solr/core.properties
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/example/example-DIH/solr/solr/core.properties
+++ b/solr-8.3.1/example/example-DIH/solr/solr/core.properties
diff --git a/solr-8.1.1/example/example-DIH/solr/tika/conf/managed-schema b/solr-8.3.1/example/example-DIH/solr/tika/conf/managed-schema
index b90f314ff..b90f314ff 100644
--- a/solr-8.1.1/example/example-DIH/solr/tika/conf/managed-schema
+++ b/solr-8.3.1/example/example-DIH/solr/tika/conf/managed-schema
diff --git a/solr-8.1.1/example/example-DIH/solr/tika/conf/solrconfig.xml b/solr-8.3.1/example/example-DIH/solr/tika/conf/solrconfig.xml
index d8509f863..cc189e2fe 100644
--- a/solr-8.1.1/example/example-DIH/solr/tika/conf/solrconfig.xml
+++ b/solr-8.3.1/example/example-DIH/solr/tika/conf/solrconfig.xml
@@ -36,7 +36,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>8.1.1</luceneMatchVersion>
+ <luceneMatchVersion>8.3.1</luceneMatchVersion>
<!-- Load Data Import Handler and Apache Tika (extraction) libraries -->
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar"/>
diff --git a/solr-8.1.1/example/example-DIH/solr/tika/conf/tika-data-config.xml b/solr-8.3.1/example/example-DIH/solr/tika/conf/tika-data-config.xml
index 5286fc418..5286fc418 100644
--- a/solr-8.1.1/example/example-DIH/solr/tika/conf/tika-data-config.xml
+++ b/solr-8.3.1/example/example-DIH/solr/tika/conf/tika-data-config.xml
diff --git a/solr-8.1.1/example/example-DIH/solr/tika/core.properties b/solr-8.3.1/example/example-DIH/solr/tika/core.properties
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/example/example-DIH/solr/tika/core.properties
+++ b/solr-8.3.1/example/example-DIH/solr/tika/core.properties
diff --git a/solr-8.1.1/example/exampledocs/books.csv b/solr-8.3.1/example/exampledocs/books.csv
index 8ccecbbe0..8ccecbbe0 100644
--- a/solr-8.1.1/example/exampledocs/books.csv
+++ b/solr-8.3.1/example/exampledocs/books.csv
diff --git a/solr-8.1.1/example/exampledocs/books.json b/solr-8.3.1/example/exampledocs/books.json
index f82d5103d..f82d5103d 100644
--- a/solr-8.1.1/example/exampledocs/books.json
+++ b/solr-8.3.1/example/exampledocs/books.json
diff --git a/solr-8.1.1/example/exampledocs/gb18030-example.xml b/solr-8.3.1/example/exampledocs/gb18030-example.xml
index 01743d367..01743d367 100644
--- a/solr-8.1.1/example/exampledocs/gb18030-example.xml
+++ b/solr-8.3.1/example/exampledocs/gb18030-example.xml
diff --git a/solr-8.1.1/example/exampledocs/hd.xml b/solr-8.3.1/example/exampledocs/hd.xml
index 9cf7d1b05..9cf7d1b05 100644
--- a/solr-8.1.1/example/exampledocs/hd.xml
+++ b/solr-8.3.1/example/exampledocs/hd.xml
diff --git a/solr-8.1.1/example/exampledocs/ipod_other.xml b/solr-8.3.1/example/exampledocs/ipod_other.xml
index 3de32f3b7..3de32f3b7 100644
--- a/solr-8.1.1/example/exampledocs/ipod_other.xml
+++ b/solr-8.3.1/example/exampledocs/ipod_other.xml
diff --git a/solr-8.1.1/example/exampledocs/ipod_video.xml b/solr-8.3.1/example/exampledocs/ipod_video.xml
index 1ca5f6f5c..1ca5f6f5c 100644
--- a/solr-8.1.1/example/exampledocs/ipod_video.xml
+++ b/solr-8.3.1/example/exampledocs/ipod_video.xml
diff --git a/solr-8.1.1/example/exampledocs/manufacturers.xml b/solr-8.3.1/example/exampledocs/manufacturers.xml
index e3121d5db..e3121d5db 100644
--- a/solr-8.1.1/example/exampledocs/manufacturers.xml
+++ b/solr-8.3.1/example/exampledocs/manufacturers.xml
diff --git a/solr-8.1.1/example/exampledocs/mem.xml b/solr-8.3.1/example/exampledocs/mem.xml
index 48af5222f..48af5222f 100644
--- a/solr-8.1.1/example/exampledocs/mem.xml
+++ b/solr-8.3.1/example/exampledocs/mem.xml
diff --git a/solr-8.1.1/example/exampledocs/money.xml b/solr-8.3.1/example/exampledocs/money.xml
index b1b8036c3..b1b8036c3 100644
--- a/solr-8.1.1/example/exampledocs/money.xml
+++ b/solr-8.3.1/example/exampledocs/money.xml
diff --git a/solr-8.1.1/example/exampledocs/monitor.xml b/solr-8.3.1/example/exampledocs/monitor.xml
index d0343af15..d0343af15 100644
--- a/solr-8.1.1/example/exampledocs/monitor.xml
+++ b/solr-8.3.1/example/exampledocs/monitor.xml
diff --git a/solr-8.1.1/example/exampledocs/monitor2.xml b/solr-8.3.1/example/exampledocs/monitor2.xml
index eaf9e223c..eaf9e223c 100644
--- a/solr-8.1.1/example/exampledocs/monitor2.xml
+++ b/solr-8.3.1/example/exampledocs/monitor2.xml
diff --git a/solr-8.1.1/example/exampledocs/more_books.jsonl b/solr-8.3.1/example/exampledocs/more_books.jsonl
index a48ad1e42..a48ad1e42 100644
--- a/solr-8.1.1/example/exampledocs/more_books.jsonl
+++ b/solr-8.3.1/example/exampledocs/more_books.jsonl
diff --git a/solr-8.1.1/example/exampledocs/mp500.xml b/solr-8.3.1/example/exampledocs/mp500.xml
index a8f51b643..a8f51b643 100644
--- a/solr-8.1.1/example/exampledocs/mp500.xml
+++ b/solr-8.3.1/example/exampledocs/mp500.xml
diff --git a/solr-8.3.1/example/exampledocs/post.jar b/solr-8.3.1/example/exampledocs/post.jar
new file mode 100644
index 000000000..7d01cf3d5
--- /dev/null
+++ b/solr-8.3.1/example/exampledocs/post.jar
Binary files differ
diff --git a/solr-8.1.1/example/exampledocs/sample.html b/solr-8.3.1/example/exampledocs/sample.html
index 656b656b6..656b656b6 100644
--- a/solr-8.1.1/example/exampledocs/sample.html
+++ b/solr-8.3.1/example/exampledocs/sample.html
diff --git a/solr-8.1.1/example/exampledocs/sd500.xml b/solr-8.3.1/example/exampledocs/sd500.xml
index 145c6fd5d..145c6fd5d 100644
--- a/solr-8.1.1/example/exampledocs/sd500.xml
+++ b/solr-8.3.1/example/exampledocs/sd500.xml
diff --git a/solr-8.1.1/example/exampledocs/solr-word.pdf b/solr-8.3.1/example/exampledocs/solr-word.pdf
index bd8b86590..bd8b86590 100644
--- a/solr-8.1.1/example/exampledocs/solr-word.pdf
+++ b/solr-8.3.1/example/exampledocs/solr-word.pdf
Binary files differ
diff --git a/solr-8.1.1/example/exampledocs/solr.xml b/solr-8.3.1/example/exampledocs/solr.xml
index a36561752..a36561752 100644
--- a/solr-8.1.1/example/exampledocs/solr.xml
+++ b/solr-8.3.1/example/exampledocs/solr.xml
diff --git a/solr-8.1.1/example/exampledocs/test_utf8.sh b/solr-8.3.1/example/exampledocs/test_utf8.sh
index 9032e12ff..9032e12ff 100644
--- a/solr-8.1.1/example/exampledocs/test_utf8.sh
+++ b/solr-8.3.1/example/exampledocs/test_utf8.sh
diff --git a/solr-8.1.1/example/exampledocs/utf8-example.xml b/solr-8.3.1/example/exampledocs/utf8-example.xml
index ee300a683..ee300a683 100644
--- a/solr-8.1.1/example/exampledocs/utf8-example.xml
+++ b/solr-8.3.1/example/exampledocs/utf8-example.xml
diff --git a/solr-8.1.1/example/exampledocs/vidcard.xml b/solr-8.3.1/example/exampledocs/vidcard.xml
index d867d82ac..d867d82ac 100644
--- a/solr-8.1.1/example/exampledocs/vidcard.xml
+++ b/solr-8.3.1/example/exampledocs/vidcard.xml
diff --git a/solr-8.1.1/example/files/README.txt b/solr-8.3.1/example/files/README.txt
index 655fd5172..655fd5172 100644
--- a/solr-8.1.1/example/files/README.txt
+++ b/solr-8.3.1/example/files/README.txt
diff --git a/solr-8.1.1/example/files/browse-resources/velocity/resources.properties b/solr-8.3.1/example/files/browse-resources/velocity/resources.properties
index 4cc15b2ee..4cc15b2ee 100644
--- a/solr-8.1.1/example/files/browse-resources/velocity/resources.properties
+++ b/solr-8.3.1/example/files/browse-resources/velocity/resources.properties
diff --git a/solr-8.1.1/example/files/browse-resources/velocity/resources_de_DE.properties b/solr-8.3.1/example/files/browse-resources/velocity/resources_de_DE.properties
index 1837bf5ce..1837bf5ce 100644
--- a/solr-8.1.1/example/files/browse-resources/velocity/resources_de_DE.properties
+++ b/solr-8.3.1/example/files/browse-resources/velocity/resources_de_DE.properties
diff --git a/solr-8.1.1/example/files/browse-resources/velocity/resources_fr_FR.properties b/solr-8.3.1/example/files/browse-resources/velocity/resources_fr_FR.properties
index 5b62757b7..5b62757b7 100644
--- a/solr-8.1.1/example/files/browse-resources/velocity/resources_fr_FR.properties
+++ b/solr-8.3.1/example/files/browse-resources/velocity/resources_fr_FR.properties
diff --git a/solr-8.1.1/example/files/conf/currency.xml b/solr-8.3.1/example/files/conf/currency.xml
index 3a9c58afe..3a9c58afe 100644
--- a/solr-8.1.1/example/files/conf/currency.xml
+++ b/solr-8.3.1/example/files/conf/currency.xml
diff --git a/solr-8.1.1/example/files/conf/elevate.xml b/solr-8.3.1/example/files/conf/elevate.xml
index 2c09ebed6..2c09ebed6 100644
--- a/solr-8.1.1/example/files/conf/elevate.xml
+++ b/solr-8.3.1/example/files/conf/elevate.xml
diff --git a/solr-8.1.1/example/files/conf/email_url_types.txt b/solr-8.3.1/example/files/conf/email_url_types.txt
index 622b193e0..622b193e0 100644
--- a/solr-8.1.1/example/files/conf/email_url_types.txt
+++ b/solr-8.3.1/example/files/conf/email_url_types.txt
diff --git a/solr-8.1.1/example/files/conf/lang/contractions_ca.txt b/solr-8.3.1/example/files/conf/lang/contractions_ca.txt
index 307a85f91..307a85f91 100644
--- a/solr-8.1.1/example/files/conf/lang/contractions_ca.txt
+++ b/solr-8.3.1/example/files/conf/lang/contractions_ca.txt
diff --git a/solr-8.1.1/example/files/conf/lang/contractions_fr.txt b/solr-8.3.1/example/files/conf/lang/contractions_fr.txt
index f1bba51b2..f1bba51b2 100644
--- a/solr-8.1.1/example/files/conf/lang/contractions_fr.txt
+++ b/solr-8.3.1/example/files/conf/lang/contractions_fr.txt
diff --git a/solr-8.1.1/example/files/conf/lang/contractions_ga.txt b/solr-8.3.1/example/files/conf/lang/contractions_ga.txt
index 9ebe7fa34..9ebe7fa34 100644
--- a/solr-8.1.1/example/files/conf/lang/contractions_ga.txt
+++ b/solr-8.3.1/example/files/conf/lang/contractions_ga.txt
diff --git a/solr-8.1.1/example/files/conf/lang/contractions_it.txt b/solr-8.3.1/example/files/conf/lang/contractions_it.txt
index cac040953..cac040953 100644
--- a/solr-8.1.1/example/files/conf/lang/contractions_it.txt
+++ b/solr-8.3.1/example/files/conf/lang/contractions_it.txt
diff --git a/solr-8.1.1/example/files/conf/lang/hyphenations_ga.txt b/solr-8.3.1/example/files/conf/lang/hyphenations_ga.txt
index 4d2642cc5..4d2642cc5 100644
--- a/solr-8.1.1/example/files/conf/lang/hyphenations_ga.txt
+++ b/solr-8.3.1/example/files/conf/lang/hyphenations_ga.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stemdict_nl.txt b/solr-8.3.1/example/files/conf/lang/stemdict_nl.txt
index 441072971..441072971 100644
--- a/solr-8.1.1/example/files/conf/lang/stemdict_nl.txt
+++ b/solr-8.3.1/example/files/conf/lang/stemdict_nl.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stoptags_ja.txt b/solr-8.3.1/example/files/conf/lang/stoptags_ja.txt
index 71b750845..71b750845 100644
--- a/solr-8.1.1/example/files/conf/lang/stoptags_ja.txt
+++ b/solr-8.3.1/example/files/conf/lang/stoptags_ja.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_ar.txt b/solr-8.3.1/example/files/conf/lang/stopwords_ar.txt
index 046829db6..046829db6 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_ar.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_ar.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_bg.txt b/solr-8.3.1/example/files/conf/lang/stopwords_bg.txt
index 1ae4ba2ae..1ae4ba2ae 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_bg.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_bg.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_ca.txt b/solr-8.3.1/example/files/conf/lang/stopwords_ca.txt
index 3da65deaf..3da65deaf 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_ca.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_ca.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_cz.txt b/solr-8.3.1/example/files/conf/lang/stopwords_cz.txt
index 53c6097da..53c6097da 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_cz.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_cz.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_da.txt b/solr-8.3.1/example/files/conf/lang/stopwords_da.txt
index 42e6145b9..42e6145b9 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_da.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_da.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_de.txt b/solr-8.3.1/example/files/conf/lang/stopwords_de.txt
index 86525e7ae..86525e7ae 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_de.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_de.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_el.txt b/solr-8.3.1/example/files/conf/lang/stopwords_el.txt
index 232681f5b..232681f5b 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_el.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_el.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_en.txt b/solr-8.3.1/example/files/conf/lang/stopwords_en.txt
index 2c164c0b2..2c164c0b2 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_en.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_en.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_es.txt b/solr-8.3.1/example/files/conf/lang/stopwords_es.txt
index 487d78c8d..487d78c8d 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_es.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_es.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_eu.txt b/solr-8.3.1/example/files/conf/lang/stopwords_eu.txt
index 25f1db934..25f1db934 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_eu.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_eu.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_fa.txt b/solr-8.3.1/example/files/conf/lang/stopwords_fa.txt
index 723641c6d..723641c6d 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_fa.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_fa.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_fi.txt b/solr-8.3.1/example/files/conf/lang/stopwords_fi.txt
index 4372c9a05..4372c9a05 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_fi.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_fi.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_fr.txt b/solr-8.3.1/example/files/conf/lang/stopwords_fr.txt
index 749abae68..749abae68 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_fr.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_fr.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_ga.txt b/solr-8.3.1/example/files/conf/lang/stopwords_ga.txt
index 9ff88d747..9ff88d747 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_ga.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_ga.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_gl.txt b/solr-8.3.1/example/files/conf/lang/stopwords_gl.txt
index d8760b12c..d8760b12c 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_gl.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_gl.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_hi.txt b/solr-8.3.1/example/files/conf/lang/stopwords_hi.txt
index 86286bb08..86286bb08 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_hi.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_hi.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_hu.txt b/solr-8.3.1/example/files/conf/lang/stopwords_hu.txt
index 37526da8a..37526da8a 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_hu.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_hu.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_hy.txt b/solr-8.3.1/example/files/conf/lang/stopwords_hy.txt
index 60c1c50fb..60c1c50fb 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_hy.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_hy.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_id.txt b/solr-8.3.1/example/files/conf/lang/stopwords_id.txt
index 4617f83a5..4617f83a5 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_id.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_id.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_it.txt b/solr-8.3.1/example/files/conf/lang/stopwords_it.txt
index 1219cc773..1219cc773 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_it.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_it.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_ja.txt b/solr-8.3.1/example/files/conf/lang/stopwords_ja.txt
index d4321be6b..d4321be6b 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_ja.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_ja.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_lv.txt b/solr-8.3.1/example/files/conf/lang/stopwords_lv.txt
index e21a23c06..e21a23c06 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_lv.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_lv.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_nl.txt b/solr-8.3.1/example/files/conf/lang/stopwords_nl.txt
index 47a2aeacf..47a2aeacf 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_nl.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_nl.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_no.txt b/solr-8.3.1/example/files/conf/lang/stopwords_no.txt
index a7a2c28ba..a7a2c28ba 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_no.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_no.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_pt.txt b/solr-8.3.1/example/files/conf/lang/stopwords_pt.txt
index acfeb01af..acfeb01af 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_pt.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_pt.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_ro.txt b/solr-8.3.1/example/files/conf/lang/stopwords_ro.txt
index 4fdee90a5..4fdee90a5 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_ro.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_ro.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_ru.txt b/solr-8.3.1/example/files/conf/lang/stopwords_ru.txt
index 55271400c..55271400c 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_ru.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_ru.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_sv.txt b/solr-8.3.1/example/files/conf/lang/stopwords_sv.txt
index 096f87f67..096f87f67 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_sv.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_sv.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_th.txt b/solr-8.3.1/example/files/conf/lang/stopwords_th.txt
index 07f0fabe6..07f0fabe6 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_th.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_th.txt
diff --git a/solr-8.1.1/example/files/conf/lang/stopwords_tr.txt b/solr-8.3.1/example/files/conf/lang/stopwords_tr.txt
index 84d9408d4..84d9408d4 100644
--- a/solr-8.1.1/example/files/conf/lang/stopwords_tr.txt
+++ b/solr-8.3.1/example/files/conf/lang/stopwords_tr.txt
diff --git a/solr-8.1.1/example/files/conf/lang/userdict_ja.txt b/solr-8.3.1/example/files/conf/lang/userdict_ja.txt
index 6f0368e4d..6f0368e4d 100644
--- a/solr-8.1.1/example/files/conf/lang/userdict_ja.txt
+++ b/solr-8.3.1/example/files/conf/lang/userdict_ja.txt
diff --git a/solr-8.1.1/example/files/conf/managed-schema b/solr-8.3.1/example/files/conf/managed-schema
index c022331ba..c022331ba 100644
--- a/solr-8.1.1/example/files/conf/managed-schema
+++ b/solr-8.3.1/example/files/conf/managed-schema
diff --git a/solr-8.1.1/example/files/conf/params.json b/solr-8.3.1/example/files/conf/params.json
index 22aadccdd..22aadccdd 100644
--- a/solr-8.1.1/example/files/conf/params.json
+++ b/solr-8.3.1/example/files/conf/params.json
diff --git a/solr-8.1.1/example/files/conf/protwords.txt b/solr-8.3.1/example/files/conf/protwords.txt
index 1dfc0abec..1dfc0abec 100644
--- a/solr-8.1.1/example/files/conf/protwords.txt
+++ b/solr-8.3.1/example/files/conf/protwords.txt
diff --git a/solr-8.1.1/example/files/conf/solrconfig.xml b/solr-8.3.1/example/files/conf/solrconfig.xml
index 77dc8f0a8..b4b65594c 100644
--- a/solr-8.1.1/example/files/conf/solrconfig.xml
+++ b/solr-8.3.1/example/files/conf/solrconfig.xml
@@ -35,7 +35,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>8.1.1</luceneMatchVersion>
+ <luceneMatchVersion>8.3.1</luceneMatchVersion>
<!-- <lib/> directives can be used to instruct Solr to load any Jars
identified and use them to resolve any "plugins" specified in
diff --git a/solr-8.1.1/example/files/conf/stopwords.txt b/solr-8.3.1/example/files/conf/stopwords.txt
index ae1e83eeb..ae1e83eeb 100644
--- a/solr-8.1.1/example/files/conf/stopwords.txt
+++ b/solr-8.3.1/example/files/conf/stopwords.txt
diff --git a/solr-8.1.1/example/files/conf/synonyms.txt b/solr-8.3.1/example/files/conf/synonyms.txt
index eab4ee875..eab4ee875 100644
--- a/solr-8.1.1/example/files/conf/synonyms.txt
+++ b/solr-8.3.1/example/files/conf/synonyms.txt
diff --git a/solr-8.1.1/example/files/conf/update-script.js b/solr-8.3.1/example/files/conf/update-script.js
index 2589968b5..2589968b5 100644
--- a/solr-8.1.1/example/files/conf/update-script.js
+++ b/solr-8.3.1/example/files/conf/update-script.js
diff --git a/solr-8.1.1/example/files/conf/velocity/browse.vm b/solr-8.3.1/example/files/conf/velocity/browse.vm
index 535a7713b..535a7713b 100644
--- a/solr-8.1.1/example/files/conf/velocity/browse.vm
+++ b/solr-8.3.1/example/files/conf/velocity/browse.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/dropit.js b/solr-8.3.1/example/files/conf/velocity/dropit.js
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/example/files/conf/velocity/dropit.js
+++ b/solr-8.3.1/example/files/conf/velocity/dropit.js
diff --git a/solr-8.1.1/example/files/conf/velocity/facet_doc_type.vm b/solr-8.3.1/example/files/conf/velocity/facet_doc_type.vm
index ff471674c..ff471674c 100644
--- a/solr-8.1.1/example/files/conf/velocity/facet_doc_type.vm
+++ b/solr-8.3.1/example/files/conf/velocity/facet_doc_type.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/facet_text_shingles.vm b/solr-8.3.1/example/files/conf/velocity/facet_text_shingles.vm
index e8191779a..e8191779a 100644
--- a/solr-8.1.1/example/files/conf/velocity/facet_text_shingles.vm
+++ b/solr-8.3.1/example/files/conf/velocity/facet_text_shingles.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/facets.vm b/solr-8.3.1/example/files/conf/velocity/facets.vm
index bb27b5cea..bb27b5cea 100644
--- a/solr-8.1.1/example/files/conf/velocity/facets.vm
+++ b/solr-8.3.1/example/files/conf/velocity/facets.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/footer.vm b/solr-8.3.1/example/files/conf/velocity/footer.vm
index e33a7827d..e33a7827d 100644
--- a/solr-8.1.1/example/files/conf/velocity/footer.vm
+++ b/solr-8.3.1/example/files/conf/velocity/footer.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/head.vm b/solr-8.3.1/example/files/conf/velocity/head.vm
index 3c98747ac..3c98747ac 100644
--- a/solr-8.1.1/example/files/conf/velocity/head.vm
+++ b/solr-8.3.1/example/files/conf/velocity/head.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/hit.vm b/solr-8.3.1/example/files/conf/velocity/hit.vm
index 2c658cdd9..2c658cdd9 100644
--- a/solr-8.1.1/example/files/conf/velocity/hit.vm
+++ b/solr-8.3.1/example/files/conf/velocity/hit.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/img/english_640.png b/solr-8.3.1/example/files/conf/velocity/img/english_640.png
index 81256a1b8..81256a1b8 100644
--- a/solr-8.1.1/example/files/conf/velocity/img/english_640.png
+++ b/solr-8.3.1/example/files/conf/velocity/img/english_640.png
Binary files differ
diff --git a/solr-8.1.1/example/files/conf/velocity/img/france_640.png b/solr-8.3.1/example/files/conf/velocity/img/france_640.png
index 16d454190..16d454190 100644
--- a/solr-8.1.1/example/files/conf/velocity/img/france_640.png
+++ b/solr-8.3.1/example/files/conf/velocity/img/france_640.png
Binary files differ
diff --git a/solr-8.1.1/example/files/conf/velocity/img/germany_640.png b/solr-8.3.1/example/files/conf/velocity/img/germany_640.png
index f5d6ae891..f5d6ae891 100644
--- a/solr-8.1.1/example/files/conf/velocity/img/germany_640.png
+++ b/solr-8.3.1/example/files/conf/velocity/img/germany_640.png
Binary files differ
diff --git a/solr-8.1.1/example/files/conf/velocity/img/globe_256.png b/solr-8.3.1/example/files/conf/velocity/img/globe_256.png
index 514597b86..514597b86 100644
--- a/solr-8.1.1/example/files/conf/velocity/img/globe_256.png
+++ b/solr-8.3.1/example/files/conf/velocity/img/globe_256.png
Binary files differ
diff --git a/solr-8.1.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js b/solr-8.3.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js
+++ b/solr-8.3.1/example/files/conf/velocity/jquery.tx3-tag-cloud.js
diff --git a/solr-8.1.1/example/files/conf/velocity/js/dropit.js b/solr-8.3.1/example/files/conf/velocity/js/dropit.js
index 3094414f0..3094414f0 100644
--- a/solr-8.1.1/example/files/conf/velocity/js/dropit.js
+++ b/solr-8.3.1/example/files/conf/velocity/js/dropit.js
diff --git a/solr-8.1.1/example/files/conf/velocity/js/jquery.autocomplete.js b/solr-8.3.1/example/files/conf/velocity/js/jquery.autocomplete.js
index 7ede3b8a3..7ede3b8a3 100644
--- a/solr-8.1.1/example/files/conf/velocity/js/jquery.autocomplete.js
+++ b/solr-8.3.1/example/files/conf/velocity/js/jquery.autocomplete.js
diff --git a/solr-8.1.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js b/solr-8.3.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js
index eb7d7d54a..eb7d7d54a 100644
--- a/solr-8.1.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js
+++ b/solr-8.3.1/example/files/conf/velocity/js/jquery.tx3-tag-cloud.js
diff --git a/solr-8.1.1/example/files/conf/velocity/layout.vm b/solr-8.3.1/example/files/conf/velocity/layout.vm
index ef6caf705..ef6caf705 100644
--- a/solr-8.1.1/example/files/conf/velocity/layout.vm
+++ b/solr-8.3.1/example/files/conf/velocity/layout.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/macros.vm b/solr-8.3.1/example/files/conf/velocity/macros.vm
index 8bebb7f5d..8bebb7f5d 100644
--- a/solr-8.1.1/example/files/conf/velocity/macros.vm
+++ b/solr-8.3.1/example/files/conf/velocity/macros.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/mime_type_lists.vm b/solr-8.3.1/example/files/conf/velocity/mime_type_lists.vm
index 1468bbdbf..1468bbdbf 100644
--- a/solr-8.1.1/example/files/conf/velocity/mime_type_lists.vm
+++ b/solr-8.3.1/example/files/conf/velocity/mime_type_lists.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/results.vm b/solr-8.3.1/example/files/conf/velocity/results.vm
index b8a17a9c3..b8a17a9c3 100644
--- a/solr-8.1.1/example/files/conf/velocity/results.vm
+++ b/solr-8.3.1/example/files/conf/velocity/results.vm
diff --git a/solr-8.1.1/example/files/conf/velocity/results_list.vm b/solr-8.3.1/example/files/conf/velocity/results_list.vm
index 908e45b0c..908e45b0c 100644
--- a/solr-8.1.1/example/files/conf/velocity/results_list.vm
+++ b/solr-8.3.1/example/files/conf/velocity/results_list.vm
diff --git a/solr-8.1.1/example/films/README.txt b/solr-8.3.1/example/films/README.txt
index d1679d222..d1679d222 100644
--- a/solr-8.1.1/example/films/README.txt
+++ b/solr-8.3.1/example/films/README.txt
diff --git a/solr-8.1.1/example/films/film_data_generator.py b/solr-8.3.1/example/films/film_data_generator.py
index 7e2a46318..7e2a46318 100644
--- a/solr-8.1.1/example/films/film_data_generator.py
+++ b/solr-8.3.1/example/films/film_data_generator.py
diff --git a/solr-8.1.1/example/films/films-LICENSE.txt b/solr-8.3.1/example/films/films-LICENSE.txt
index b1b630ba1..b1b630ba1 100644
--- a/solr-8.1.1/example/films/films-LICENSE.txt
+++ b/solr-8.3.1/example/films/films-LICENSE.txt
diff --git a/solr-8.1.1/example/films/films.csv b/solr-8.3.1/example/films/films.csv
index 82fe40d68..82fe40d68 100644
--- a/solr-8.1.1/example/films/films.csv
+++ b/solr-8.3.1/example/films/films.csv
diff --git a/solr-8.1.1/example/films/films.json b/solr-8.3.1/example/films/films.json
index 75d1fce05..75d1fce05 100644
--- a/solr-8.1.1/example/films/films.json
+++ b/solr-8.3.1/example/films/films.json
diff --git a/solr-8.1.1/example/films/films.xml b/solr-8.3.1/example/films/films.xml
index e801ad40f..e801ad40f 100644
--- a/solr-8.1.1/example/films/films.xml
+++ b/solr-8.3.1/example/films/films.xml
diff --git a/solr-8.1.1/licenses/activation-1.1.1.jar.sha1 b/solr-8.3.1/licenses/activation-1.1.1.jar.sha1
index 7b2295c88..7b2295c88 100644
--- a/solr-8.1.1/licenses/activation-1.1.1.jar.sha1
+++ b/solr-8.3.1/licenses/activation-1.1.1.jar.sha1
diff --git a/solr-8.1.1/licenses/activation-LICENSE-CDDL.txt b/solr-8.3.1/licenses/activation-LICENSE-CDDL.txt
index 55ce20ab1..55ce20ab1 100644
--- a/solr-8.1.1/licenses/activation-LICENSE-CDDL.txt
+++ b/solr-8.3.1/licenses/activation-LICENSE-CDDL.txt
diff --git a/solr-8.1.1/licenses/android-json-0.0.20131108.vaadin1.jar.sha1 b/solr-8.3.1/licenses/android-json-0.0.20131108.vaadin1.jar.sha1
index 99a9d8e79..99a9d8e79 100644
--- a/solr-8.1.1/licenses/android-json-0.0.20131108.vaadin1.jar.sha1
+++ b/solr-8.3.1/licenses/android-json-0.0.20131108.vaadin1.jar.sha1
diff --git a/solr-8.1.1/licenses/android-json-LICENSE-ASL.txt b/solr-8.3.1/licenses/android-json-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/android-json-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/android-json-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/android-json-NOTICE.txt b/solr-8.3.1/licenses/android-json-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/android-json-NOTICE.txt
+++ b/solr-8.3.1/licenses/android-json-NOTICE.txt
diff --git a/solr-8.1.1/licenses/ant-1.8.2.jar.sha1 b/solr-8.3.1/licenses/ant-1.8.2.jar.sha1
index 564db78df..564db78df 100644
--- a/solr-8.1.1/licenses/ant-1.8.2.jar.sha1
+++ b/solr-8.3.1/licenses/ant-1.8.2.jar.sha1
diff --git a/solr-8.1.1/licenses/ant-LICENSE-ASL.txt b/solr-8.3.1/licenses/ant-LICENSE-ASL.txt
index ab3182e77..ab3182e77 100644
--- a/solr-8.1.1/licenses/ant-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/ant-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/ant-NOTICE.txt b/solr-8.3.1/licenses/ant-NOTICE.txt
index 4c88cc665..4c88cc665 100644
--- a/solr-8.1.1/licenses/ant-NOTICE.txt
+++ b/solr-8.3.1/licenses/ant-NOTICE.txt
diff --git a/solr-8.1.1/licenses/antlr4-runtime-4.5.1-1.jar.sha1 b/solr-8.3.1/licenses/antlr4-runtime-4.5.1-1.jar.sha1
index f15e50069..f15e50069 100644
--- a/solr-8.1.1/licenses/antlr4-runtime-4.5.1-1.jar.sha1
+++ b/solr-8.3.1/licenses/antlr4-runtime-4.5.1-1.jar.sha1
diff --git a/solr-8.1.1/licenses/antlr4-runtime-LICENSE-BSD.txt b/solr-8.3.1/licenses/antlr4-runtime-LICENSE-BSD.txt
index 95d0a2554..95d0a2554 100644
--- a/solr-8.1.1/licenses/antlr4-runtime-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/antlr4-runtime-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/antlr4-runtime-NOTICE.txt b/solr-8.3.1/licenses/antlr4-runtime-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/antlr4-runtime-NOTICE.txt
+++ b/solr-8.3.1/licenses/antlr4-runtime-NOTICE.txt
diff --git a/solr-8.1.1/licenses/apache-mime4j-core-0.8.2.jar.sha1 b/solr-8.3.1/licenses/apache-mime4j-core-0.8.2.jar.sha1
index 6afc490d7..6afc490d7 100644
--- a/solr-8.1.1/licenses/apache-mime4j-core-0.8.2.jar.sha1
+++ b/solr-8.3.1/licenses/apache-mime4j-core-0.8.2.jar.sha1
diff --git a/solr-8.1.1/licenses/apache-mime4j-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/apache-mime4j-core-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/apache-mime4j-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/apache-mime4j-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/apache-mime4j-core-NOTICE.txt b/solr-8.3.1/licenses/apache-mime4j-core-NOTICE.txt
index 61523975e..61523975e 100644
--- a/solr-8.1.1/licenses/apache-mime4j-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/apache-mime4j-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/apache-mime4j-dom-0.8.2.jar.sha1 b/solr-8.3.1/licenses/apache-mime4j-dom-0.8.2.jar.sha1
index 171a9d1ce..171a9d1ce 100644
--- a/solr-8.1.1/licenses/apache-mime4j-dom-0.8.2.jar.sha1
+++ b/solr-8.3.1/licenses/apache-mime4j-dom-0.8.2.jar.sha1
diff --git a/solr-8.1.1/licenses/apache-mime4j-dom-LICENSE-ASL.txt b/solr-8.3.1/licenses/apache-mime4j-dom-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/apache-mime4j-dom-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/apache-mime4j-dom-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/apache-mime4j-dom-NOTICE.txt b/solr-8.3.1/licenses/apache-mime4j-dom-NOTICE.txt
index 61523975e..61523975e 100644
--- a/solr-8.1.1/licenses/apache-mime4j-dom-NOTICE.txt
+++ b/solr-8.3.1/licenses/apache-mime4j-dom-NOTICE.txt
diff --git a/solr-8.1.1/licenses/argparse4j-0.8.1.jar.sha1 b/solr-8.3.1/licenses/argparse4j-0.8.1.jar.sha1
index 27a0568b0..27a0568b0 100644
--- a/solr-8.1.1/licenses/argparse4j-0.8.1.jar.sha1
+++ b/solr-8.3.1/licenses/argparse4j-0.8.1.jar.sha1
diff --git a/solr-8.1.1/licenses/argparse4j-LICENSE-MIT.txt b/solr-8.3.1/licenses/argparse4j-LICENSE-MIT.txt
index 773b0df0e..773b0df0e 100644
--- a/solr-8.1.1/licenses/argparse4j-LICENSE-MIT.txt
+++ b/solr-8.3.1/licenses/argparse4j-LICENSE-MIT.txt
diff --git a/solr-8.1.1/licenses/argparse4j-NOTICE.txt b/solr-8.3.1/licenses/argparse4j-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/argparse4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/argparse4j-NOTICE.txt
diff --git a/solr-8.3.1/licenses/asciidoctor-ant-1.6.2.jar.sha1 b/solr-8.3.1/licenses/asciidoctor-ant-1.6.2.jar.sha1
new file mode 100644
index 000000000..558a01f58
--- /dev/null
+++ b/solr-8.3.1/licenses/asciidoctor-ant-1.6.2.jar.sha1
@@ -0,0 +1 @@
+c5ba599e3918e7a3316e6bf110cadd5aeb2a026b
diff --git a/solr-8.1.1/licenses/asciidoctor-ant-LICENSE-ASL.txt b/solr-8.3.1/licenses/asciidoctor-ant-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/asciidoctor-ant-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/asciidoctor-ant-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/asciidoctor-ant-NOTICE.txt b/solr-8.3.1/licenses/asciidoctor-ant-NOTICE.txt
index 04f7d9865..04f7d9865 100644
--- a/solr-8.1.1/licenses/asciidoctor-ant-NOTICE.txt
+++ b/solr-8.3.1/licenses/asciidoctor-ant-NOTICE.txt
diff --git a/solr-8.1.1/licenses/asm-5.1.jar.sha1 b/solr-8.3.1/licenses/asm-5.1.jar.sha1
index fc907c77d..fc907c77d 100644
--- a/solr-8.1.1/licenses/asm-5.1.jar.sha1
+++ b/solr-8.3.1/licenses/asm-5.1.jar.sha1
diff --git a/solr-8.1.1/licenses/asm-LICENSE-BSD.txt b/solr-8.3.1/licenses/asm-LICENSE-BSD.txt
index 62e67f758..62e67f758 100644
--- a/solr-8.1.1/licenses/asm-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/asm-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/asm-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/asm-LICENSE-BSD_LIKE.txt
index afb064f2f..afb064f2f 100644
--- a/solr-8.1.1/licenses/asm-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/asm-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/asm-NOTICE.txt b/solr-8.3.1/licenses/asm-NOTICE.txt
index 8d1c8b69c..8d1c8b69c 100644
--- a/solr-8.1.1/licenses/asm-NOTICE.txt
+++ b/solr-8.3.1/licenses/asm-NOTICE.txt
diff --git a/solr-8.1.1/licenses/asm-commons-5.1.jar.sha1 b/solr-8.3.1/licenses/asm-commons-5.1.jar.sha1
index 8b4959384..8b4959384 100644
--- a/solr-8.1.1/licenses/asm-commons-5.1.jar.sha1
+++ b/solr-8.3.1/licenses/asm-commons-5.1.jar.sha1
diff --git a/solr-8.1.1/licenses/asm-commons-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/asm-commons-LICENSE-BSD_LIKE.txt
index afb064f2f..afb064f2f 100644
--- a/solr-8.1.1/licenses/asm-commons-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/asm-commons-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/asm-commons-NOTICE.txt b/solr-8.3.1/licenses/asm-commons-NOTICE.txt
index 8d1c8b69c..8d1c8b69c 100644
--- a/solr-8.1.1/licenses/asm-commons-NOTICE.txt
+++ b/solr-8.3.1/licenses/asm-commons-NOTICE.txt
diff --git a/solr-8.1.1/licenses/aspectjrt-1.8.0.jar.sha1 b/solr-8.3.1/licenses/aspectjrt-1.8.0.jar.sha1
index df597b225..df597b225 100644
--- a/solr-8.1.1/licenses/aspectjrt-1.8.0.jar.sha1
+++ b/solr-8.3.1/licenses/aspectjrt-1.8.0.jar.sha1
diff --git a/solr-8.1.1/licenses/aspectjrt-LICENSE-EPL.txt b/solr-8.3.1/licenses/aspectjrt-LICENSE-EPL.txt
index c93934f39..c93934f39 100644
--- a/solr-8.1.1/licenses/aspectjrt-LICENSE-EPL.txt
+++ b/solr-8.3.1/licenses/aspectjrt-LICENSE-EPL.txt
diff --git a/solr-8.1.1/licenses/attributes-binder-1.3.3.jar.sha1 b/solr-8.3.1/licenses/attributes-binder-1.3.3.jar.sha1
index bad28fb1b..bad28fb1b 100644
--- a/solr-8.1.1/licenses/attributes-binder-1.3.3.jar.sha1
+++ b/solr-8.3.1/licenses/attributes-binder-1.3.3.jar.sha1
diff --git a/solr-8.1.1/licenses/attributes-binder-LICENSE-ASL.txt b/solr-8.3.1/licenses/attributes-binder-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/attributes-binder-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/attributes-binder-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/attributes-binder-NOTICE.txt b/solr-8.3.1/licenses/attributes-binder-NOTICE.txt
index 6ff02dc13..6ff02dc13 100644
--- a/solr-8.1.1/licenses/attributes-binder-NOTICE.txt
+++ b/solr-8.3.1/licenses/attributes-binder-NOTICE.txt
diff --git a/solr-8.1.1/licenses/avatica-core-1.13.0.jar.sha1 b/solr-8.3.1/licenses/avatica-core-1.13.0.jar.sha1
index ca67cb9d0..ca67cb9d0 100644
--- a/solr-8.1.1/licenses/avatica-core-1.13.0.jar.sha1
+++ b/solr-8.3.1/licenses/avatica-core-1.13.0.jar.sha1
diff --git a/solr-8.1.1/licenses/avatica-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/avatica-core-LICENSE-ASL.txt
index f7b9863d5..f7b9863d5 100644
--- a/solr-8.1.1/licenses/avatica-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/avatica-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/avatica-core-NOTICE.txt b/solr-8.3.1/licenses/avatica-core-NOTICE.txt
index 506738bca..506738bca 100644
--- a/solr-8.1.1/licenses/avatica-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/avatica-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/bcmail-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/bcmail-LICENSE-BSD_LIKE.txt
index 9dfdf7c6a..9dfdf7c6a 100644
--- a/solr-8.1.1/licenses/bcmail-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/bcmail-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/bcmail-NOTICE.txt b/solr-8.3.1/licenses/bcmail-NOTICE.txt
index be0638a2b..be0638a2b 100644
--- a/solr-8.1.1/licenses/bcmail-NOTICE.txt
+++ b/solr-8.3.1/licenses/bcmail-NOTICE.txt
diff --git a/solr-8.1.1/licenses/bcmail-jdk15on-1.60.jar.sha1 b/solr-8.3.1/licenses/bcmail-jdk15on-1.60.jar.sha1
index 9cb6092c7..9cb6092c7 100644
--- a/solr-8.1.1/licenses/bcmail-jdk15on-1.60.jar.sha1
+++ b/solr-8.3.1/licenses/bcmail-jdk15on-1.60.jar.sha1
diff --git a/solr-8.1.1/licenses/bcpkix-jdk15on-1.60.jar.sha1 b/solr-8.3.1/licenses/bcpkix-jdk15on-1.60.jar.sha1
index 45e955aac..45e955aac 100644
--- a/solr-8.1.1/licenses/bcpkix-jdk15on-1.60.jar.sha1
+++ b/solr-8.3.1/licenses/bcpkix-jdk15on-1.60.jar.sha1
diff --git a/solr-8.1.1/licenses/bcpkix-jdk15on-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/bcpkix-jdk15on-LICENSE-BSD_LIKE.txt
index 9dfdf7c6a..9dfdf7c6a 100644
--- a/solr-8.1.1/licenses/bcpkix-jdk15on-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/bcpkix-jdk15on-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/bcpkix-jdk15on-NOTICE.txt b/solr-8.3.1/licenses/bcpkix-jdk15on-NOTICE.txt
index be0638a2b..be0638a2b 100644
--- a/solr-8.1.1/licenses/bcpkix-jdk15on-NOTICE.txt
+++ b/solr-8.3.1/licenses/bcpkix-jdk15on-NOTICE.txt
diff --git a/solr-8.1.1/licenses/bcprov-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/bcprov-LICENSE-BSD_LIKE.txt
index 9dfdf7c6a..9dfdf7c6a 100644
--- a/solr-8.1.1/licenses/bcprov-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/bcprov-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/bcprov-NOTICE.txt b/solr-8.3.1/licenses/bcprov-NOTICE.txt
index be0638a2b..be0638a2b 100644
--- a/solr-8.1.1/licenses/bcprov-NOTICE.txt
+++ b/solr-8.3.1/licenses/bcprov-NOTICE.txt
diff --git a/solr-8.1.1/licenses/bcprov-jdk15on-1.60.jar.sha1 b/solr-8.3.1/licenses/bcprov-jdk15on-1.60.jar.sha1
index 3fc67c7c9..3fc67c7c9 100644
--- a/solr-8.1.1/licenses/bcprov-jdk15on-1.60.jar.sha1
+++ b/solr-8.3.1/licenses/bcprov-jdk15on-1.60.jar.sha1
diff --git a/solr-8.1.1/licenses/boilerpipe-1.1.0.jar.sha1 b/solr-8.3.1/licenses/boilerpipe-1.1.0.jar.sha1
index 889130609..889130609 100644
--- a/solr-8.1.1/licenses/boilerpipe-1.1.0.jar.sha1
+++ b/solr-8.3.1/licenses/boilerpipe-1.1.0.jar.sha1
diff --git a/solr-8.1.1/licenses/boilerpipe-LICENSE-ASL.txt b/solr-8.3.1/licenses/boilerpipe-LICENSE-ASL.txt
index ffc9501ae..ffc9501ae 100644
--- a/solr-8.1.1/licenses/boilerpipe-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/boilerpipe-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/boilerpipe-NOTICE.txt b/solr-8.3.1/licenses/boilerpipe-NOTICE.txt
index afbc6b5c9..afbc6b5c9 100644
--- a/solr-8.1.1/licenses/boilerpipe-NOTICE.txt
+++ b/solr-8.3.1/licenses/boilerpipe-NOTICE.txt
diff --git a/solr-8.1.1/licenses/byte-buddy-1.9.3.jar.sha1 b/solr-8.3.1/licenses/byte-buddy-1.9.3.jar.sha1
index 2a02d4267..2a02d4267 100644
--- a/solr-8.1.1/licenses/byte-buddy-1.9.3.jar.sha1
+++ b/solr-8.3.1/licenses/byte-buddy-1.9.3.jar.sha1
diff --git a/solr-8.1.1/licenses/byte-buddy-LICENSE-ASL.txt b/solr-8.3.1/licenses/byte-buddy-LICENSE-ASL.txt
index e06d20818..e06d20818 100644
--- a/solr-8.1.1/licenses/byte-buddy-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/byte-buddy-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/byte-buddy-NOTICE.txt b/solr-8.3.1/licenses/byte-buddy-NOTICE.txt
index 731a995d9..731a995d9 100644
--- a/solr-8.1.1/licenses/byte-buddy-NOTICE.txt
+++ b/solr-8.3.1/licenses/byte-buddy-NOTICE.txt
diff --git a/solr-8.3.1/licenses/caffeine-2.8.0.jar.sha1 b/solr-8.3.1/licenses/caffeine-2.8.0.jar.sha1
new file mode 100644
index 000000000..ce291c474
--- /dev/null
+++ b/solr-8.3.1/licenses/caffeine-2.8.0.jar.sha1
@@ -0,0 +1 @@
+6000774d7f8412ced005a704188ced78beeed2bb
diff --git a/solr-8.1.1/licenses/caffeine-LICENSE-ASL.txt b/solr-8.3.1/licenses/caffeine-LICENSE-ASL.txt
index 3e369e552..3e369e552 100644
--- a/solr-8.1.1/licenses/caffeine-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/caffeine-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/caffeine-NOTICE.txt b/solr-8.3.1/licenses/caffeine-NOTICE.txt
index 221cbcd5c..221cbcd5c 100644
--- a/solr-8.1.1/licenses/caffeine-NOTICE.txt
+++ b/solr-8.3.1/licenses/caffeine-NOTICE.txt
diff --git a/solr-8.1.1/licenses/calcite-core-1.18.0.jar.sha1 b/solr-8.3.1/licenses/calcite-core-1.18.0.jar.sha1
index 1cc0be0b5..1cc0be0b5 100644
--- a/solr-8.1.1/licenses/calcite-core-1.18.0.jar.sha1
+++ b/solr-8.3.1/licenses/calcite-core-1.18.0.jar.sha1
diff --git a/solr-8.1.1/licenses/calcite-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/calcite-core-LICENSE-ASL.txt
index f7b9863d5..f7b9863d5 100644
--- a/solr-8.1.1/licenses/calcite-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/calcite-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/calcite-core-NOTICE.txt b/solr-8.3.1/licenses/calcite-core-NOTICE.txt
index 589ab43a3..589ab43a3 100644
--- a/solr-8.1.1/licenses/calcite-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/calcite-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/calcite-linq4j-1.18.0.jar.sha1 b/solr-8.3.1/licenses/calcite-linq4j-1.18.0.jar.sha1
index 130f9e55a..130f9e55a 100644
--- a/solr-8.1.1/licenses/calcite-linq4j-1.18.0.jar.sha1
+++ b/solr-8.3.1/licenses/calcite-linq4j-1.18.0.jar.sha1
diff --git a/solr-8.1.1/licenses/calcite-linq4j-LICENSE-ASL.txt b/solr-8.3.1/licenses/calcite-linq4j-LICENSE-ASL.txt
index f7b9863d5..f7b9863d5 100644
--- a/solr-8.1.1/licenses/calcite-linq4j-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/calcite-linq4j-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/calcite-linq4j-NOTICE.txt b/solr-8.3.1/licenses/calcite-linq4j-NOTICE.txt
index 589ab43a3..589ab43a3 100644
--- a/solr-8.1.1/licenses/calcite-linq4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/calcite-linq4j-NOTICE.txt
diff --git a/solr-8.1.1/licenses/carrot2-guava-18.0.jar.sha1 b/solr-8.3.1/licenses/carrot2-guava-18.0.jar.sha1
index ce50fe330..ce50fe330 100644
--- a/solr-8.1.1/licenses/carrot2-guava-18.0.jar.sha1
+++ b/solr-8.3.1/licenses/carrot2-guava-18.0.jar.sha1
diff --git a/solr-8.1.1/licenses/carrot2-guava-LICENSE-ASL.txt b/solr-8.3.1/licenses/carrot2-guava-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/carrot2-guava-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/carrot2-guava-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/carrot2-guava-NOTICE.txt b/solr-8.3.1/licenses/carrot2-guava-NOTICE.txt
index 81a8a6e4a..81a8a6e4a 100644
--- a/solr-8.1.1/licenses/carrot2-guava-NOTICE.txt
+++ b/solr-8.3.1/licenses/carrot2-guava-NOTICE.txt
diff --git a/solr-8.1.1/licenses/carrot2-mini-3.16.0.jar.sha1 b/solr-8.3.1/licenses/carrot2-mini-3.16.0.jar.sha1
index 0b34d73ce..0b34d73ce 100644
--- a/solr-8.1.1/licenses/carrot2-mini-3.16.0.jar.sha1
+++ b/solr-8.3.1/licenses/carrot2-mini-3.16.0.jar.sha1
diff --git a/solr-8.1.1/licenses/carrot2-mini-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/carrot2-mini-LICENSE-BSD_LIKE.txt
index b2a38f3a5..b2a38f3a5 100644
--- a/solr-8.1.1/licenses/carrot2-mini-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/carrot2-mini-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/carrot2-mini-NOTICE.txt b/solr-8.3.1/licenses/carrot2-mini-NOTICE.txt
index 624dbf353..624dbf353 100644
--- a/solr-8.1.1/licenses/carrot2-mini-NOTICE.txt
+++ b/solr-8.3.1/licenses/carrot2-mini-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-cli-1.2.jar.sha1 b/solr-8.3.1/licenses/commons-cli-1.2.jar.sha1
index 6dacb321c..6dacb321c 100644
--- a/solr-8.1.1/licenses/commons-cli-1.2.jar.sha1
+++ b/solr-8.3.1/licenses/commons-cli-1.2.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-cli-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-cli-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/commons-cli-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-cli-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-cli-NOTICE.txt b/solr-8.3.1/licenses/commons-cli-NOTICE.txt
index 72eb32a90..72eb32a90 100644
--- a/solr-8.1.1/licenses/commons-cli-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-cli-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-codec-1.11.jar.sha1 b/solr-8.3.1/licenses/commons-codec-1.11.jar.sha1
index 0ca984151..0ca984151 100644
--- a/solr-8.1.1/licenses/commons-codec-1.11.jar.sha1
+++ b/solr-8.3.1/licenses/commons-codec-1.11.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-codec-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-codec-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/commons-codec-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-codec-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-codec-NOTICE.txt b/solr-8.3.1/licenses/commons-codec-NOTICE.txt
index 43d180979..43d180979 100644
--- a/solr-8.1.1/licenses/commons-codec-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-codec-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-collections-3.2.2.jar.sha1 b/solr-8.3.1/licenses/commons-collections-3.2.2.jar.sha1
index 3284fcae4..3284fcae4 100644
--- a/solr-8.1.1/licenses/commons-collections-3.2.2.jar.sha1
+++ b/solr-8.3.1/licenses/commons-collections-3.2.2.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-collections-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-collections-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/commons-collections-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-collections-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-collections-NOTICE.txt b/solr-8.3.1/licenses/commons-collections-NOTICE.txt
index a9e0fff6c..a9e0fff6c 100644
--- a/solr-8.1.1/licenses/commons-collections-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-collections-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-collections4-4.2.jar.sha1 b/solr-8.3.1/licenses/commons-collections4-4.2.jar.sha1
index e00186352..e00186352 100644
--- a/solr-8.1.1/licenses/commons-collections4-4.2.jar.sha1
+++ b/solr-8.3.1/licenses/commons-collections4-4.2.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-collections4-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-collections4-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/commons-collections4-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-collections4-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-collections4-NOTICE.txt b/solr-8.3.1/licenses/commons-collections4-NOTICE.txt
index 77fd82f2e..77fd82f2e 100644
--- a/solr-8.1.1/licenses/commons-collections4-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-collections4-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-compiler-3.0.9.jar.sha1 b/solr-8.3.1/licenses/commons-compiler-3.0.9.jar.sha1
index d3cd9d224..d3cd9d224 100644
--- a/solr-8.1.1/licenses/commons-compiler-3.0.9.jar.sha1
+++ b/solr-8.3.1/licenses/commons-compiler-3.0.9.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-compiler-LICENSE-BSD.txt b/solr-8.3.1/licenses/commons-compiler-LICENSE-BSD.txt
index ef871e242..ef871e242 100644
--- a/solr-8.1.1/licenses/commons-compiler-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/commons-compiler-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/commons-compiler-NOTICE.txt b/solr-8.3.1/licenses/commons-compiler-NOTICE.txt
index 203e2f920..203e2f920 100644
--- a/solr-8.1.1/licenses/commons-compiler-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-compiler-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-compress-1.18.jar.sha1 b/solr-8.3.1/licenses/commons-compress-1.18.jar.sha1
index 96fa37315..96fa37315 100644
--- a/solr-8.1.1/licenses/commons-compress-1.18.jar.sha1
+++ b/solr-8.3.1/licenses/commons-compress-1.18.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-compress-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-compress-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/commons-compress-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-compress-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-compress-NOTICE.txt b/solr-8.3.1/licenses/commons-compress-NOTICE.txt
index 07baa9863..07baa9863 100644
--- a/solr-8.1.1/licenses/commons-compress-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-compress-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-configuration-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-configuration-LICENSE-ASL.txt
index 3e369e552..3e369e552 100644
--- a/solr-8.1.1/licenses/commons-configuration-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-configuration-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-configuration-NOTICE.txt b/solr-8.3.1/licenses/commons-configuration-NOTICE.txt
index 131f93da2..131f93da2 100644
--- a/solr-8.1.1/licenses/commons-configuration-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-configuration-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-configuration2-2.1.1.jar.sha1 b/solr-8.3.1/licenses/commons-configuration2-2.1.1.jar.sha1
index 7cdc3d237..7cdc3d237 100644
--- a/solr-8.1.1/licenses/commons-configuration2-2.1.1.jar.sha1
+++ b/solr-8.3.1/licenses/commons-configuration2-2.1.1.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-configuration2-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-configuration2-LICENSE-ASL.txt
index 3e369e552..3e369e552 100644
--- a/solr-8.1.1/licenses/commons-configuration2-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-configuration2-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-configuration2-NOTICE.txt b/solr-8.3.1/licenses/commons-configuration2-NOTICE.txt
index 51e428563..51e428563 100644
--- a/solr-8.1.1/licenses/commons-configuration2-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-configuration2-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-digester-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-digester-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/commons-digester-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-digester-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-digester-NOTICE.txt b/solr-8.3.1/licenses/commons-digester-NOTICE.txt
index abf5dbe66..abf5dbe66 100644
--- a/solr-8.1.1/licenses/commons-digester-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-digester-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-exec-1.3.jar.sha1 b/solr-8.3.1/licenses/commons-exec-1.3.jar.sha1
index fca1c0110..fca1c0110 100644
--- a/solr-8.1.1/licenses/commons-exec-1.3.jar.sha1
+++ b/solr-8.3.1/licenses/commons-exec-1.3.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-exec-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-exec-LICENSE-ASL.txt
index f820d4bd3..f820d4bd3 100644
--- a/solr-8.1.1/licenses/commons-exec-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-exec-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-exec-NOTICE.txt b/solr-8.3.1/licenses/commons-exec-NOTICE.txt
index c4add835a..c4add835a 100644
--- a/solr-8.1.1/licenses/commons-exec-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-exec-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-fileupload-1.3.3.jar.sha1 b/solr-8.3.1/licenses/commons-fileupload-1.3.3.jar.sha1
index d27deb410..d27deb410 100644
--- a/solr-8.1.1/licenses/commons-fileupload-1.3.3.jar.sha1
+++ b/solr-8.3.1/licenses/commons-fileupload-1.3.3.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-fileupload-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-fileupload-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/commons-fileupload-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-fileupload-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-fileupload-NOTICE.txt b/solr-8.3.1/licenses/commons-fileupload-NOTICE.txt
index bec42c04a..bec42c04a 100644
--- a/solr-8.1.1/licenses/commons-fileupload-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-fileupload-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-io-2.5.jar.sha1 b/solr-8.3.1/licenses/commons-io-2.5.jar.sha1
index 4c14fb660..4c14fb660 100644
--- a/solr-8.1.1/licenses/commons-io-2.5.jar.sha1
+++ b/solr-8.3.1/licenses/commons-io-2.5.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-io-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-io-LICENSE-ASL.txt
index 6b0b1270f..6b0b1270f 100644
--- a/solr-8.1.1/licenses/commons-io-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-io-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-io-NOTICE.txt b/solr-8.3.1/licenses/commons-io-NOTICE.txt
index f9e09a55b..f9e09a55b 100644
--- a/solr-8.1.1/licenses/commons-io-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-io-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-lang3-3.8.1.jar.sha1 b/solr-8.3.1/licenses/commons-lang3-3.8.1.jar.sha1
index bbed0fbde..bbed0fbde 100644
--- a/solr-8.1.1/licenses/commons-lang3-3.8.1.jar.sha1
+++ b/solr-8.3.1/licenses/commons-lang3-3.8.1.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-lang3-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-lang3-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/commons-lang3-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-lang3-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-lang3-NOTICE.txt b/solr-8.3.1/licenses/commons-lang3-NOTICE.txt
index 6a77d8601..6a77d8601 100644
--- a/solr-8.1.1/licenses/commons-lang3-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-lang3-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-logging-1.1.3.jar.sha1 b/solr-8.3.1/licenses/commons-logging-1.1.3.jar.sha1
index c8756c438..c8756c438 100644
--- a/solr-8.1.1/licenses/commons-logging-1.1.3.jar.sha1
+++ b/solr-8.3.1/licenses/commons-logging-1.1.3.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-logging-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-logging-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/commons-logging-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-logging-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-logging-NOTICE.txt b/solr-8.3.1/licenses/commons-logging-NOTICE.txt
index 1a4521835..1a4521835 100644
--- a/solr-8.1.1/licenses/commons-logging-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-logging-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-math3-3.6.1.jar.sha1 b/solr-8.3.1/licenses/commons-math3-3.6.1.jar.sha1
index ed9a54975..ed9a54975 100644
--- a/solr-8.1.1/licenses/commons-math3-3.6.1.jar.sha1
+++ b/solr-8.3.1/licenses/commons-math3-3.6.1.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-math3-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-math3-LICENSE-ASL.txt
index d97b49ab0..d97b49ab0 100644
--- a/solr-8.1.1/licenses/commons-math3-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-math3-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-math3-NOTICE.txt b/solr-8.3.1/licenses/commons-math3-NOTICE.txt
index ce791e4f3..ce791e4f3 100644
--- a/solr-8.1.1/licenses/commons-math3-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-math3-NOTICE.txt
diff --git a/solr-8.1.1/licenses/commons-text-1.6.jar.sha1 b/solr-8.3.1/licenses/commons-text-1.6.jar.sha1
index 84b2ef1f1..84b2ef1f1 100644
--- a/solr-8.1.1/licenses/commons-text-1.6.jar.sha1
+++ b/solr-8.3.1/licenses/commons-text-1.6.jar.sha1
diff --git a/solr-8.1.1/licenses/commons-text-LICENSE-ASL.txt b/solr-8.3.1/licenses/commons-text-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/commons-text-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/commons-text-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-text-NOTICE.txt b/solr-8.3.1/licenses/commons-text-NOTICE.txt
index 1508878ea..1508878ea 100644
--- a/solr-8.1.1/licenses/commons-text-NOTICE.txt
+++ b/solr-8.3.1/licenses/commons-text-NOTICE.txt
diff --git a/solr-8.1.1/licenses/curator-client-2.13.0.jar.sha1 b/solr-8.3.1/licenses/curator-client-2.13.0.jar.sha1
index f44216a57..f44216a57 100644
--- a/solr-8.1.1/licenses/curator-client-2.13.0.jar.sha1
+++ b/solr-8.3.1/licenses/curator-client-2.13.0.jar.sha1
diff --git a/solr-8.1.1/licenses/curator-client-LICENSE-ASL.txt b/solr-8.3.1/licenses/curator-client-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/curator-client-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/curator-client-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/curator-client-NOTICE.txt b/solr-8.3.1/licenses/curator-client-NOTICE.txt
index e1f07d16e..e1f07d16e 100644
--- a/solr-8.1.1/licenses/curator-client-NOTICE.txt
+++ b/solr-8.3.1/licenses/curator-client-NOTICE.txt
diff --git a/solr-8.1.1/licenses/curator-framework-2.13.0.jar.sha1 b/solr-8.3.1/licenses/curator-framework-2.13.0.jar.sha1
index 930e5462d..930e5462d 100644
--- a/solr-8.1.1/licenses/curator-framework-2.13.0.jar.sha1
+++ b/solr-8.3.1/licenses/curator-framework-2.13.0.jar.sha1
diff --git a/solr-8.1.1/licenses/curator-framework-LICENSE-ASL.txt b/solr-8.3.1/licenses/curator-framework-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/curator-framework-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/curator-framework-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/curator-framework-NOTICE.txt b/solr-8.3.1/licenses/curator-framework-NOTICE.txt
index e1f07d16e..e1f07d16e 100644
--- a/solr-8.1.1/licenses/curator-framework-NOTICE.txt
+++ b/solr-8.3.1/licenses/curator-framework-NOTICE.txt
diff --git a/solr-8.1.1/licenses/curator-recipes-2.13.0.jar.sha1 b/solr-8.3.1/licenses/curator-recipes-2.13.0.jar.sha1
index 19c936df2..19c936df2 100644
--- a/solr-8.1.1/licenses/curator-recipes-2.13.0.jar.sha1
+++ b/solr-8.3.1/licenses/curator-recipes-2.13.0.jar.sha1
diff --git a/solr-8.1.1/licenses/curator-recipes-LICENSE-ASL.txt b/solr-8.3.1/licenses/curator-recipes-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/curator-recipes-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/curator-recipes-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/curator-recipes-NOTICE.txt b/solr-8.3.1/licenses/curator-recipes-NOTICE.txt
index e1f07d16e..e1f07d16e 100644
--- a/solr-8.1.1/licenses/curator-recipes-NOTICE.txt
+++ b/solr-8.3.1/licenses/curator-recipes-NOTICE.txt
diff --git a/solr-8.1.1/licenses/curvesapi-1.04.jar.sha1 b/solr-8.3.1/licenses/curvesapi-1.04.jar.sha1
index 51c262628..51c262628 100644
--- a/solr-8.1.1/licenses/curvesapi-1.04.jar.sha1
+++ b/solr-8.3.1/licenses/curvesapi-1.04.jar.sha1
diff --git a/solr-8.1.1/licenses/curvesapi-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/curvesapi-LICENSE-BSD_LIKE.txt
index e30f01523..e30f01523 100644
--- a/solr-8.1.1/licenses/curvesapi-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/curvesapi-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/curvesapi-NOTICE.txt b/solr-8.3.1/licenses/curvesapi-NOTICE.txt
index 326e674a4..326e674a4 100644
--- a/solr-8.1.1/licenses/curvesapi-NOTICE.txt
+++ b/solr-8.3.1/licenses/curvesapi-NOTICE.txt
diff --git a/solr-8.1.1/licenses/dec-0.1.2.jar.sha1 b/solr-8.3.1/licenses/dec-0.1.2.jar.sha1
index e52fb645e..e52fb645e 100644
--- a/solr-8.1.1/licenses/dec-0.1.2.jar.sha1
+++ b/solr-8.3.1/licenses/dec-0.1.2.jar.sha1
diff --git a/solr-8.1.1/licenses/dec-LICENSE-MIT.txt b/solr-8.3.1/licenses/dec-LICENSE-MIT.txt
index 33b7cdd2d..33b7cdd2d 100644
--- a/solr-8.1.1/licenses/dec-LICENSE-MIT.txt
+++ b/solr-8.3.1/licenses/dec-LICENSE-MIT.txt
diff --git a/solr-8.1.1/licenses/dec-NOTICE.txt b/solr-8.3.1/licenses/dec-NOTICE.txt
index 33b7cdd2d..33b7cdd2d 100644
--- a/solr-8.1.1/licenses/dec-NOTICE.txt
+++ b/solr-8.3.1/licenses/dec-NOTICE.txt
diff --git a/solr-8.1.1/licenses/derby-10.9.1.0.jar.sha1 b/solr-8.3.1/licenses/derby-10.9.1.0.jar.sha1
index 2a69e42af..2a69e42af 100644
--- a/solr-8.1.1/licenses/derby-10.9.1.0.jar.sha1
+++ b/solr-8.3.1/licenses/derby-10.9.1.0.jar.sha1
diff --git a/solr-8.1.1/licenses/derby-LICENSE-ASL.txt b/solr-8.3.1/licenses/derby-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/derby-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/derby-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/derby-NOTICE.txt b/solr-8.3.1/licenses/derby-NOTICE.txt
index f22595feb..f22595feb 100644
--- a/solr-8.1.1/licenses/derby-NOTICE.txt
+++ b/solr-8.3.1/licenses/derby-NOTICE.txt
diff --git a/solr-8.1.1/licenses/disruptor-3.4.2.jar.sha1 b/solr-8.3.1/licenses/disruptor-3.4.2.jar.sha1
index c21133646..c21133646 100644
--- a/solr-8.1.1/licenses/disruptor-3.4.2.jar.sha1
+++ b/solr-8.3.1/licenses/disruptor-3.4.2.jar.sha1
diff --git a/solr-8.1.1/licenses/disruptor-LICENSE-ASL.txt b/solr-8.3.1/licenses/disruptor-LICENSE-ASL.txt
index 8d968b6cb..8d968b6cb 100644
--- a/solr-8.1.1/licenses/disruptor-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/disruptor-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/disruptor-NOTICE.txt b/solr-8.3.1/licenses/disruptor-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/disruptor-NOTICE.txt
+++ b/solr-8.3.1/licenses/disruptor-NOTICE.txt
diff --git a/solr-8.1.1/licenses/eigenbase-properties-1.1.5.jar.sha1 b/solr-8.3.1/licenses/eigenbase-properties-1.1.5.jar.sha1
index 2617c4deb..2617c4deb 100644
--- a/solr-8.1.1/licenses/eigenbase-properties-1.1.5.jar.sha1
+++ b/solr-8.3.1/licenses/eigenbase-properties-1.1.5.jar.sha1
diff --git a/solr-8.1.1/licenses/eigenbase-properties-LICENSE-ASL.txt b/solr-8.3.1/licenses/eigenbase-properties-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/eigenbase-properties-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/eigenbase-properties-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/eigenbase-properties-NOTICE.txt b/solr-8.3.1/licenses/eigenbase-properties-NOTICE.txt
index 95ee3fd75..95ee3fd75 100644
--- a/solr-8.1.1/licenses/eigenbase-properties-NOTICE.txt
+++ b/solr-8.3.1/licenses/eigenbase-properties-NOTICE.txt
diff --git a/solr-8.1.1/licenses/fontbox-2.0.12.jar.sha1 b/solr-8.3.1/licenses/fontbox-2.0.12.jar.sha1
index 8ded8ca0a..8ded8ca0a 100644
--- a/solr-8.1.1/licenses/fontbox-2.0.12.jar.sha1
+++ b/solr-8.3.1/licenses/fontbox-2.0.12.jar.sha1
diff --git a/solr-8.1.1/licenses/fontbox-LICENSE-ASL.txt b/solr-8.3.1/licenses/fontbox-LICENSE-ASL.txt
index 3761b7ec0..3761b7ec0 100644
--- a/solr-8.1.1/licenses/fontbox-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/fontbox-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/fontbox-NOTICE.txt b/solr-8.3.1/licenses/fontbox-NOTICE.txt
index a2e87e5ff..a2e87e5ff 100644
--- a/solr-8.1.1/licenses/fontbox-NOTICE.txt
+++ b/solr-8.3.1/licenses/fontbox-NOTICE.txt
diff --git a/solr-8.1.1/licenses/gimap-1.5.1.jar.sha1 b/solr-8.3.1/licenses/gimap-1.5.1.jar.sha1
index 41c9dbff5..41c9dbff5 100644
--- a/solr-8.1.1/licenses/gimap-1.5.1.jar.sha1
+++ b/solr-8.3.1/licenses/gimap-1.5.1.jar.sha1
diff --git a/solr-8.1.1/licenses/gimap-LICENSE-CDDL.txt b/solr-8.3.1/licenses/gimap-LICENSE-CDDL.txt
index a147fe44b..a147fe44b 100644
--- a/solr-8.1.1/licenses/gimap-LICENSE-CDDL.txt
+++ b/solr-8.3.1/licenses/gimap-LICENSE-CDDL.txt
diff --git a/solr-8.1.1/licenses/guava-25.1-jre.jar.sha1 b/solr-8.3.1/licenses/guava-25.1-jre.jar.sha1
index 8ee9ae964..8ee9ae964 100644
--- a/solr-8.1.1/licenses/guava-25.1-jre.jar.sha1
+++ b/solr-8.3.1/licenses/guava-25.1-jre.jar.sha1
diff --git a/solr-8.1.1/licenses/guava-LICENSE-ASL.txt b/solr-8.3.1/licenses/guava-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/guava-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/guava-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/guava-NOTICE.txt b/solr-8.3.1/licenses/guava-NOTICE.txt
index 708a8cddb..708a8cddb 100644
--- a/solr-8.1.1/licenses/guava-NOTICE.txt
+++ b/solr-8.3.1/licenses/guava-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hadoop-annotations-3.2.0.jar.sha1 b/solr-8.3.1/licenses/hadoop-annotations-3.2.0.jar.sha1
index c1ae3ba96..c1ae3ba96 100644
--- a/solr-8.1.1/licenses/hadoop-annotations-3.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/hadoop-annotations-3.2.0.jar.sha1
diff --git a/solr-8.1.1/licenses/hadoop-annotations-LICENSE-ASL.txt b/solr-8.3.1/licenses/hadoop-annotations-LICENSE-ASL.txt
index 59bcdbc97..59bcdbc97 100644
--- a/solr-8.1.1/licenses/hadoop-annotations-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hadoop-annotations-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hadoop-annotations-NOTICE.txt b/solr-8.3.1/licenses/hadoop-annotations-NOTICE.txt
index 62fc5816c..62fc5816c 100644
--- a/solr-8.1.1/licenses/hadoop-annotations-NOTICE.txt
+++ b/solr-8.3.1/licenses/hadoop-annotations-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hadoop-auth-3.2.0.jar.sha1 b/solr-8.3.1/licenses/hadoop-auth-3.2.0.jar.sha1
index b737a8d2e..b737a8d2e 100644
--- a/solr-8.1.1/licenses/hadoop-auth-3.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/hadoop-auth-3.2.0.jar.sha1
diff --git a/solr-8.1.1/licenses/hadoop-auth-LICENSE-ASL.txt b/solr-8.3.1/licenses/hadoop-auth-LICENSE-ASL.txt
index 59bcdbc97..59bcdbc97 100644
--- a/solr-8.1.1/licenses/hadoop-auth-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hadoop-auth-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hadoop-auth-NOTICE.txt b/solr-8.3.1/licenses/hadoop-auth-NOTICE.txt
index 62fc5816c..62fc5816c 100644
--- a/solr-8.1.1/licenses/hadoop-auth-NOTICE.txt
+++ b/solr-8.3.1/licenses/hadoop-auth-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hadoop-common-3.2.0-tests.jar.sha1 b/solr-8.3.1/licenses/hadoop-common-3.2.0-tests.jar.sha1
index ec7e6b608..ec7e6b608 100644
--- a/solr-8.1.1/licenses/hadoop-common-3.2.0-tests.jar.sha1
+++ b/solr-8.3.1/licenses/hadoop-common-3.2.0-tests.jar.sha1
diff --git a/solr-8.1.1/licenses/hadoop-common-3.2.0.jar.sha1 b/solr-8.3.1/licenses/hadoop-common-3.2.0.jar.sha1
index fdc40c0ac..fdc40c0ac 100644
--- a/solr-8.1.1/licenses/hadoop-common-3.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/hadoop-common-3.2.0.jar.sha1
diff --git a/solr-8.1.1/licenses/hadoop-common-LICENSE-ASL.txt b/solr-8.3.1/licenses/hadoop-common-LICENSE-ASL.txt
index 59bcdbc97..59bcdbc97 100644
--- a/solr-8.1.1/licenses/hadoop-common-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hadoop-common-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hadoop-common-NOTICE.txt b/solr-8.3.1/licenses/hadoop-common-NOTICE.txt
index 62fc5816c..62fc5816c 100644
--- a/solr-8.1.1/licenses/hadoop-common-NOTICE.txt
+++ b/solr-8.3.1/licenses/hadoop-common-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hadoop-common-tests-LICENSE-ASL.txt b/solr-8.3.1/licenses/hadoop-common-tests-LICENSE-ASL.txt
index 59bcdbc97..59bcdbc97 100644
--- a/solr-8.1.1/licenses/hadoop-common-tests-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hadoop-common-tests-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hadoop-common-tests-NOTICE.txt b/solr-8.3.1/licenses/hadoop-common-tests-NOTICE.txt
index 62fc5816c..62fc5816c 100644
--- a/solr-8.1.1/licenses/hadoop-common-tests-NOTICE.txt
+++ b/solr-8.3.1/licenses/hadoop-common-tests-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hadoop-hdfs-3.2.0-tests.jar.sha1 b/solr-8.3.1/licenses/hadoop-hdfs-3.2.0-tests.jar.sha1
index c64eba7ea..c64eba7ea 100644
--- a/solr-8.1.1/licenses/hadoop-hdfs-3.2.0-tests.jar.sha1
+++ b/solr-8.3.1/licenses/hadoop-hdfs-3.2.0-tests.jar.sha1
diff --git a/solr-8.1.1/licenses/hadoop-hdfs-3.2.0.jar.sha1 b/solr-8.3.1/licenses/hadoop-hdfs-3.2.0.jar.sha1
index 133598305..133598305 100644
--- a/solr-8.1.1/licenses/hadoop-hdfs-3.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/hadoop-hdfs-3.2.0.jar.sha1
diff --git a/solr-8.1.1/licenses/hadoop-hdfs-LICENSE-ASL.txt b/solr-8.3.1/licenses/hadoop-hdfs-LICENSE-ASL.txt
index 59bcdbc97..59bcdbc97 100644
--- a/solr-8.1.1/licenses/hadoop-hdfs-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hadoop-hdfs-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hadoop-hdfs-NOTICE.txt b/solr-8.3.1/licenses/hadoop-hdfs-NOTICE.txt
index 62fc5816c..62fc5816c 100644
--- a/solr-8.1.1/licenses/hadoop-hdfs-NOTICE.txt
+++ b/solr-8.3.1/licenses/hadoop-hdfs-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hadoop-hdfs-client-3.2.0.jar.sha1 b/solr-8.3.1/licenses/hadoop-hdfs-client-3.2.0.jar.sha1
index 0f7ad25b5..0f7ad25b5 100644
--- a/solr-8.1.1/licenses/hadoop-hdfs-client-3.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/hadoop-hdfs-client-3.2.0.jar.sha1
diff --git a/solr-8.1.1/licenses/hadoop-hdfs-client-LICENSE-ASL.txt b/solr-8.3.1/licenses/hadoop-hdfs-client-LICENSE-ASL.txt
index 59bcdbc97..59bcdbc97 100644
--- a/solr-8.1.1/licenses/hadoop-hdfs-client-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hadoop-hdfs-client-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hadoop-hdfs-client-NOTICE.txt b/solr-8.3.1/licenses/hadoop-hdfs-client-NOTICE.txt
index 62fc5816c..62fc5816c 100644
--- a/solr-8.1.1/licenses/hadoop-hdfs-client-NOTICE.txt
+++ b/solr-8.3.1/licenses/hadoop-hdfs-client-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hadoop-hdfs-tests-LICENSE-ASL.txt b/solr-8.3.1/licenses/hadoop-hdfs-tests-LICENSE-ASL.txt
index 59bcdbc97..59bcdbc97 100644
--- a/solr-8.1.1/licenses/hadoop-hdfs-tests-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hadoop-hdfs-tests-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hadoop-hdfs-tests-NOTICE.txt b/solr-8.3.1/licenses/hadoop-hdfs-tests-NOTICE.txt
index 62fc5816c..62fc5816c 100644
--- a/solr-8.1.1/licenses/hadoop-hdfs-tests-NOTICE.txt
+++ b/solr-8.3.1/licenses/hadoop-hdfs-tests-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hadoop-minicluster-3.2.0.jar.sha1 b/solr-8.3.1/licenses/hadoop-minicluster-3.2.0.jar.sha1
index 5bbb11dfc..5bbb11dfc 100644
--- a/solr-8.1.1/licenses/hadoop-minicluster-3.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/hadoop-minicluster-3.2.0.jar.sha1
diff --git a/solr-8.1.1/licenses/hadoop-minicluster-LICENSE-ASL.txt b/solr-8.3.1/licenses/hadoop-minicluster-LICENSE-ASL.txt
index 59bcdbc97..59bcdbc97 100644
--- a/solr-8.1.1/licenses/hadoop-minicluster-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hadoop-minicluster-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hadoop-minicluster-NOTICE.txt b/solr-8.3.1/licenses/hadoop-minicluster-NOTICE.txt
index 62fc5816c..62fc5816c 100644
--- a/solr-8.1.1/licenses/hadoop-minicluster-NOTICE.txt
+++ b/solr-8.3.1/licenses/hadoop-minicluster-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hadoop-minikdc-3.2.0.jar.sha1 b/solr-8.3.1/licenses/hadoop-minikdc-3.2.0.jar.sha1
index d6b740578..d6b740578 100644
--- a/solr-8.1.1/licenses/hadoop-minikdc-3.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/hadoop-minikdc-3.2.0.jar.sha1
diff --git a/solr-8.1.1/licenses/hadoop-minikdc-LICENSE-ASL.txt b/solr-8.3.1/licenses/hadoop-minikdc-LICENSE-ASL.txt
index 59bcdbc97..59bcdbc97 100644
--- a/solr-8.1.1/licenses/hadoop-minikdc-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hadoop-minikdc-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hadoop-minikdc-NOTICE.txt b/solr-8.3.1/licenses/hadoop-minikdc-NOTICE.txt
index 62fc5816c..62fc5816c 100644
--- a/solr-8.1.1/licenses/hadoop-minikdc-NOTICE.txt
+++ b/solr-8.3.1/licenses/hadoop-minikdc-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hamcrest-core-1.3.jar.sha1 b/solr-8.3.1/licenses/hamcrest-core-1.3.jar.sha1
index 67add77ad..67add77ad 100644
--- a/solr-8.1.1/licenses/hamcrest-core-1.3.jar.sha1
+++ b/solr-8.3.1/licenses/hamcrest-core-1.3.jar.sha1
diff --git a/solr-8.1.1/licenses/hamcrest-core-LICENSE-BSD.txt b/solr-8.3.1/licenses/hamcrest-core-LICENSE-BSD.txt
index dcdcc4234..dcdcc4234 100644
--- a/solr-8.1.1/licenses/hamcrest-core-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/hamcrest-core-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/hamcrest-core-NOTICE.txt b/solr-8.3.1/licenses/hamcrest-core-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/hamcrest-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/hamcrest-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hppc-0.8.1.jar.sha1 b/solr-8.3.1/licenses/hppc-0.8.1.jar.sha1
index 7006e68f4..7006e68f4 100644
--- a/solr-8.1.1/licenses/hppc-0.8.1.jar.sha1
+++ b/solr-8.3.1/licenses/hppc-0.8.1.jar.sha1
diff --git a/solr-8.1.1/licenses/hppc-LICENSE-ASL.txt b/solr-8.3.1/licenses/hppc-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/hppc-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/hppc-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/hppc-NOTICE.txt b/solr-8.3.1/licenses/hppc-NOTICE.txt
index 10c50fea4..10c50fea4 100644
--- a/solr-8.1.1/licenses/hppc-NOTICE.txt
+++ b/solr-8.3.1/licenses/hppc-NOTICE.txt
diff --git a/solr-8.1.1/licenses/hsqldb-2.4.0.jar.sha1 b/solr-8.3.1/licenses/hsqldb-2.4.0.jar.sha1
index efc200dff..efc200dff 100644
--- a/solr-8.1.1/licenses/hsqldb-2.4.0.jar.sha1
+++ b/solr-8.3.1/licenses/hsqldb-2.4.0.jar.sha1
diff --git a/solr-8.1.1/licenses/hsqldb-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/hsqldb-LICENSE-BSD_LIKE.txt
index b8ac4f54d..b8ac4f54d 100644
--- a/solr-8.1.1/licenses/hsqldb-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/hsqldb-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/hsqldb-NOTICE.txt b/solr-8.3.1/licenses/hsqldb-NOTICE.txt
index 829f8a24e..829f8a24e 100644
--- a/solr-8.1.1/licenses/hsqldb-NOTICE.txt
+++ b/solr-8.3.1/licenses/hsqldb-NOTICE.txt
diff --git a/solr-8.1.1/licenses/htrace-core4-4.1.0-incubating.jar.sha1 b/solr-8.3.1/licenses/htrace-core4-4.1.0-incubating.jar.sha1
index 7162ab7cf..7162ab7cf 100644
--- a/solr-8.1.1/licenses/htrace-core4-4.1.0-incubating.jar.sha1
+++ b/solr-8.3.1/licenses/htrace-core4-4.1.0-incubating.jar.sha1
diff --git a/solr-8.1.1/licenses/htrace-core4-LICENSE-ASL.txt b/solr-8.3.1/licenses/htrace-core4-LICENSE-ASL.txt
index 2c41ec88f..2c41ec88f 100644
--- a/solr-8.1.1/licenses/htrace-core4-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/htrace-core4-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/htrace-core4-NOTICE.txt b/solr-8.3.1/licenses/htrace-core4-NOTICE.txt
index 19f97eb35..19f97eb35 100644
--- a/solr-8.1.1/licenses/htrace-core4-NOTICE.txt
+++ b/solr-8.3.1/licenses/htrace-core4-NOTICE.txt
diff --git a/solr-8.3.1/licenses/http2-client-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/http2-client-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..c17735d78
--- /dev/null
+++ b/solr-8.3.1/licenses/http2-client-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+da335ee2e7d1439dcc7e11e89941edfad91e9e10
diff --git a/solr-8.1.1/licenses/http2-client-LICENSE-ASL.txt b/solr-8.3.1/licenses/http2-client-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/http2-client-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/http2-client-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/http2-client-NOTICE.txt b/solr-8.3.1/licenses/http2-client-NOTICE.txt
index fcd254bee..fcd254bee 100644
--- a/solr-8.1.1/licenses/http2-client-NOTICE.txt
+++ b/solr-8.3.1/licenses/http2-client-NOTICE.txt
diff --git a/solr-8.3.1/licenses/http2-common-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/http2-common-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..dcfb3b152
--- /dev/null
+++ b/solr-8.3.1/licenses/http2-common-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+3b8c59c68d52a3d0de0d53f5b3588be3a5c05fb8
diff --git a/solr-8.1.1/licenses/http2-common-LICENSE-ASL.txt b/solr-8.3.1/licenses/http2-common-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/http2-common-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/http2-common-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/http2-common-NOTICE.txt b/solr-8.3.1/licenses/http2-common-NOTICE.txt
index fcd254bee..fcd254bee 100644
--- a/solr-8.1.1/licenses/http2-common-NOTICE.txt
+++ b/solr-8.3.1/licenses/http2-common-NOTICE.txt
diff --git a/solr-8.3.1/licenses/http2-hpack-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/http2-hpack-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..b2092f189
--- /dev/null
+++ b/solr-8.3.1/licenses/http2-hpack-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+3aaf2c8c9c781f10d4d9da6120c5195b2fcb2ad9
diff --git a/solr-8.1.1/licenses/http2-hpack-LICENSE-ASL.txt b/solr-8.3.1/licenses/http2-hpack-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/http2-hpack-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/http2-hpack-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/http2-hpack-NOTICE.txt b/solr-8.3.1/licenses/http2-hpack-NOTICE.txt
index fcd254bee..fcd254bee 100644
--- a/solr-8.1.1/licenses/http2-hpack-NOTICE.txt
+++ b/solr-8.3.1/licenses/http2-hpack-NOTICE.txt
diff --git a/solr-8.3.1/licenses/http2-http-client-transport-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/http2-http-client-transport-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..366440fab
--- /dev/null
+++ b/solr-8.3.1/licenses/http2-http-client-transport-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+95f58cd0cfa0c4553fc3901138cc6a03ece23b94
diff --git a/solr-8.1.1/licenses/http2-http-client-transport-LICENSE-ASL.txt b/solr-8.3.1/licenses/http2-http-client-transport-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/http2-http-client-transport-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/http2-http-client-transport-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/http2-http-client-transport-NOTICE.txt b/solr-8.3.1/licenses/http2-http-client-transport-NOTICE.txt
index fcd254bee..fcd254bee 100644
--- a/solr-8.1.1/licenses/http2-http-client-transport-NOTICE.txt
+++ b/solr-8.3.1/licenses/http2-http-client-transport-NOTICE.txt
diff --git a/solr-8.3.1/licenses/http2-server-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/http2-server-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..14875851d
--- /dev/null
+++ b/solr-8.3.1/licenses/http2-server-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+672891a1abbeef85192d137192e347872a6fc9c3
diff --git a/solr-8.1.1/licenses/http2-server-LICENSE-ASL.txt b/solr-8.3.1/licenses/http2-server-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/http2-server-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/http2-server-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/http2-server-NOTICE.txt b/solr-8.3.1/licenses/http2-server-NOTICE.txt
index fcd254bee..fcd254bee 100644
--- a/solr-8.1.1/licenses/http2-server-NOTICE.txt
+++ b/solr-8.3.1/licenses/http2-server-NOTICE.txt
diff --git a/solr-8.1.1/licenses/httpclient-4.5.6.jar.sha1 b/solr-8.3.1/licenses/httpclient-4.5.6.jar.sha1
index 92b233e91..92b233e91 100644
--- a/solr-8.1.1/licenses/httpclient-4.5.6.jar.sha1
+++ b/solr-8.3.1/licenses/httpclient-4.5.6.jar.sha1
diff --git a/solr-8.1.1/licenses/httpclient-LICENSE-ASL.txt b/solr-8.3.1/licenses/httpclient-LICENSE-ASL.txt
index 2c41ec88f..2c41ec88f 100644
--- a/solr-8.1.1/licenses/httpclient-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/httpclient-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/httpclient-NOTICE.txt b/solr-8.3.1/licenses/httpclient-NOTICE.txt
index 4b40ea057..4b40ea057 100644
--- a/solr-8.1.1/licenses/httpclient-NOTICE.txt
+++ b/solr-8.3.1/licenses/httpclient-NOTICE.txt
diff --git a/solr-8.1.1/licenses/httpcore-4.4.10.jar.sha1 b/solr-8.3.1/licenses/httpcore-4.4.10.jar.sha1
index 6f915469a..6f915469a 100644
--- a/solr-8.1.1/licenses/httpcore-4.4.10.jar.sha1
+++ b/solr-8.3.1/licenses/httpcore-4.4.10.jar.sha1
diff --git a/solr-8.1.1/licenses/httpcore-LICENSE-ASL.txt b/solr-8.3.1/licenses/httpcore-LICENSE-ASL.txt
index 2c41ec88f..2c41ec88f 100644
--- a/solr-8.1.1/licenses/httpcore-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/httpcore-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/httpcore-NOTICE.txt b/solr-8.3.1/licenses/httpcore-NOTICE.txt
index 4b40ea057..4b40ea057 100644
--- a/solr-8.1.1/licenses/httpcore-NOTICE.txt
+++ b/solr-8.3.1/licenses/httpcore-NOTICE.txt
diff --git a/solr-8.1.1/licenses/httpmime-4.5.6.jar.sha1 b/solr-8.3.1/licenses/httpmime-4.5.6.jar.sha1
index eba7d66ef..eba7d66ef 100644
--- a/solr-8.1.1/licenses/httpmime-4.5.6.jar.sha1
+++ b/solr-8.3.1/licenses/httpmime-4.5.6.jar.sha1
diff --git a/solr-8.1.1/licenses/httpmime-LICENSE-ASL.txt b/solr-8.3.1/licenses/httpmime-LICENSE-ASL.txt
index 2c41ec88f..2c41ec88f 100644
--- a/solr-8.1.1/licenses/httpmime-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/httpmime-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/httpmime-NOTICE.txt b/solr-8.3.1/licenses/httpmime-NOTICE.txt
index 4b40ea057..4b40ea057 100644
--- a/solr-8.1.1/licenses/httpmime-NOTICE.txt
+++ b/solr-8.3.1/licenses/httpmime-NOTICE.txt
diff --git a/solr-8.1.1/licenses/icu4j-62.1.jar.sha1 b/solr-8.3.1/licenses/icu4j-62.1.jar.sha1
index 20fa5c752..20fa5c752 100644
--- a/solr-8.1.1/licenses/icu4j-62.1.jar.sha1
+++ b/solr-8.3.1/licenses/icu4j-62.1.jar.sha1
diff --git a/solr-8.1.1/licenses/icu4j-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/icu4j-LICENSE-BSD_LIKE.txt
index e76faec4a..e76faec4a 100644
--- a/solr-8.1.1/licenses/icu4j-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/icu4j-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/icu4j-NOTICE.txt b/solr-8.3.1/licenses/icu4j-NOTICE.txt
index 575045cdb..575045cdb 100644
--- a/solr-8.1.1/licenses/icu4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/icu4j-NOTICE.txt
diff --git a/solr-8.1.1/licenses/isoparser-1.1.22.jar.sha1 b/solr-8.3.1/licenses/isoparser-1.1.22.jar.sha1
index be8f2ada4..be8f2ada4 100644
--- a/solr-8.1.1/licenses/isoparser-1.1.22.jar.sha1
+++ b/solr-8.3.1/licenses/isoparser-1.1.22.jar.sha1
diff --git a/solr-8.1.1/licenses/isoparser-LICENSE-ASL.txt b/solr-8.3.1/licenses/isoparser-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/isoparser-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/isoparser-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/isoparser-NOTICE.txt b/solr-8.3.1/licenses/isoparser-NOTICE.txt
index 83b225d7a..83b225d7a 100644
--- a/solr-8.1.1/licenses/isoparser-NOTICE.txt
+++ b/solr-8.3.1/licenses/isoparser-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jackcess-2.1.12.jar.sha1 b/solr-8.3.1/licenses/jackcess-2.1.12.jar.sha1
index 49fe42146..49fe42146 100644
--- a/solr-8.1.1/licenses/jackcess-2.1.12.jar.sha1
+++ b/solr-8.3.1/licenses/jackcess-2.1.12.jar.sha1
diff --git a/solr-8.1.1/licenses/jackcess-LICENSE-ASL.txt b/solr-8.3.1/licenses/jackcess-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/jackcess-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jackcess-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jackcess-NOTICE.txt b/solr-8.3.1/licenses/jackcess-NOTICE.txt
index 99cb4a0bd..99cb4a0bd 100644
--- a/solr-8.1.1/licenses/jackcess-NOTICE.txt
+++ b/solr-8.3.1/licenses/jackcess-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jackcess-encrypt-2.1.4.jar.sha1 b/solr-8.3.1/licenses/jackcess-encrypt-2.1.4.jar.sha1
index b0153ecf9..b0153ecf9 100644
--- a/solr-8.1.1/licenses/jackcess-encrypt-2.1.4.jar.sha1
+++ b/solr-8.3.1/licenses/jackcess-encrypt-2.1.4.jar.sha1
diff --git a/solr-8.1.1/licenses/jackcess-encrypt-LICENSE-ASL.txt b/solr-8.3.1/licenses/jackcess-encrypt-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/jackcess-encrypt-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jackcess-encrypt-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jackcess-encrypt-NOTICE.txt b/solr-8.3.1/licenses/jackcess-encrypt-NOTICE.txt
index 99cb4a0bd..99cb4a0bd 100644
--- a/solr-8.1.1/licenses/jackcess-encrypt-NOTICE.txt
+++ b/solr-8.3.1/licenses/jackcess-encrypt-NOTICE.txt
diff --git a/solr-8.3.1/licenses/jackson-annotations-2.9.9.jar.sha1 b/solr-8.3.1/licenses/jackson-annotations-2.9.9.jar.sha1
new file mode 100644
index 000000000..7cf1b18f1
--- /dev/null
+++ b/solr-8.3.1/licenses/jackson-annotations-2.9.9.jar.sha1
@@ -0,0 +1 @@
+2ea299c145207161c212e28abbc8f513fa245940
diff --git a/solr-8.1.1/licenses/jackson-annotations-LICENSE-ASL.txt b/solr-8.3.1/licenses/jackson-annotations-LICENSE-ASL.txt
index ff94ef8c4..ff94ef8c4 100644
--- a/solr-8.1.1/licenses/jackson-annotations-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jackson-annotations-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jackson-annotations-NOTICE.txt b/solr-8.3.1/licenses/jackson-annotations-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/jackson-annotations-NOTICE.txt
+++ b/solr-8.3.1/licenses/jackson-annotations-NOTICE.txt
diff --git a/solr-8.3.1/licenses/jackson-core-2.9.9.jar.sha1 b/solr-8.3.1/licenses/jackson-core-2.9.9.jar.sha1
new file mode 100644
index 000000000..d81f13017
--- /dev/null
+++ b/solr-8.3.1/licenses/jackson-core-2.9.9.jar.sha1
@@ -0,0 +1 @@
+bfff5af9fb8347d26bbb7959cb9b4fe9a2b0ca5e
diff --git a/solr-8.1.1/licenses/jackson-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/jackson-core-LICENSE-ASL.txt
index f5f45d26a..f5f45d26a 100644
--- a/solr-8.1.1/licenses/jackson-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jackson-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jackson-core-NOTICE.txt b/solr-8.3.1/licenses/jackson-core-NOTICE.txt
index 4c976b7b4..4c976b7b4 100644
--- a/solr-8.1.1/licenses/jackson-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/jackson-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jackson-core-asl-LICENSE-ASL.txt b/solr-8.3.1/licenses/jackson-core-asl-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/jackson-core-asl-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jackson-core-asl-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jackson-core-asl-NOTICE.txt b/solr-8.3.1/licenses/jackson-core-asl-NOTICE.txt
index 0cae638a1..0cae638a1 100644
--- a/solr-8.1.1/licenses/jackson-core-asl-NOTICE.txt
+++ b/solr-8.3.1/licenses/jackson-core-asl-NOTICE.txt
diff --git a/solr-8.3.1/licenses/jackson-databind-2.9.9.3.jar.sha1 b/solr-8.3.1/licenses/jackson-databind-2.9.9.3.jar.sha1
new file mode 100644
index 000000000..6b26e158c
--- /dev/null
+++ b/solr-8.3.1/licenses/jackson-databind-2.9.9.3.jar.sha1
@@ -0,0 +1 @@
+68ddd453458765757fd3ffca9437f9a42d91003e
diff --git a/solr-8.1.1/licenses/jackson-databind-LICENSE-ASL.txt b/solr-8.3.1/licenses/jackson-databind-LICENSE-ASL.txt
index 6acf75483..6acf75483 100644
--- a/solr-8.1.1/licenses/jackson-databind-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jackson-databind-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jackson-databind-NOTICE.txt b/solr-8.3.1/licenses/jackson-databind-NOTICE.txt
index 5ab1e5636..5ab1e5636 100644
--- a/solr-8.1.1/licenses/jackson-databind-NOTICE.txt
+++ b/solr-8.3.1/licenses/jackson-databind-NOTICE.txt
diff --git a/solr-8.3.1/licenses/jackson-dataformat-smile-2.9.9.jar.sha1 b/solr-8.3.1/licenses/jackson-dataformat-smile-2.9.9.jar.sha1
new file mode 100644
index 000000000..7d77811c0
--- /dev/null
+++ b/solr-8.3.1/licenses/jackson-dataformat-smile-2.9.9.jar.sha1
@@ -0,0 +1 @@
+85749406c69b08945d6059db679cc66990340ebc
diff --git a/solr-8.1.1/licenses/jackson-dataformat-smile-LICENSE-ASL.txt b/solr-8.3.1/licenses/jackson-dataformat-smile-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/jackson-dataformat-smile-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jackson-dataformat-smile-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jackson-dataformat-smile-NOTICE.txt b/solr-8.3.1/licenses/jackson-dataformat-smile-NOTICE.txt
index 5ab1e5636..5ab1e5636 100644
--- a/solr-8.1.1/licenses/jackson-dataformat-smile-NOTICE.txt
+++ b/solr-8.3.1/licenses/jackson-dataformat-smile-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jackson-jq-0.0.8.jar.sha1 b/solr-8.3.1/licenses/jackson-jq-0.0.8.jar.sha1
index 4b7a4d297..4b7a4d297 100644
--- a/solr-8.1.1/licenses/jackson-jq-0.0.8.jar.sha1
+++ b/solr-8.3.1/licenses/jackson-jq-0.0.8.jar.sha1
diff --git a/solr-8.1.1/licenses/jackson-jq-LICENSE-ASL.txt b/solr-8.3.1/licenses/jackson-jq-LICENSE-ASL.txt
index 1a9674c55..1a9674c55 100644
--- a/solr-8.1.1/licenses/jackson-jq-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jackson-jq-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jackson-jq-NOTICE.txt b/solr-8.3.1/licenses/jackson-jq-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/jackson-jq-NOTICE.txt
+++ b/solr-8.3.1/licenses/jackson-jq-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jackson-mapper-asl-LICENSE-ASL.txt b/solr-8.3.1/licenses/jackson-mapper-asl-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/jackson-mapper-asl-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jackson-mapper-asl-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jackson-mapper-asl-NOTICE.txt b/solr-8.3.1/licenses/jackson-mapper-asl-NOTICE.txt
index 0cae638a1..0cae638a1 100644
--- a/solr-8.1.1/licenses/jackson-mapper-asl-NOTICE.txt
+++ b/solr-8.3.1/licenses/jackson-mapper-asl-NOTICE.txt
diff --git a/solr-8.3.1/licenses/jaeger-core-0.35.5.jar.sha1 b/solr-8.3.1/licenses/jaeger-core-0.35.5.jar.sha1
new file mode 100644
index 000000000..3c0b73c38
--- /dev/null
+++ b/solr-8.3.1/licenses/jaeger-core-0.35.5.jar.sha1
@@ -0,0 +1 @@
+fc934c7619ca7c626a7ce713646d8c43f8dca8bd
diff --git a/solr-8.1.1/licenses/log4j-api-LICENSE-ASL.txt b/solr-8.3.1/licenses/jaeger-core-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/log4j-api-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jaeger-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/json-path-NOTICE.txt b/solr-8.3.1/licenses/jaeger-core-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/json-path-NOTICE.txt
+++ b/solr-8.3.1/licenses/jaeger-core-NOTICE.txt
diff --git a/solr-8.3.1/licenses/jaeger-thrift-0.35.5.jar.sha1 b/solr-8.3.1/licenses/jaeger-thrift-0.35.5.jar.sha1
new file mode 100644
index 000000000..baa1f4d45
--- /dev/null
+++ b/solr-8.3.1/licenses/jaeger-thrift-0.35.5.jar.sha1
@@ -0,0 +1 @@
+dc4066e5b4532121b8e4d69124919376ab123940
diff --git a/solr-8.1.1/licenses/log4j-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/jaeger-thrift-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/log4j-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jaeger-thrift-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/presto-parser-NOTICE.txt b/solr-8.3.1/licenses/jaeger-thrift-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/presto-parser-NOTICE.txt
+++ b/solr-8.3.1/licenses/jaeger-thrift-NOTICE.txt
diff --git a/solr-8.1.1/licenses/janino-3.0.9.jar.sha1 b/solr-8.3.1/licenses/janino-3.0.9.jar.sha1
index c5b66b0bf..c5b66b0bf 100644
--- a/solr-8.1.1/licenses/janino-3.0.9.jar.sha1
+++ b/solr-8.3.1/licenses/janino-3.0.9.jar.sha1
diff --git a/solr-8.1.1/licenses/janino-LICENSE-BSD.txt b/solr-8.3.1/licenses/janino-LICENSE-BSD.txt
index ef871e242..ef871e242 100644
--- a/solr-8.1.1/licenses/janino-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/janino-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/janino-NOTICE.txt b/solr-8.3.1/licenses/janino-NOTICE.txt
index 203e2f920..203e2f920 100644
--- a/solr-8.1.1/licenses/janino-NOTICE.txt
+++ b/solr-8.3.1/licenses/janino-NOTICE.txt
diff --git a/solr-8.1.1/licenses/java-libpst-0.8.1.jar.sha1 b/solr-8.3.1/licenses/java-libpst-0.8.1.jar.sha1
index f88c97625..f88c97625 100644
--- a/solr-8.1.1/licenses/java-libpst-0.8.1.jar.sha1
+++ b/solr-8.3.1/licenses/java-libpst-0.8.1.jar.sha1
diff --git a/solr-8.1.1/licenses/java-libpst-LICENSE-ASL.txt b/solr-8.3.1/licenses/java-libpst-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/java-libpst-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/java-libpst-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/java-libpst-NOTICE.txt b/solr-8.3.1/licenses/java-libpst-NOTICE.txt
index 4868ad70c..4868ad70c 100644
--- a/solr-8.1.1/licenses/java-libpst-NOTICE.txt
+++ b/solr-8.3.1/licenses/java-libpst-NOTICE.txt
diff --git a/solr-8.1.1/licenses/javax.mail-1.5.1.jar.sha1 b/solr-8.3.1/licenses/javax.mail-1.5.1.jar.sha1
index e7a0a834c..e7a0a834c 100644
--- a/solr-8.1.1/licenses/javax.mail-1.5.1.jar.sha1
+++ b/solr-8.3.1/licenses/javax.mail-1.5.1.jar.sha1
diff --git a/solr-8.1.1/licenses/javax.mail-LICENSE-CDDL.txt b/solr-8.3.1/licenses/javax.mail-LICENSE-CDDL.txt
index a147fe44b..a147fe44b 100644
--- a/solr-8.1.1/licenses/javax.mail-LICENSE-CDDL.txt
+++ b/solr-8.3.1/licenses/javax.mail-LICENSE-CDDL.txt
diff --git a/solr-8.1.1/licenses/javax.servlet-api-3.1.0.jar.sha1 b/solr-8.3.1/licenses/javax.servlet-api-3.1.0.jar.sha1
index a269ca04f..a269ca04f 100644
--- a/solr-8.1.1/licenses/javax.servlet-api-3.1.0.jar.sha1
+++ b/solr-8.3.1/licenses/javax.servlet-api-3.1.0.jar.sha1
diff --git a/solr-8.1.1/licenses/javax.servlet-api-LICENSE-CDDL.txt b/solr-8.3.1/licenses/javax.servlet-api-LICENSE-CDDL.txt
index b75b04fcf..b75b04fcf 100644
--- a/solr-8.1.1/licenses/javax.servlet-api-LICENSE-CDDL.txt
+++ b/solr-8.3.1/licenses/javax.servlet-api-LICENSE-CDDL.txt
diff --git a/solr-8.1.1/licenses/javax.servlet-api-NOTICE.txt b/solr-8.3.1/licenses/javax.servlet-api-NOTICE.txt
index 6340ec9b7..6340ec9b7 100644
--- a/solr-8.1.1/licenses/javax.servlet-api-NOTICE.txt
+++ b/solr-8.3.1/licenses/javax.servlet-api-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jcl-over-slf4j-1.7.24.jar.sha1 b/solr-8.3.1/licenses/jcl-over-slf4j-1.7.24.jar.sha1
index b3f8afcdb..b3f8afcdb 100644
--- a/solr-8.1.1/licenses/jcl-over-slf4j-1.7.24.jar.sha1
+++ b/solr-8.3.1/licenses/jcl-over-slf4j-1.7.24.jar.sha1
diff --git a/solr-8.1.1/licenses/jcl-over-slf4j-LICENSE-MIT.txt b/solr-8.3.1/licenses/jcl-over-slf4j-LICENSE-MIT.txt
index f5ecafa00..f5ecafa00 100644
--- a/solr-8.1.1/licenses/jcl-over-slf4j-LICENSE-MIT.txt
+++ b/solr-8.3.1/licenses/jcl-over-slf4j-LICENSE-MIT.txt
diff --git a/solr-8.1.1/licenses/jcl-over-slf4j-NOTICE.txt b/solr-8.3.1/licenses/jcl-over-slf4j-NOTICE.txt
index cf438946a..cf438946a 100644
--- a/solr-8.1.1/licenses/jcl-over-slf4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/jcl-over-slf4j-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jdom2-2.0.6.jar.sha1 b/solr-8.3.1/licenses/jdom2-2.0.6.jar.sha1
index 5e10b2db3..5e10b2db3 100644
--- a/solr-8.1.1/licenses/jdom2-2.0.6.jar.sha1
+++ b/solr-8.3.1/licenses/jdom2-2.0.6.jar.sha1
diff --git a/solr-8.1.1/licenses/jdom2-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/jdom2-LICENSE-BSD_LIKE.txt
index 132ede665..132ede665 100644
--- a/solr-8.1.1/licenses/jdom2-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/jdom2-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/jdom2-NOTICE.txt b/solr-8.3.1/licenses/jdom2-NOTICE.txt
index 21680afc4..21680afc4 100644
--- a/solr-8.1.1/licenses/jdom2-NOTICE.txt
+++ b/solr-8.3.1/licenses/jdom2-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jempbox-1.8.16.jar.sha1 b/solr-8.3.1/licenses/jempbox-1.8.16.jar.sha1
index 9f6f793c4..9f6f793c4 100644
--- a/solr-8.1.1/licenses/jempbox-1.8.16.jar.sha1
+++ b/solr-8.3.1/licenses/jempbox-1.8.16.jar.sha1
diff --git a/solr-8.1.1/licenses/jempbox-LICENSE-ASL.txt b/solr-8.3.1/licenses/jempbox-LICENSE-ASL.txt
index acf7e6fcb..acf7e6fcb 100644
--- a/solr-8.1.1/licenses/jempbox-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jempbox-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jempbox-NOTICE.txt b/solr-8.3.1/licenses/jempbox-NOTICE.txt
index a8affe377..a8affe377 100644
--- a/solr-8.1.1/licenses/jempbox-NOTICE.txt
+++ b/solr-8.3.1/licenses/jempbox-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jersey-core-1.19.jar.sha1 b/solr-8.3.1/licenses/jersey-core-1.19.jar.sha1
index 31a92685d..31a92685d 100644
--- a/solr-8.1.1/licenses/jersey-core-1.19.jar.sha1
+++ b/solr-8.3.1/licenses/jersey-core-1.19.jar.sha1
diff --git a/solr-8.1.1/licenses/jersey-core-LICENSE-CDDL.txt b/solr-8.3.1/licenses/jersey-core-LICENSE-CDDL.txt
index 633102eb7..633102eb7 100644
--- a/solr-8.1.1/licenses/jersey-core-LICENSE-CDDL.txt
+++ b/solr-8.3.1/licenses/jersey-core-LICENSE-CDDL.txt
diff --git a/solr-8.1.1/licenses/jersey-server-1.19.jar.sha1 b/solr-8.3.1/licenses/jersey-server-1.19.jar.sha1
index 9c239ce43..9c239ce43 100644
--- a/solr-8.1.1/licenses/jersey-server-1.19.jar.sha1
+++ b/solr-8.3.1/licenses/jersey-server-1.19.jar.sha1
diff --git a/solr-8.1.1/licenses/jersey-server-LICENSE-CDDL.txt b/solr-8.3.1/licenses/jersey-server-LICENSE-CDDL.txt
index b73bb92d7..b73bb92d7 100644
--- a/solr-8.1.1/licenses/jersey-server-LICENSE-CDDL.txt
+++ b/solr-8.3.1/licenses/jersey-server-LICENSE-CDDL.txt
diff --git a/solr-8.1.1/licenses/jersey-servlet-1.19.jar.sha1 b/solr-8.3.1/licenses/jersey-servlet-1.19.jar.sha1
index b38f1fb42..b38f1fb42 100644
--- a/solr-8.1.1/licenses/jersey-servlet-1.19.jar.sha1
+++ b/solr-8.3.1/licenses/jersey-servlet-1.19.jar.sha1
diff --git a/solr-8.1.1/licenses/jersey-servlet-LICENSE-CDDL.txt b/solr-8.3.1/licenses/jersey-servlet-LICENSE-CDDL.txt
index b73bb92d7..b73bb92d7 100644
--- a/solr-8.1.1/licenses/jersey-servlet-LICENSE-CDDL.txt
+++ b/solr-8.3.1/licenses/jersey-servlet-LICENSE-CDDL.txt
diff --git a/solr-8.1.1/licenses/jetty-LICENSE-ASL.txt b/solr-8.3.1/licenses/jetty-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/jetty-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jetty-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jetty-NOTICE.txt b/solr-8.3.1/licenses/jetty-NOTICE.txt
index fcd254bee..fcd254bee 100644
--- a/solr-8.1.1/licenses/jetty-NOTICE.txt
+++ b/solr-8.3.1/licenses/jetty-NOTICE.txt
diff --git a/solr-8.3.1/licenses/jetty-alpn-client-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-alpn-client-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..b2fd01b2a
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-alpn-client-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+8c9283b8a04056a0fced23fc474e62aa39764c6b
diff --git a/solr-8.3.1/licenses/jetty-alpn-java-client-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-alpn-java-client-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..f2e0fc27b
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-alpn-java-client-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+37eff0bd068adca090e14a0fbd9de258a871f9d9
diff --git a/solr-8.3.1/licenses/jetty-alpn-java-server-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-alpn-java-server-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..860c21906
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-alpn-java-server-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+7e7f62c2c03b74e59211eeeba0ddc067ad422ff7
diff --git a/solr-8.3.1/licenses/jetty-alpn-server-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-alpn-server-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..af581055e
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-alpn-server-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+5dd67dacaf1eed80ab95493da840dab35c22ce9c
diff --git a/solr-8.3.1/licenses/jetty-client-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-client-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..7b4cb6285
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-client-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+4386c1f243042e0f78f2e4c3c6cd239967410d6e
diff --git a/solr-8.3.1/licenses/jetty-continuation-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-continuation-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..d32802987
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-continuation-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+4acddfa41f45790e43fe4be257c3c4bcf6b846ff
diff --git a/solr-8.3.1/licenses/jetty-deploy-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-deploy-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..6bf5df312
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-deploy-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+8b350466ff1fcb7030a7abc152eed458e086fac2
diff --git a/solr-8.3.1/licenses/jetty-http-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-http-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..76f1249a5
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-http-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+b59ff8ecb0cf5d6234958f2404eabf0b72464e14
diff --git a/solr-8.3.1/licenses/jetty-io-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-io-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..5af4939f6
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-io-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+7eb9a6be62d84e1691e5fdc99223e632485619a8
diff --git a/solr-8.3.1/licenses/jetty-jmx-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-jmx-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..960d08a24
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-jmx-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+8dc81acdc4d3085c0b5f3c80b9a78cc9cb48bc4e
diff --git a/solr-8.3.1/licenses/jetty-rewrite-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-rewrite-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..76f5e9e36
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-rewrite-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+9b830886bd6098c613ed08d99574bbf300519506
diff --git a/solr-8.3.1/licenses/jetty-security-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-security-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..c873d9a29
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-security-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+bfe96e1e78719bdd446e063c3f45c132010237ce
diff --git a/solr-8.3.1/licenses/jetty-server-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-server-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..cbfdf11ae
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-server-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+55786f6e6649bd49425a7da1ac72cd85b8dd4bef
diff --git a/solr-8.3.1/licenses/jetty-servlet-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-servlet-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..c36dab5c7
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-servlet-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+89e25610b3199fdf34a831c1b306f7e765928959
diff --git a/solr-8.3.1/licenses/jetty-servlets-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-servlets-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..c17d5463a
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-servlets-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+b290c176abe2cd9274b9f794bf74497c4759359d
diff --git a/solr-8.3.1/licenses/jetty-util-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-util-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..0a2b5ade4
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-util-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+2fd3cd40279280e8c56241f753d2c52d8d446d19
diff --git a/solr-8.3.1/licenses/jetty-webapp-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-webapp-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..60d1c20b0
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-webapp-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+945fc0c0fa69504c194e32c5330afa1df0be9574
diff --git a/solr-8.3.1/licenses/jetty-xml-9.4.19.v20190610.jar.sha1 b/solr-8.3.1/licenses/jetty-xml-9.4.19.v20190610.jar.sha1
new file mode 100644
index 000000000..bcfa26643
--- /dev/null
+++ b/solr-8.3.1/licenses/jetty-xml-9.4.19.v20190610.jar.sha1
@@ -0,0 +1 @@
+d25e67fbe0809cae777065b75b10ecfb5c1bd749
diff --git a/solr-8.1.1/licenses/jmatio-1.5.jar.sha1 b/solr-8.3.1/licenses/jmatio-1.5.jar.sha1
index 45ca675fb..45ca675fb 100644
--- a/solr-8.1.1/licenses/jmatio-1.5.jar.sha1
+++ b/solr-8.3.1/licenses/jmatio-1.5.jar.sha1
diff --git a/solr-8.1.1/licenses/jmatio-LICENSE-BSD.txt b/solr-8.3.1/licenses/jmatio-LICENSE-BSD.txt
index 753fa5ce9..753fa5ce9 100644
--- a/solr-8.1.1/licenses/jmatio-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/jmatio-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/jmatio-NOTICE.txt b/solr-8.3.1/licenses/jmatio-NOTICE.txt
index 4c5fce725..4c5fce725 100644
--- a/solr-8.1.1/licenses/jmatio-NOTICE.txt
+++ b/solr-8.3.1/licenses/jmatio-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jose4j-0.6.5.jar.sha1 b/solr-8.3.1/licenses/jose4j-0.6.5.jar.sha1
index b6fbefb36..b6fbefb36 100644
--- a/solr-8.1.1/licenses/jose4j-0.6.5.jar.sha1
+++ b/solr-8.3.1/licenses/jose4j-0.6.5.jar.sha1
diff --git a/solr-8.1.1/licenses/jose4j-LICENSE-ASL.txt b/solr-8.3.1/licenses/jose4j-LICENSE-ASL.txt
index ab3182e77..ab3182e77 100644
--- a/solr-8.1.1/licenses/jose4j-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jose4j-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jose4j-NOTICE.txt b/solr-8.3.1/licenses/jose4j-NOTICE.txt
index 455d1d0ca..455d1d0ca 100644
--- a/solr-8.1.1/licenses/jose4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/jose4j-NOTICE.txt
diff --git a/solr-8.1.1/licenses/json-path-2.4.0.jar.sha1 b/solr-8.3.1/licenses/json-path-2.4.0.jar.sha1
index 2edbec905..2edbec905 100644
--- a/solr-8.1.1/licenses/json-path-2.4.0.jar.sha1
+++ b/solr-8.3.1/licenses/json-path-2.4.0.jar.sha1
diff --git a/solr-8.1.1/licenses/json-path-LICENSE-ASL.txt b/solr-8.3.1/licenses/json-path-LICENSE-ASL.txt
index 9972f34b7..9972f34b7 100644
--- a/solr-8.1.1/licenses/json-path-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/json-path-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/slice-NOTICE.txt b/solr-8.3.1/licenses/json-path-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/slice-NOTICE.txt
+++ b/solr-8.3.1/licenses/json-path-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jsonic-1.2.7.jar.sha1 b/solr-8.3.1/licenses/jsonic-1.2.7.jar.sha1
index 720e411da..720e411da 100644
--- a/solr-8.1.1/licenses/jsonic-1.2.7.jar.sha1
+++ b/solr-8.3.1/licenses/jsonic-1.2.7.jar.sha1
diff --git a/solr-8.1.1/licenses/jsonic-LICENSE-ASL.txt b/solr-8.3.1/licenses/jsonic-LICENSE-ASL.txt
index b09cd7856..b09cd7856 100644
--- a/solr-8.1.1/licenses/jsonic-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/jsonic-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/jsonic-NOTICE.txt b/solr-8.3.1/licenses/jsonic-NOTICE.txt
index 6d1239b41..6d1239b41 100644
--- a/solr-8.1.1/licenses/jsonic-NOTICE.txt
+++ b/solr-8.3.1/licenses/jsonic-NOTICE.txt
diff --git a/solr-8.1.1/licenses/jsoup-1.11.3.jar.sha1 b/solr-8.3.1/licenses/jsoup-1.11.3.jar.sha1
index 1b814dcba..1b814dcba 100644
--- a/solr-8.1.1/licenses/jsoup-1.11.3.jar.sha1
+++ b/solr-8.3.1/licenses/jsoup-1.11.3.jar.sha1
diff --git a/solr-8.1.1/licenses/jsoup-LICENSE-MIT.txt b/solr-8.3.1/licenses/jsoup-LICENSE-MIT.txt
index ab9f00b35..ab9f00b35 100644
--- a/solr-8.1.1/licenses/jsoup-LICENSE-MIT.txt
+++ b/solr-8.3.1/licenses/jsoup-LICENSE-MIT.txt
diff --git a/solr-8.1.1/licenses/jul-to-slf4j-1.7.24.jar.sha1 b/solr-8.3.1/licenses/jul-to-slf4j-1.7.24.jar.sha1
index 38c351e4f..38c351e4f 100644
--- a/solr-8.1.1/licenses/jul-to-slf4j-1.7.24.jar.sha1
+++ b/solr-8.3.1/licenses/jul-to-slf4j-1.7.24.jar.sha1
diff --git a/solr-8.1.1/licenses/jul-to-slf4j-LICENSE-MIT.txt b/solr-8.3.1/licenses/jul-to-slf4j-LICENSE-MIT.txt
index f5ecafa00..f5ecafa00 100644
--- a/solr-8.1.1/licenses/jul-to-slf4j-LICENSE-MIT.txt
+++ b/solr-8.3.1/licenses/jul-to-slf4j-LICENSE-MIT.txt
diff --git a/solr-8.1.1/licenses/jul-to-slf4j-NOTICE.txt b/solr-8.3.1/licenses/jul-to-slf4j-NOTICE.txt
index cf438946a..cf438946a 100644
--- a/solr-8.1.1/licenses/jul-to-slf4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/jul-to-slf4j-NOTICE.txt
diff --git a/solr-8.1.1/licenses/junit-4.12.jar.sha1 b/solr-8.3.1/licenses/junit-4.12.jar.sha1
index d0dbc0c46..d0dbc0c46 100644
--- a/solr-8.1.1/licenses/junit-4.12.jar.sha1
+++ b/solr-8.3.1/licenses/junit-4.12.jar.sha1
diff --git a/solr-8.1.1/licenses/junit-LICENSE-CPL.txt b/solr-8.3.1/licenses/junit-LICENSE-CPL.txt
index 4efdc7b20..4efdc7b20 100644
--- a/solr-8.1.1/licenses/junit-LICENSE-CPL.txt
+++ b/solr-8.3.1/licenses/junit-LICENSE-CPL.txt
diff --git a/solr-8.1.1/licenses/junit-NOTICE.txt b/solr-8.3.1/licenses/junit-NOTICE.txt
index 0178e9a6a..0178e9a6a 100644
--- a/solr-8.1.1/licenses/junit-NOTICE.txt
+++ b/solr-8.3.1/licenses/junit-NOTICE.txt
diff --git a/solr-8.1.1/licenses/junit4-ant-2.7.2.jar.sha1 b/solr-8.3.1/licenses/junit4-ant-2.7.2.jar.sha1
index f51d140c9..f51d140c9 100644
--- a/solr-8.1.1/licenses/junit4-ant-2.7.2.jar.sha1
+++ b/solr-8.3.1/licenses/junit4-ant-2.7.2.jar.sha1
diff --git a/solr-8.1.1/licenses/junit4-ant-LICENSE-ASL.txt b/solr-8.3.1/licenses/junit4-ant-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/junit4-ant-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/junit4-ant-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/junit4-ant-NOTICE.txt b/solr-8.3.1/licenses/junit4-ant-NOTICE.txt
index 3c321aa25..3c321aa25 100644
--- a/solr-8.1.1/licenses/junit4-ant-NOTICE.txt
+++ b/solr-8.3.1/licenses/junit4-ant-NOTICE.txt
diff --git a/solr-8.1.1/licenses/juniversalchardet-1.0.3.jar.sha1 b/solr-8.3.1/licenses/juniversalchardet-1.0.3.jar.sha1
index 6b0695267..6b0695267 100644
--- a/solr-8.1.1/licenses/juniversalchardet-1.0.3.jar.sha1
+++ b/solr-8.3.1/licenses/juniversalchardet-1.0.3.jar.sha1
diff --git a/solr-8.1.1/licenses/juniversalchardet-LICENSE-MPL.txt b/solr-8.3.1/licenses/juniversalchardet-LICENSE-MPL.txt
index 06f965147..06f965147 100644
--- a/solr-8.1.1/licenses/juniversalchardet-LICENSE-MPL.txt
+++ b/solr-8.3.1/licenses/juniversalchardet-LICENSE-MPL.txt
diff --git a/solr-8.1.1/licenses/juniversalchardet-NOTICE.txt b/solr-8.3.1/licenses/juniversalchardet-NOTICE.txt
index 23b25da3a..23b25da3a 100644
--- a/solr-8.1.1/licenses/juniversalchardet-NOTICE.txt
+++ b/solr-8.3.1/licenses/juniversalchardet-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerb-admin-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerb-admin-1.0.1.jar.sha1
index 63581a733..63581a733 100644
--- a/solr-8.1.1/licenses/kerb-admin-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerb-admin-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerb-admin-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerb-admin-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerb-admin-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerb-admin-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerb-admin-NOTICE.txt b/solr-8.3.1/licenses/kerb-admin-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerb-admin-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerb-admin-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerb-client-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerb-client-1.0.1.jar.sha1
index db0772bfe..db0772bfe 100644
--- a/solr-8.1.1/licenses/kerb-client-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerb-client-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerb-client-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerb-client-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerb-client-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerb-client-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerb-client-NOTICE.txt b/solr-8.3.1/licenses/kerb-client-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerb-client-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerb-client-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerb-common-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerb-common-1.0.1.jar.sha1
index abd6fe487..abd6fe487 100644
--- a/solr-8.1.1/licenses/kerb-common-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerb-common-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerb-common-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerb-common-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerb-common-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerb-common-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerb-common-NOTICE.txt b/solr-8.3.1/licenses/kerb-common-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerb-common-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerb-common-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerb-core-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerb-core-1.0.1.jar.sha1
index f60c70b78..f60c70b78 100644
--- a/solr-8.1.1/licenses/kerb-core-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerb-core-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerb-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerb-core-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerb-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerb-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerb-core-NOTICE.txt b/solr-8.3.1/licenses/kerb-core-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerb-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerb-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerb-crypto-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerb-crypto-1.0.1.jar.sha1
index 82564c730..82564c730 100644
--- a/solr-8.1.1/licenses/kerb-crypto-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerb-crypto-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerb-crypto-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerb-crypto-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerb-crypto-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerb-crypto-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerb-crypto-NOTICE.txt b/solr-8.3.1/licenses/kerb-crypto-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerb-crypto-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerb-crypto-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerb-identity-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerb-identity-1.0.1.jar.sha1
index afd3a2247..afd3a2247 100644
--- a/solr-8.1.1/licenses/kerb-identity-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerb-identity-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerb-identity-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerb-identity-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerb-identity-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerb-identity-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerb-identity-NOTICE.txt b/solr-8.3.1/licenses/kerb-identity-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerb-identity-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerb-identity-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerb-server-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerb-server-1.0.1.jar.sha1
index 14c3a195a..14c3a195a 100644
--- a/solr-8.1.1/licenses/kerb-server-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerb-server-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerb-server-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerb-server-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerb-server-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerb-server-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerb-server-NOTICE.txt b/solr-8.3.1/licenses/kerb-server-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerb-server-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerb-server-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerb-simplekdc-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerb-simplekdc-1.0.1.jar.sha1
index 0cb16c274..0cb16c274 100644
--- a/solr-8.1.1/licenses/kerb-simplekdc-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerb-simplekdc-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerb-simplekdc-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerb-simplekdc-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerb-simplekdc-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerb-simplekdc-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerb-simplekdc-NOTICE.txt b/solr-8.3.1/licenses/kerb-simplekdc-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerb-simplekdc-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerb-simplekdc-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerb-util-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerb-util-1.0.1.jar.sha1
index f73a9360d..f73a9360d 100644
--- a/solr-8.1.1/licenses/kerb-util-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerb-util-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerb-util-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerb-util-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerb-util-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerb-util-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerb-util-NOTICE.txt b/solr-8.3.1/licenses/kerb-util-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerb-util-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerb-util-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerby-asn1-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerby-asn1-1.0.1.jar.sha1
index e8dc97f62..e8dc97f62 100644
--- a/solr-8.1.1/licenses/kerby-asn1-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerby-asn1-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerby-asn1-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerby-asn1-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerby-asn1-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerby-asn1-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerby-asn1-NOTICE.txt b/solr-8.3.1/licenses/kerby-asn1-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerby-asn1-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerby-asn1-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerby-config-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerby-config-1.0.1.jar.sha1
index f1670cf81..f1670cf81 100644
--- a/solr-8.1.1/licenses/kerby-config-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerby-config-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerby-config-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerby-config-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerby-config-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerby-config-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerby-config-NOTICE.txt b/solr-8.3.1/licenses/kerby-config-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerby-config-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerby-config-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerby-kdc-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerby-kdc-1.0.1.jar.sha1
index 5e5d939bd..5e5d939bd 100644
--- a/solr-8.1.1/licenses/kerby-kdc-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerby-kdc-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerby-kdc-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerby-kdc-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerby-kdc-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerby-kdc-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerby-kdc-NOTICE.txt b/solr-8.3.1/licenses/kerby-kdc-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerby-kdc-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerby-kdc-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerby-pkix-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerby-pkix-1.0.1.jar.sha1
index 8c51c75c9..8c51c75c9 100644
--- a/solr-8.1.1/licenses/kerby-pkix-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerby-pkix-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerby-pkix-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerby-pkix-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerby-pkix-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerby-pkix-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerby-pkix-NOTICE.txt b/solr-8.3.1/licenses/kerby-pkix-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerby-pkix-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerby-pkix-NOTICE.txt
diff --git a/solr-8.1.1/licenses/kerby-util-1.0.1.jar.sha1 b/solr-8.3.1/licenses/kerby-util-1.0.1.jar.sha1
index c2c526af8..c2c526af8 100644
--- a/solr-8.1.1/licenses/kerby-util-1.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/kerby-util-1.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/kerby-util-LICENSE-ASL.txt b/solr-8.3.1/licenses/kerby-util-LICENSE-ASL.txt
index 5c304d1a4..5c304d1a4 100644
--- a/solr-8.1.1/licenses/kerby-util-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/kerby-util-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/kerby-util-NOTICE.txt b/solr-8.3.1/licenses/kerby-util-NOTICE.txt
index 373b85deb..373b85deb 100644
--- a/solr-8.1.1/licenses/kerby-util-NOTICE.txt
+++ b/solr-8.3.1/licenses/kerby-util-NOTICE.txt
diff --git a/solr-8.1.1/licenses/langdetect-1.1-20120112.jar.sha1 b/solr-8.3.1/licenses/langdetect-1.1-20120112.jar.sha1
index d482d3704..d482d3704 100644
--- a/solr-8.1.1/licenses/langdetect-1.1-20120112.jar.sha1
+++ b/solr-8.3.1/licenses/langdetect-1.1-20120112.jar.sha1
diff --git a/solr-8.1.1/licenses/langdetect-LICENSE-ASL.txt b/solr-8.3.1/licenses/langdetect-LICENSE-ASL.txt
index b320a71d0..b320a71d0 100644
--- a/solr-8.1.1/licenses/langdetect-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/langdetect-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/langdetect-NOTICE.txt b/solr-8.3.1/licenses/langdetect-NOTICE.txt
index 86d095f11..86d095f11 100644
--- a/solr-8.1.1/licenses/langdetect-NOTICE.txt
+++ b/solr-8.3.1/licenses/langdetect-NOTICE.txt
diff --git a/solr-8.3.1/licenses/libthrift-0.12.0.jar.sha1 b/solr-8.3.1/licenses/libthrift-0.12.0.jar.sha1
new file mode 100644
index 000000000..1ce04fe45
--- /dev/null
+++ b/solr-8.3.1/licenses/libthrift-0.12.0.jar.sha1
@@ -0,0 +1 @@
+300bfbee03c7afa77301fb0946115e400e28ae04
diff --git a/solr-8.1.1/licenses/log4j-slf4j-LICENSE-ASL.txt b/solr-8.3.1/licenses/libthrift-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/log4j-slf4j-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/libthrift-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/commons-beanutils-NOTICE.txt b/solr-8.3.1/licenses/libthrift-NOTICE.txt
index c6c8ce997..37824e7fb 100644
--- a/solr-8.1.1/licenses/commons-beanutils-NOTICE.txt
+++ b/solr-8.3.1/licenses/libthrift-NOTICE.txt
@@ -1,5 +1,5 @@
-Apache Commons BeanUtils
-Copyright 2000-2018 The Apache Software Foundation
+Apache Thrift
+Copyright (C) 2006 - 2019, The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
diff --git a/solr-8.1.1/licenses/log4j-1.2-api-2.11.2.jar.sha1 b/solr-8.3.1/licenses/log4j-1.2-api-2.11.2.jar.sha1
index 4ad6f9676..4ad6f9676 100644
--- a/solr-8.1.1/licenses/log4j-1.2-api-2.11.2.jar.sha1
+++ b/solr-8.3.1/licenses/log4j-1.2-api-2.11.2.jar.sha1
diff --git a/solr-8.1.1/licenses/log4j-LICENSE-ASL.txt b/solr-8.3.1/licenses/log4j-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/log4j-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/log4j-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/log4j-NOTICE.txt b/solr-8.3.1/licenses/log4j-NOTICE.txt
index d69754231..d69754231 100644
--- a/solr-8.1.1/licenses/log4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/log4j-NOTICE.txt
diff --git a/solr-8.1.1/licenses/log4j-api-2.11.2.jar.sha1 b/solr-8.3.1/licenses/log4j-api-2.11.2.jar.sha1
index 0cdea100b..0cdea100b 100644
--- a/solr-8.1.1/licenses/log4j-api-2.11.2.jar.sha1
+++ b/solr-8.3.1/licenses/log4j-api-2.11.2.jar.sha1
diff --git a/solr-8.1.1/licenses/noggit-LICENSE-ASL.txt b/solr-8.3.1/licenses/log4j-api-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/noggit-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/log4j-api-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/log4j-api-NOTICE.txt b/solr-8.3.1/licenses/log4j-api-NOTICE.txt
index bd95322f2..bd95322f2 100644
--- a/solr-8.1.1/licenses/log4j-api-NOTICE.txt
+++ b/solr-8.3.1/licenses/log4j-api-NOTICE.txt
diff --git a/solr-8.1.1/licenses/log4j-core-2.11.2.jar.sha1 b/solr-8.3.1/licenses/log4j-core-2.11.2.jar.sha1
index ec2acae4d..ec2acae4d 100644
--- a/solr-8.1.1/licenses/log4j-core-2.11.2.jar.sha1
+++ b/solr-8.3.1/licenses/log4j-core-2.11.2.jar.sha1
diff --git a/solr-8.1.1/licenses/org.restlet-LICENSE-ASL.txt b/solr-8.3.1/licenses/log4j-core-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/org.restlet-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/log4j-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/log4j-core-NOTICE.txt b/solr-8.3.1/licenses/log4j-core-NOTICE.txt
index bd95322f2..bd95322f2 100644
--- a/solr-8.1.1/licenses/log4j-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/log4j-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/org.restlet.ext.servlet-LICENSE-ASL.txt b/solr-8.3.1/licenses/log4j-slf4j-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/org.restlet.ext.servlet-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/log4j-slf4j-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/log4j-slf4j-NOTICE.txt b/solr-8.3.1/licenses/log4j-slf4j-NOTICE.txt
index bd95322f2..bd95322f2 100644
--- a/solr-8.1.1/licenses/log4j-slf4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/log4j-slf4j-NOTICE.txt
diff --git a/solr-8.1.1/licenses/log4j-slf4j-impl-2.11.2.jar.sha1 b/solr-8.3.1/licenses/log4j-slf4j-impl-2.11.2.jar.sha1
index 69bca4b80..69bca4b80 100644
--- a/solr-8.1.1/licenses/log4j-slf4j-impl-2.11.2.jar.sha1
+++ b/solr-8.3.1/licenses/log4j-slf4j-impl-2.11.2.jar.sha1
diff --git a/solr-8.1.1/licenses/log4j-web-2.11.2.jar.sha1 b/solr-8.3.1/licenses/log4j-web-2.11.2.jar.sha1
index cc4476efe..cc4476efe 100644
--- a/solr-8.1.1/licenses/log4j-web-2.11.2.jar.sha1
+++ b/solr-8.3.1/licenses/log4j-web-2.11.2.jar.sha1
diff --git a/solr-8.1.1/licenses/log4j-web-LICENSE-ASL.txt b/solr-8.3.1/licenses/log4j-web-LICENSE-ASL.txt
index 6279e5206..6279e5206 100644
--- a/solr-8.1.1/licenses/log4j-web-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/log4j-web-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/log4j-web-NOTICE.txt b/solr-8.3.1/licenses/log4j-web-NOTICE.txt
index bd95322f2..bd95322f2 100644
--- a/solr-8.1.1/licenses/log4j-web-NOTICE.txt
+++ b/solr-8.3.1/licenses/log4j-web-NOTICE.txt
diff --git a/solr-8.1.1/licenses/metadata-extractor-2.11.0.jar.sha1 b/solr-8.3.1/licenses/metadata-extractor-2.11.0.jar.sha1
index 39a443b58..39a443b58 100644
--- a/solr-8.1.1/licenses/metadata-extractor-2.11.0.jar.sha1
+++ b/solr-8.3.1/licenses/metadata-extractor-2.11.0.jar.sha1
diff --git a/solr-8.1.1/licenses/metadata-extractor-LICENSE-PD.txt b/solr-8.3.1/licenses/metadata-extractor-LICENSE-PD.txt
index 71c760910..71c760910 100644
--- a/solr-8.1.1/licenses/metadata-extractor-LICENSE-PD.txt
+++ b/solr-8.3.1/licenses/metadata-extractor-LICENSE-PD.txt
diff --git a/solr-8.1.1/licenses/metrics-core-4.0.5.jar.sha1 b/solr-8.3.1/licenses/metrics-core-4.0.5.jar.sha1
index f5e12e83a..f5e12e83a 100644
--- a/solr-8.1.1/licenses/metrics-core-4.0.5.jar.sha1
+++ b/solr-8.3.1/licenses/metrics-core-4.0.5.jar.sha1
diff --git a/solr-8.1.1/licenses/metrics-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/metrics-core-LICENSE-ASL.txt
index e4ba40426..e4ba40426 100644
--- a/solr-8.1.1/licenses/metrics-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/metrics-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/metrics-core-NOTICE.txt b/solr-8.3.1/licenses/metrics-core-NOTICE.txt
index 4fe83de38..4fe83de38 100644
--- a/solr-8.1.1/licenses/metrics-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/metrics-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/metrics-graphite-4.0.5.jar.sha1 b/solr-8.3.1/licenses/metrics-graphite-4.0.5.jar.sha1
index 2aa9abb95..2aa9abb95 100644
--- a/solr-8.1.1/licenses/metrics-graphite-4.0.5.jar.sha1
+++ b/solr-8.3.1/licenses/metrics-graphite-4.0.5.jar.sha1
diff --git a/solr-8.1.1/licenses/metrics-graphite-LICENSE-ASL.txt b/solr-8.3.1/licenses/metrics-graphite-LICENSE-ASL.txt
index ccb320c7d..ccb320c7d 100644
--- a/solr-8.1.1/licenses/metrics-graphite-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/metrics-graphite-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/metrics-graphite-NOTICE.txt b/solr-8.3.1/licenses/metrics-graphite-NOTICE.txt
index b4c629847..b4c629847 100644
--- a/solr-8.1.1/licenses/metrics-graphite-NOTICE.txt
+++ b/solr-8.3.1/licenses/metrics-graphite-NOTICE.txt
diff --git a/solr-8.1.1/licenses/metrics-jetty-LICENSE-ASL.txt b/solr-8.3.1/licenses/metrics-jetty-LICENSE-ASL.txt
index ccb320c7d..ccb320c7d 100644
--- a/solr-8.1.1/licenses/metrics-jetty-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/metrics-jetty-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/metrics-jetty-NOTICE.txt b/solr-8.3.1/licenses/metrics-jetty-NOTICE.txt
index b4c629847..b4c629847 100644
--- a/solr-8.1.1/licenses/metrics-jetty-NOTICE.txt
+++ b/solr-8.3.1/licenses/metrics-jetty-NOTICE.txt
diff --git a/solr-8.1.1/licenses/metrics-jetty9-4.0.5.jar.sha1 b/solr-8.3.1/licenses/metrics-jetty9-4.0.5.jar.sha1
index 228b179fa..228b179fa 100644
--- a/solr-8.1.1/licenses/metrics-jetty9-4.0.5.jar.sha1
+++ b/solr-8.3.1/licenses/metrics-jetty9-4.0.5.jar.sha1
diff --git a/solr-8.1.1/licenses/metrics-jmx-4.0.5.jar.sha1 b/solr-8.3.1/licenses/metrics-jmx-4.0.5.jar.sha1
index b70a07de0..b70a07de0 100644
--- a/solr-8.1.1/licenses/metrics-jmx-4.0.5.jar.sha1
+++ b/solr-8.3.1/licenses/metrics-jmx-4.0.5.jar.sha1
diff --git a/solr-8.1.1/licenses/metrics-jmx-LICENSE-ASL.txt b/solr-8.3.1/licenses/metrics-jmx-LICENSE-ASL.txt
index ccb320c7d..ccb320c7d 100644
--- a/solr-8.1.1/licenses/metrics-jmx-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/metrics-jmx-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/metrics-jmx-NOTICE.txt b/solr-8.3.1/licenses/metrics-jmx-NOTICE.txt
index b4c629847..b4c629847 100644
--- a/solr-8.1.1/licenses/metrics-jmx-NOTICE.txt
+++ b/solr-8.3.1/licenses/metrics-jmx-NOTICE.txt
diff --git a/solr-8.1.1/licenses/metrics-json-LICENSE-ASL.txt b/solr-8.3.1/licenses/metrics-json-LICENSE-ASL.txt
index ccb320c7d..ccb320c7d 100644
--- a/solr-8.1.1/licenses/metrics-json-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/metrics-json-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/metrics-json-NOTICE.txt b/solr-8.3.1/licenses/metrics-json-NOTICE.txt
index b4c629847..b4c629847 100644
--- a/solr-8.1.1/licenses/metrics-json-NOTICE.txt
+++ b/solr-8.3.1/licenses/metrics-json-NOTICE.txt
diff --git a/solr-8.1.1/licenses/metrics-jvm-4.0.5.jar.sha1 b/solr-8.3.1/licenses/metrics-jvm-4.0.5.jar.sha1
index 176a65f9f..176a65f9f 100644
--- a/solr-8.1.1/licenses/metrics-jvm-4.0.5.jar.sha1
+++ b/solr-8.3.1/licenses/metrics-jvm-4.0.5.jar.sha1
diff --git a/solr-8.1.1/licenses/metrics-jvm-LICENSE-ASL.txt b/solr-8.3.1/licenses/metrics-jvm-LICENSE-ASL.txt
index ccb320c7d..ccb320c7d 100644
--- a/solr-8.1.1/licenses/metrics-jvm-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/metrics-jvm-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/metrics-jvm-NOTICE.txt b/solr-8.3.1/licenses/metrics-jvm-NOTICE.txt
index b4c629847..b4c629847 100644
--- a/solr-8.1.1/licenses/metrics-jvm-NOTICE.txt
+++ b/solr-8.3.1/licenses/metrics-jvm-NOTICE.txt
diff --git a/solr-8.1.1/licenses/metrics-servlets-LICENSE-ASL.txt b/solr-8.3.1/licenses/metrics-servlets-LICENSE-ASL.txt
index ccb320c7d..ccb320c7d 100644
--- a/solr-8.1.1/licenses/metrics-servlets-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/metrics-servlets-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/metrics-servlets-NOTICE.txt b/solr-8.3.1/licenses/metrics-servlets-NOTICE.txt
index b4c629847..b4c629847 100644
--- a/solr-8.1.1/licenses/metrics-servlets-NOTICE.txt
+++ b/solr-8.3.1/licenses/metrics-servlets-NOTICE.txt
diff --git a/solr-8.1.1/licenses/mina-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/mina-core-LICENSE-ASL.txt
index 3615005dc..3615005dc 100644
--- a/solr-8.1.1/licenses/mina-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/mina-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/mina-core-NOTICE.txt b/solr-8.3.1/licenses/mina-core-NOTICE.txt
index 9b8ad59ea..9b8ad59ea 100644
--- a/solr-8.1.1/licenses/mina-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/mina-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/mockito-core-2.23.4.jar.sha1 b/solr-8.3.1/licenses/mockito-core-2.23.4.jar.sha1
index 725998b2f..725998b2f 100644
--- a/solr-8.1.1/licenses/mockito-core-2.23.4.jar.sha1
+++ b/solr-8.3.1/licenses/mockito-core-2.23.4.jar.sha1
diff --git a/solr-8.1.1/licenses/mockito-core-LICENSE-MIT.txt b/solr-8.3.1/licenses/mockito-core-LICENSE-MIT.txt
index 5a311f7c5..5a311f7c5 100644
--- a/solr-8.1.1/licenses/mockito-core-LICENSE-MIT.txt
+++ b/solr-8.3.1/licenses/mockito-core-LICENSE-MIT.txt
diff --git a/solr-8.1.1/licenses/morfologik-fsa-2.1.5.jar.sha1 b/solr-8.3.1/licenses/morfologik-fsa-2.1.5.jar.sha1
index 638ac0722..638ac0722 100644
--- a/solr-8.1.1/licenses/morfologik-fsa-2.1.5.jar.sha1
+++ b/solr-8.3.1/licenses/morfologik-fsa-2.1.5.jar.sha1
diff --git a/solr-8.1.1/licenses/morfologik-fsa-LICENSE-BSD.txt b/solr-8.3.1/licenses/morfologik-fsa-LICENSE-BSD.txt
index 5dc83a738..5dc83a738 100644
--- a/solr-8.1.1/licenses/morfologik-fsa-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/morfologik-fsa-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/morfologik-fsa-NOTICE.txt b/solr-8.3.1/licenses/morfologik-fsa-NOTICE.txt
index 18ba2f3e3..18ba2f3e3 100644
--- a/solr-8.1.1/licenses/morfologik-fsa-NOTICE.txt
+++ b/solr-8.3.1/licenses/morfologik-fsa-NOTICE.txt
diff --git a/solr-8.1.1/licenses/morfologik-polish-2.1.5.jar.sha1 b/solr-8.3.1/licenses/morfologik-polish-2.1.5.jar.sha1
index cb29f244a..cb29f244a 100644
--- a/solr-8.1.1/licenses/morfologik-polish-2.1.5.jar.sha1
+++ b/solr-8.3.1/licenses/morfologik-polish-2.1.5.jar.sha1
diff --git a/solr-8.1.1/licenses/morfologik-polish-LICENSE-BSD.txt b/solr-8.3.1/licenses/morfologik-polish-LICENSE-BSD.txt
index b8152d29e..b8152d29e 100644
--- a/solr-8.1.1/licenses/morfologik-polish-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/morfologik-polish-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/morfologik-polish-NOTICE.txt b/solr-8.3.1/licenses/morfologik-polish-NOTICE.txt
index f200970f3..f200970f3 100644
--- a/solr-8.1.1/licenses/morfologik-polish-NOTICE.txt
+++ b/solr-8.3.1/licenses/morfologik-polish-NOTICE.txt
diff --git a/solr-8.1.1/licenses/morfologik-stemming-2.1.5.jar.sha1 b/solr-8.3.1/licenses/morfologik-stemming-2.1.5.jar.sha1
index 56e3d9708..56e3d9708 100644
--- a/solr-8.1.1/licenses/morfologik-stemming-2.1.5.jar.sha1
+++ b/solr-8.3.1/licenses/morfologik-stemming-2.1.5.jar.sha1
diff --git a/solr-8.1.1/licenses/morfologik-stemming-LICENSE-BSD.txt b/solr-8.3.1/licenses/morfologik-stemming-LICENSE-BSD.txt
index 5dc83a738..5dc83a738 100644
--- a/solr-8.1.1/licenses/morfologik-stemming-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/morfologik-stemming-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/morfologik-stemming-NOTICE.txt b/solr-8.3.1/licenses/morfologik-stemming-NOTICE.txt
index 18ba2f3e3..18ba2f3e3 100644
--- a/solr-8.1.1/licenses/morfologik-stemming-NOTICE.txt
+++ b/solr-8.3.1/licenses/morfologik-stemming-NOTICE.txt
diff --git a/solr-8.3.1/licenses/morfologik-ukrainian-search-3.9.0.jar.sha1 b/solr-8.3.1/licenses/morfologik-ukrainian-search-3.9.0.jar.sha1
new file mode 100644
index 000000000..2aae96a12
--- /dev/null
+++ b/solr-8.3.1/licenses/morfologik-ukrainian-search-3.9.0.jar.sha1
@@ -0,0 +1 @@
+9790241f6d0d6cefd48e0d2532bd59097fb0340a
diff --git a/solr-8.1.1/licenses/commons-beanutils-LICENSE-ASL.txt b/solr-8.3.1/licenses/morfologik-ukrainian-search-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/commons-beanutils-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/morfologik-ukrainian-search-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/morfologik-ukrainian-search-NOTICE.txt b/solr-8.3.1/licenses/morfologik-ukrainian-search-NOTICE.txt
new file mode 100644
index 000000000..df3fa1d55
--- /dev/null
+++ b/solr-8.3.1/licenses/morfologik-ukrainian-search-NOTICE.txt
@@ -0,0 +1,6 @@
+morfologik-ukrainian-search is a POS tag dictionary in morfologik format adjusted for searching.
+It's part of dict_uk project (https://github.com/brown-uk/dict_uk)
+
+Note: to better fit into full-text search model this dictionary has all word forms in lower case but keeps lemmas for proper nouns in upper case.
+
+Licensed under Apache License 2.0.
diff --git a/solr-8.3.1/licenses/netty-all-4.1.29.Final.jar.sha1 b/solr-8.3.1/licenses/netty-all-4.1.29.Final.jar.sha1
new file mode 100644
index 000000000..596bbafd6
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-all-4.1.29.Final.jar.sha1
@@ -0,0 +1 @@
+efce189397bfce0a561b25512696de8d241070b5
diff --git a/solr-8.1.1/licenses/netty-all-LICENSE-ASL.txt b/solr-8.3.1/licenses/netty-all-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/netty-all-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/netty-all-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/netty-all-NOTICE.txt b/solr-8.3.1/licenses/netty-all-NOTICE.txt
index f97366367..f97366367 100644
--- a/solr-8.1.1/licenses/netty-all-NOTICE.txt
+++ b/solr-8.3.1/licenses/netty-all-NOTICE.txt
diff --git a/solr-8.3.1/licenses/netty-buffer-4.1.29.Final.jar.sha1 b/solr-8.3.1/licenses/netty-buffer-4.1.29.Final.jar.sha1
new file mode 100644
index 000000000..f8bc6b051
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-buffer-4.1.29.Final.jar.sha1
@@ -0,0 +1 @@
+c3809f72e4b535b343b7dfa3c0c8210dad2fa5ea
diff --git a/solr-8.1.1/licenses/objenesis-LICENSE-ASL.txt b/solr-8.3.1/licenses/netty-buffer-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/objenesis-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/netty-buffer-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/netty-buffer-NOTICE.txt b/solr-8.3.1/licenses/netty-buffer-NOTICE.txt
new file mode 100644
index 000000000..f97366367
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-buffer-NOTICE.txt
@@ -0,0 +1,223 @@
+
+ The Netty Project
+ =================
+
+Please visit the Netty web site for more information:
+
+ * http://netty.io/
+
+Copyright 2014 The Netty Project
+
+The Netty Project licenses this file to you under the Apache License,
+version 2.0 (the "License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+
+Also, please refer to each LICENSE.<component>.txt file, which is located in
+the 'license' directory of the distribution file, for the license terms of the
+components that this product depends on.
+
+-------------------------------------------------------------------------------
+This product contains the extensions to Java Collections Framework which has
+been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+ * LICENSE:
+ * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+ * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+ * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+This product contains a modified version of Robert Harder's Public Domain
+Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+ * http://iharder.sourceforge.net/current/java/base64/
+
+This product contains a modified portion of 'Webbit', an event based
+WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+ * https://github.com/joewalnes/webbit
+
+This product contains a modified portion of 'SLF4J', a simple logging
+facade for Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.slf4j.org/
+
+This product contains a modified portion of 'Apache Harmony', an open source
+Java SE, which can be obtained at:
+
+ * NOTICE:
+ * license/NOTICE.harmony.txt
+ * LICENSE:
+ * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://archive.apache.org/dist/harmony/
+
+This product contains a modified portion of 'jbzip2', a Java bzip2 compression
+and decompression library written by Matthew J. Francis. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jbzip2/
+
+This product contains a modified portion of 'libdivsufsort', a C API library to construct
+the suffix array and the Burrows-Wheeler transformed string for any input string of
+a constant-size alphabet written by Yuta Mori. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+ * https://github.com/y-256/libdivsufsort
+
+This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
+ which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+ * https://github.com/JCTools/JCTools
+
+This product optionally depends on 'JZlib', a re-implementation of zlib in
+pure Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+ * http://www.jcraft.com/jzlib/
+
+This product optionally depends on 'Compress-LZF', a Java library for encoding and
+decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/ning/compress
+
+This product optionally depends on 'lz4', a LZ4 Java compression
+and decompression library written by Adrien Grand. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jpountz/lz4-java
+
+This product optionally depends on 'lzma-java', a LZMA Java compression
+and decompression library, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lzma-java.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jponge/lzma-java
+
+This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+and decompression library written by William Kinney. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jfastlz.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jfastlz/
+
+This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+interchange format, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.protobuf.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/protobuf
+
+This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
+a temporary self-signed X.509 certificate when the JVM does not provide the
+equivalent functionality. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.bouncycastle.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.bouncycastle.org/
+
+This product optionally depends on 'Snappy', a compression library produced
+by Google Inc, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.snappy.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/snappy
+
+This product optionally depends on 'JBoss Marshalling', an alternative Java
+serialization API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
+ * HOMEPAGE:
+ * http://www.jboss.org/jbossmarshalling
+
+This product optionally depends on 'Caliper', Google's micro-
+benchmarking framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.caliper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/google/caliper
+
+This product optionally depends on 'Apache Commons Logging', a logging
+framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-logging.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://commons.apache.org/logging/
+
+This product optionally depends on 'Apache Log4J', a logging framework, which
+can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.log4j.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://logging.apache.org/log4j/
+
+This product optionally depends on 'Aalto XML', an ultra-high performance
+non-blocking XML processor, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.aalto-xml.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://wiki.fasterxml.com/AaltoHome
+
+This product contains a modified version of 'HPACK', a Java implementation of
+the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.hpack.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/twitter/hpack
+
+This product contains a modified portion of 'Apache Commons Lang', a Java library
+provides utilities for the java.lang API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-lang.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://commons.apache.org/proper/commons-lang/
+
+
+This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.
+
+ * LICENSE:
+ * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/takari/maven-wrapper
diff --git a/solr-8.3.1/licenses/netty-codec-4.1.29.Final.jar.sha1 b/solr-8.3.1/licenses/netty-codec-4.1.29.Final.jar.sha1
new file mode 100644
index 000000000..cf3be3554
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-codec-4.1.29.Final.jar.sha1
@@ -0,0 +1 @@
+1651bc2e279216773c234cafe402d68d2a5adc90
diff --git a/solr-8.1.1/licenses/opennlp-tools-LICENSE-ASL.txt b/solr-8.3.1/licenses/netty-codec-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/opennlp-tools-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/netty-codec-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/netty-codec-NOTICE.txt b/solr-8.3.1/licenses/netty-codec-NOTICE.txt
new file mode 100644
index 000000000..f97366367
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-codec-NOTICE.txt
@@ -0,0 +1,223 @@
+
+ The Netty Project
+ =================
+
+Please visit the Netty web site for more information:
+
+ * http://netty.io/
+
+Copyright 2014 The Netty Project
+
+The Netty Project licenses this file to you under the Apache License,
+version 2.0 (the "License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+
+Also, please refer to each LICENSE.<component>.txt file, which is located in
+the 'license' directory of the distribution file, for the license terms of the
+components that this product depends on.
+
+-------------------------------------------------------------------------------
+This product contains the extensions to Java Collections Framework which has
+been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+ * LICENSE:
+ * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+ * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+ * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+This product contains a modified version of Robert Harder's Public Domain
+Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+ * http://iharder.sourceforge.net/current/java/base64/
+
+This product contains a modified portion of 'Webbit', an event based
+WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+ * https://github.com/joewalnes/webbit
+
+This product contains a modified portion of 'SLF4J', a simple logging
+facade for Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.slf4j.org/
+
+This product contains a modified portion of 'Apache Harmony', an open source
+Java SE, which can be obtained at:
+
+ * NOTICE:
+ * license/NOTICE.harmony.txt
+ * LICENSE:
+ * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://archive.apache.org/dist/harmony/
+
+This product contains a modified portion of 'jbzip2', a Java bzip2 compression
+and decompression library written by Matthew J. Francis. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jbzip2/
+
+This product contains a modified portion of 'libdivsufsort', a C API library to construct
+the suffix array and the Burrows-Wheeler transformed string for any input string of
+a constant-size alphabet written by Yuta Mori. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+ * https://github.com/y-256/libdivsufsort
+
+This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
+ which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+ * https://github.com/JCTools/JCTools
+
+This product optionally depends on 'JZlib', a re-implementation of zlib in
+pure Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+ * http://www.jcraft.com/jzlib/
+
+This product optionally depends on 'Compress-LZF', a Java library for encoding and
+decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/ning/compress
+
+This product optionally depends on 'lz4', a LZ4 Java compression
+and decompression library written by Adrien Grand. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jpountz/lz4-java
+
+This product optionally depends on 'lzma-java', a LZMA Java compression
+and decompression library, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lzma-java.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jponge/lzma-java
+
+This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+and decompression library written by William Kinney. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jfastlz.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jfastlz/
+
+This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+interchange format, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.protobuf.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/protobuf
+
+This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
+a temporary self-signed X.509 certificate when the JVM does not provide the
+equivalent functionality. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.bouncycastle.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.bouncycastle.org/
+
+This product optionally depends on 'Snappy', a compression library produced
+by Google Inc, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.snappy.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/snappy
+
+This product optionally depends on 'JBoss Marshalling', an alternative Java
+serialization API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
+ * HOMEPAGE:
+ * http://www.jboss.org/jbossmarshalling
+
+This product optionally depends on 'Caliper', Google's micro-
+benchmarking framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.caliper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/google/caliper
+
+This product optionally depends on 'Apache Commons Logging', a logging
+framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-logging.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://commons.apache.org/logging/
+
+This product optionally depends on 'Apache Log4J', a logging framework, which
+can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.log4j.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://logging.apache.org/log4j/
+
+This product optionally depends on 'Aalto XML', an ultra-high performance
+non-blocking XML processor, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.aalto-xml.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://wiki.fasterxml.com/AaltoHome
+
+This product contains a modified version of 'HPACK', a Java implementation of
+the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.hpack.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/twitter/hpack
+
+This product contains a modified portion of 'Apache Commons Lang', a Java library
+provides utilities for the java.lang API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-lang.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://commons.apache.org/proper/commons-lang/
+
+
+This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.
+
+ * LICENSE:
+ * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/takari/maven-wrapper
diff --git a/solr-8.3.1/licenses/netty-common-4.1.29.Final.jar.sha1 b/solr-8.3.1/licenses/netty-common-4.1.29.Final.jar.sha1
new file mode 100644
index 000000000..af74679e3
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-common-4.1.29.Final.jar.sha1
@@ -0,0 +1 @@
+a5d6a735ed07d8f197daa48db7f097cfc971ee5e
diff --git a/solr-8.1.1/licenses/presto-parser-LICENSE-ASL.txt b/solr-8.3.1/licenses/netty-common-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/presto-parser-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/netty-common-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/netty-common-NOTICE.txt b/solr-8.3.1/licenses/netty-common-NOTICE.txt
new file mode 100644
index 000000000..f97366367
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-common-NOTICE.txt
@@ -0,0 +1,223 @@
+
+ The Netty Project
+ =================
+
+Please visit the Netty web site for more information:
+
+ * http://netty.io/
+
+Copyright 2014 The Netty Project
+
+The Netty Project licenses this file to you under the Apache License,
+version 2.0 (the "License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+
+Also, please refer to each LICENSE.<component>.txt file, which is located in
+the 'license' directory of the distribution file, for the license terms of the
+components that this product depends on.
+
+-------------------------------------------------------------------------------
+This product contains the extensions to Java Collections Framework which has
+been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+ * LICENSE:
+ * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+ * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+ * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+This product contains a modified version of Robert Harder's Public Domain
+Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+ * http://iharder.sourceforge.net/current/java/base64/
+
+This product contains a modified portion of 'Webbit', an event based
+WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+ * https://github.com/joewalnes/webbit
+
+This product contains a modified portion of 'SLF4J', a simple logging
+facade for Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.slf4j.org/
+
+This product contains a modified portion of 'Apache Harmony', an open source
+Java SE, which can be obtained at:
+
+ * NOTICE:
+ * license/NOTICE.harmony.txt
+ * LICENSE:
+ * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://archive.apache.org/dist/harmony/
+
+This product contains a modified portion of 'jbzip2', a Java bzip2 compression
+and decompression library written by Matthew J. Francis. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jbzip2/
+
+This product contains a modified portion of 'libdivsufsort', a C API library to construct
+the suffix array and the Burrows-Wheeler transformed string for any input string of
+a constant-size alphabet written by Yuta Mori. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+ * https://github.com/y-256/libdivsufsort
+
+This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
+ which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+ * https://github.com/JCTools/JCTools
+
+This product optionally depends on 'JZlib', a re-implementation of zlib in
+pure Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+ * http://www.jcraft.com/jzlib/
+
+This product optionally depends on 'Compress-LZF', a Java library for encoding and
+decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/ning/compress
+
+This product optionally depends on 'lz4', a LZ4 Java compression
+and decompression library written by Adrien Grand. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jpountz/lz4-java
+
+This product optionally depends on 'lzma-java', a LZMA Java compression
+and decompression library, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lzma-java.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jponge/lzma-java
+
+This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+and decompression library written by William Kinney. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jfastlz.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jfastlz/
+
+This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+interchange format, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.protobuf.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/protobuf
+
+This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
+a temporary self-signed X.509 certificate when the JVM does not provide the
+equivalent functionality. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.bouncycastle.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.bouncycastle.org/
+
+This product optionally depends on 'Snappy', a compression library produced
+by Google Inc, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.snappy.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/snappy
+
+This product optionally depends on 'JBoss Marshalling', an alternative Java
+serialization API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
+ * HOMEPAGE:
+ * http://www.jboss.org/jbossmarshalling
+
+This product optionally depends on 'Caliper', Google's micro-
+benchmarking framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.caliper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/google/caliper
+
+This product optionally depends on 'Apache Commons Logging', a logging
+framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-logging.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://commons.apache.org/logging/
+
+This product optionally depends on 'Apache Log4J', a logging framework, which
+can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.log4j.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://logging.apache.org/log4j/
+
+This product optionally depends on 'Aalto XML', an ultra-high performance
+non-blocking XML processor, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.aalto-xml.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://wiki.fasterxml.com/AaltoHome
+
+This product contains a modified version of 'HPACK', a Java implementation of
+the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.hpack.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/twitter/hpack
+
+This product contains a modified portion of 'Apache Commons Lang', a Java library
+provides utilities for the java.lang API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-lang.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://commons.apache.org/proper/commons-lang/
+
+
+This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.
+
+ * LICENSE:
+ * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/takari/maven-wrapper
diff --git a/solr-8.3.1/licenses/netty-handler-4.1.29.Final.jar.sha1 b/solr-8.3.1/licenses/netty-handler-4.1.29.Final.jar.sha1
new file mode 100644
index 000000000..643a697e9
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-handler-4.1.29.Final.jar.sha1
@@ -0,0 +1 @@
+1acf1d94799296a2517533ec75ce7e155e9c4ea7
diff --git a/solr-8.1.1/licenses/randomizedtesting-runner-LICENSE-ASL.txt b/solr-8.3.1/licenses/netty-handler-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/randomizedtesting-runner-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/netty-handler-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/netty-handler-NOTICE.txt b/solr-8.3.1/licenses/netty-handler-NOTICE.txt
new file mode 100644
index 000000000..f97366367
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-handler-NOTICE.txt
@@ -0,0 +1,223 @@
+
+ The Netty Project
+ =================
+
+Please visit the Netty web site for more information:
+
+ * http://netty.io/
+
+Copyright 2014 The Netty Project
+
+The Netty Project licenses this file to you under the Apache License,
+version 2.0 (the "License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+
+Also, please refer to each LICENSE.<component>.txt file, which is located in
+the 'license' directory of the distribution file, for the license terms of the
+components that this product depends on.
+
+-------------------------------------------------------------------------------
+This product contains the extensions to Java Collections Framework which has
+been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+ * LICENSE:
+ * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+ * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+ * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+This product contains a modified version of Robert Harder's Public Domain
+Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+ * http://iharder.sourceforge.net/current/java/base64/
+
+This product contains a modified portion of 'Webbit', an event based
+WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+ * https://github.com/joewalnes/webbit
+
+This product contains a modified portion of 'SLF4J', a simple logging
+facade for Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.slf4j.org/
+
+This product contains a modified portion of 'Apache Harmony', an open source
+Java SE, which can be obtained at:
+
+ * NOTICE:
+ * license/NOTICE.harmony.txt
+ * LICENSE:
+ * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://archive.apache.org/dist/harmony/
+
+This product contains a modified portion of 'jbzip2', a Java bzip2 compression
+and decompression library written by Matthew J. Francis. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jbzip2/
+
+This product contains a modified portion of 'libdivsufsort', a C API library to construct
+the suffix array and the Burrows-Wheeler transformed string for any input string of
+a constant-size alphabet written by Yuta Mori. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+ * https://github.com/y-256/libdivsufsort
+
+This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
+ which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+ * https://github.com/JCTools/JCTools
+
+This product optionally depends on 'JZlib', a re-implementation of zlib in
+pure Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+ * http://www.jcraft.com/jzlib/
+
+This product optionally depends on 'Compress-LZF', a Java library for encoding and
+decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/ning/compress
+
+This product optionally depends on 'lz4', a LZ4 Java compression
+and decompression library written by Adrien Grand. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jpountz/lz4-java
+
+This product optionally depends on 'lzma-java', a LZMA Java compression
+and decompression library, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lzma-java.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jponge/lzma-java
+
+This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+and decompression library written by William Kinney. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jfastlz.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jfastlz/
+
+This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+interchange format, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.protobuf.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/protobuf
+
+This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
+a temporary self-signed X.509 certificate when the JVM does not provide the
+equivalent functionality. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.bouncycastle.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.bouncycastle.org/
+
+This product optionally depends on 'Snappy', a compression library produced
+by Google Inc, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.snappy.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/snappy
+
+This product optionally depends on 'JBoss Marshalling', an alternative Java
+serialization API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
+ * HOMEPAGE:
+ * http://www.jboss.org/jbossmarshalling
+
+This product optionally depends on 'Caliper', Google's micro-
+benchmarking framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.caliper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/google/caliper
+
+This product optionally depends on 'Apache Commons Logging', a logging
+framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-logging.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://commons.apache.org/logging/
+
+This product optionally depends on 'Apache Log4J', a logging framework, which
+can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.log4j.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://logging.apache.org/log4j/
+
+This product optionally depends on 'Aalto XML', an ultra-high performance
+non-blocking XML processor, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.aalto-xml.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://wiki.fasterxml.com/AaltoHome
+
+This product contains a modified version of 'HPACK', a Java implementation of
+the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.hpack.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/twitter/hpack
+
+This product contains a modified portion of 'Apache Commons Lang', a Java library
+provides utilities for the java.lang API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-lang.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://commons.apache.org/proper/commons-lang/
+
+
+This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.
+
+ * LICENSE:
+ * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/takari/maven-wrapper
diff --git a/solr-8.3.1/licenses/netty-resolver-4.1.29.Final.jar.sha1 b/solr-8.3.1/licenses/netty-resolver-4.1.29.Final.jar.sha1
new file mode 100644
index 000000000..8571f08ea
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-resolver-4.1.29.Final.jar.sha1
@@ -0,0 +1 @@
+bbec1dc913732e4773893c14d795b15d6c1e878e
diff --git a/solr-8.1.1/licenses/rrd4j-LICENSE-ASL.txt b/solr-8.3.1/licenses/netty-resolver-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/rrd4j-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/netty-resolver-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/netty-resolver-NOTICE.txt b/solr-8.3.1/licenses/netty-resolver-NOTICE.txt
new file mode 100644
index 000000000..f97366367
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-resolver-NOTICE.txt
@@ -0,0 +1,223 @@
+
+ The Netty Project
+ =================
+
+Please visit the Netty web site for more information:
+
+ * http://netty.io/
+
+Copyright 2014 The Netty Project
+
+The Netty Project licenses this file to you under the Apache License,
+version 2.0 (the "License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+
+Also, please refer to each LICENSE.<component>.txt file, which is located in
+the 'license' directory of the distribution file, for the license terms of the
+components that this product depends on.
+
+-------------------------------------------------------------------------------
+This product contains the extensions to Java Collections Framework which has
+been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+ * LICENSE:
+ * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+ * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+ * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+This product contains a modified version of Robert Harder's Public Domain
+Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+ * http://iharder.sourceforge.net/current/java/base64/
+
+This product contains a modified portion of 'Webbit', an event based
+WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+ * https://github.com/joewalnes/webbit
+
+This product contains a modified portion of 'SLF4J', a simple logging
+facade for Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.slf4j.org/
+
+This product contains a modified portion of 'Apache Harmony', an open source
+Java SE, which can be obtained at:
+
+ * NOTICE:
+ * license/NOTICE.harmony.txt
+ * LICENSE:
+ * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://archive.apache.org/dist/harmony/
+
+This product contains a modified portion of 'jbzip2', a Java bzip2 compression
+and decompression library written by Matthew J. Francis. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jbzip2/
+
+This product contains a modified portion of 'libdivsufsort', a C API library to construct
+the suffix array and the Burrows-Wheeler transformed string for any input string of
+a constant-size alphabet written by Yuta Mori. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+ * https://github.com/y-256/libdivsufsort
+
+This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
+ which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+ * https://github.com/JCTools/JCTools
+
+This product optionally depends on 'JZlib', a re-implementation of zlib in
+pure Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+ * http://www.jcraft.com/jzlib/
+
+This product optionally depends on 'Compress-LZF', a Java library for encoding and
+decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/ning/compress
+
+This product optionally depends on 'lz4', a LZ4 Java compression
+and decompression library written by Adrien Grand. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jpountz/lz4-java
+
+This product optionally depends on 'lzma-java', a LZMA Java compression
+and decompression library, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lzma-java.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jponge/lzma-java
+
+This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+and decompression library written by William Kinney. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jfastlz.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jfastlz/
+
+This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+interchange format, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.protobuf.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/protobuf
+
+This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
+a temporary self-signed X.509 certificate when the JVM does not provide the
+equivalent functionality. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.bouncycastle.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.bouncycastle.org/
+
+This product optionally depends on 'Snappy', a compression library produced
+by Google Inc, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.snappy.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/snappy
+
+This product optionally depends on 'JBoss Marshalling', an alternative Java
+serialization API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
+ * HOMEPAGE:
+ * http://www.jboss.org/jbossmarshalling
+
+This product optionally depends on 'Caliper', Google's micro-
+benchmarking framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.caliper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/google/caliper
+
+This product optionally depends on 'Apache Commons Logging', a logging
+framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-logging.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://commons.apache.org/logging/
+
+This product optionally depends on 'Apache Log4J', a logging framework, which
+can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.log4j.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://logging.apache.org/log4j/
+
+This product optionally depends on 'Aalto XML', an ultra-high performance
+non-blocking XML processor, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.aalto-xml.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://wiki.fasterxml.com/AaltoHome
+
+This product contains a modified version of 'HPACK', a Java implementation of
+the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.hpack.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/twitter/hpack
+
+This product contains a modified portion of 'Apache Commons Lang', a Java library
+provides utilities for the java.lang API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-lang.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://commons.apache.org/proper/commons-lang/
+
+
+This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.
+
+ * LICENSE:
+ * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/takari/maven-wrapper
diff --git a/solr-8.3.1/licenses/netty-transport-4.1.29.Final.jar.sha1 b/solr-8.3.1/licenses/netty-transport-4.1.29.Final.jar.sha1
new file mode 100644
index 000000000..6515f4263
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-transport-4.1.29.Final.jar.sha1
@@ -0,0 +1 @@
+c190b90f70e2ae8a48c068afad709e8728fcaa39
diff --git a/solr-8.1.1/licenses/slice-LICENSE-ASL.txt b/solr-8.3.1/licenses/netty-transport-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/slice-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/netty-transport-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/netty-transport-NOTICE.txt b/solr-8.3.1/licenses/netty-transport-NOTICE.txt
new file mode 100644
index 000000000..f97366367
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-transport-NOTICE.txt
@@ -0,0 +1,223 @@
+
+ The Netty Project
+ =================
+
+Please visit the Netty web site for more information:
+
+ * http://netty.io/
+
+Copyright 2014 The Netty Project
+
+The Netty Project licenses this file to you under the Apache License,
+version 2.0 (the "License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+
+Also, please refer to each LICENSE.<component>.txt file, which is located in
+the 'license' directory of the distribution file, for the license terms of the
+components that this product depends on.
+
+-------------------------------------------------------------------------------
+This product contains the extensions to Java Collections Framework which has
+been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+ * LICENSE:
+ * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+ * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+ * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+This product contains a modified version of Robert Harder's Public Domain
+Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+ * http://iharder.sourceforge.net/current/java/base64/
+
+This product contains a modified portion of 'Webbit', an event based
+WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+ * https://github.com/joewalnes/webbit
+
+This product contains a modified portion of 'SLF4J', a simple logging
+facade for Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.slf4j.org/
+
+This product contains a modified portion of 'Apache Harmony', an open source
+Java SE, which can be obtained at:
+
+ * NOTICE:
+ * license/NOTICE.harmony.txt
+ * LICENSE:
+ * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://archive.apache.org/dist/harmony/
+
+This product contains a modified portion of 'jbzip2', a Java bzip2 compression
+and decompression library written by Matthew J. Francis. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jbzip2/
+
+This product contains a modified portion of 'libdivsufsort', a C API library to construct
+the suffix array and the Burrows-Wheeler transformed string for any input string of
+a constant-size alphabet written by Yuta Mori. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+ * https://github.com/y-256/libdivsufsort
+
+This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
+ which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+ * https://github.com/JCTools/JCTools
+
+This product optionally depends on 'JZlib', a re-implementation of zlib in
+pure Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+ * http://www.jcraft.com/jzlib/
+
+This product optionally depends on 'Compress-LZF', a Java library for encoding and
+decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/ning/compress
+
+This product optionally depends on 'lz4', a LZ4 Java compression
+and decompression library written by Adrien Grand. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jpountz/lz4-java
+
+This product optionally depends on 'lzma-java', a LZMA Java compression
+and decompression library, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lzma-java.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jponge/lzma-java
+
+This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+and decompression library written by William Kinney. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jfastlz.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jfastlz/
+
+This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+interchange format, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.protobuf.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/protobuf
+
+This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
+a temporary self-signed X.509 certificate when the JVM does not provide the
+equivalent functionality. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.bouncycastle.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.bouncycastle.org/
+
+This product optionally depends on 'Snappy', a compression library produced
+by Google Inc, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.snappy.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/snappy
+
+This product optionally depends on 'JBoss Marshalling', an alternative Java
+serialization API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
+ * HOMEPAGE:
+ * http://www.jboss.org/jbossmarshalling
+
+This product optionally depends on 'Caliper', Google's micro-
+benchmarking framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.caliper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/google/caliper
+
+This product optionally depends on 'Apache Commons Logging', a logging
+framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-logging.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://commons.apache.org/logging/
+
+This product optionally depends on 'Apache Log4J', a logging framework, which
+can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.log4j.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://logging.apache.org/log4j/
+
+This product optionally depends on 'Aalto XML', an ultra-high performance
+non-blocking XML processor, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.aalto-xml.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://wiki.fasterxml.com/AaltoHome
+
+This product contains a modified version of 'HPACK', a Java implementation of
+the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.hpack.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/twitter/hpack
+
+This product contains a modified portion of 'Apache Commons Lang', a Java library
+provides utilities for the java.lang API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-lang.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://commons.apache.org/proper/commons-lang/
+
+
+This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.
+
+ * LICENSE:
+ * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/takari/maven-wrapper
diff --git a/solr-8.3.1/licenses/netty-transport-native-epoll-4.1.29.Final.jar.sha1 b/solr-8.3.1/licenses/netty-transport-native-epoll-4.1.29.Final.jar.sha1
new file mode 100644
index 000000000..6b7f77762
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-transport-native-epoll-4.1.29.Final.jar.sha1
@@ -0,0 +1 @@
+baca9c954b45c495c7caf328abfac49679d90ce8
diff --git a/solr-8.1.1/licenses/spatial4j-LICENSE-ASL.txt b/solr-8.3.1/licenses/netty-transport-native-epoll-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/spatial4j-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/netty-transport-native-epoll-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/netty-transport-native-epoll-NOTICE.txt b/solr-8.3.1/licenses/netty-transport-native-epoll-NOTICE.txt
new file mode 100644
index 000000000..f97366367
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-transport-native-epoll-NOTICE.txt
@@ -0,0 +1,223 @@
+
+ The Netty Project
+ =================
+
+Please visit the Netty web site for more information:
+
+ * http://netty.io/
+
+Copyright 2014 The Netty Project
+
+The Netty Project licenses this file to you under the Apache License,
+version 2.0 (the "License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+
+Also, please refer to each LICENSE.<component>.txt file, which is located in
+the 'license' directory of the distribution file, for the license terms of the
+components that this product depends on.
+
+-------------------------------------------------------------------------------
+This product contains the extensions to Java Collections Framework which has
+been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+ * LICENSE:
+ * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+ * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+ * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+This product contains a modified version of Robert Harder's Public Domain
+Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+ * http://iharder.sourceforge.net/current/java/base64/
+
+This product contains a modified portion of 'Webbit', an event based
+WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+ * https://github.com/joewalnes/webbit
+
+This product contains a modified portion of 'SLF4J', a simple logging
+facade for Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.slf4j.org/
+
+This product contains a modified portion of 'Apache Harmony', an open source
+Java SE, which can be obtained at:
+
+ * NOTICE:
+ * license/NOTICE.harmony.txt
+ * LICENSE:
+ * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://archive.apache.org/dist/harmony/
+
+This product contains a modified portion of 'jbzip2', a Java bzip2 compression
+and decompression library written by Matthew J. Francis. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jbzip2/
+
+This product contains a modified portion of 'libdivsufsort', a C API library to construct
+the suffix array and the Burrows-Wheeler transformed string for any input string of
+a constant-size alphabet written by Yuta Mori. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+ * https://github.com/y-256/libdivsufsort
+
+This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
+ which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+ * https://github.com/JCTools/JCTools
+
+This product optionally depends on 'JZlib', a re-implementation of zlib in
+pure Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+ * http://www.jcraft.com/jzlib/
+
+This product optionally depends on 'Compress-LZF', a Java library for encoding and
+decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/ning/compress
+
+This product optionally depends on 'lz4', a LZ4 Java compression
+and decompression library written by Adrien Grand. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jpountz/lz4-java
+
+This product optionally depends on 'lzma-java', a LZMA Java compression
+and decompression library, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lzma-java.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jponge/lzma-java
+
+This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+and decompression library written by William Kinney. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jfastlz.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jfastlz/
+
+This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+interchange format, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.protobuf.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/protobuf
+
+This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
+a temporary self-signed X.509 certificate when the JVM does not provide the
+equivalent functionality. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.bouncycastle.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.bouncycastle.org/
+
+This product optionally depends on 'Snappy', a compression library produced
+by Google Inc, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.snappy.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/snappy
+
+This product optionally depends on 'JBoss Marshalling', an alternative Java
+serialization API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
+ * HOMEPAGE:
+ * http://www.jboss.org/jbossmarshalling
+
+This product optionally depends on 'Caliper', Google's micro-
+benchmarking framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.caliper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/google/caliper
+
+This product optionally depends on 'Apache Commons Logging', a logging
+framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-logging.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://commons.apache.org/logging/
+
+This product optionally depends on 'Apache Log4J', a logging framework, which
+can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.log4j.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://logging.apache.org/log4j/
+
+This product optionally depends on 'Aalto XML', an ultra-high performance
+non-blocking XML processor, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.aalto-xml.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://wiki.fasterxml.com/AaltoHome
+
+This product contains a modified version of 'HPACK', a Java implementation of
+the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.hpack.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/twitter/hpack
+
+This product contains a modified portion of 'Apache Commons Lang', a Java library
+provides utilities for the java.lang API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-lang.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://commons.apache.org/proper/commons-lang/
+
+
+This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.
+
+ * LICENSE:
+ * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/takari/maven-wrapper
diff --git a/solr-8.3.1/licenses/netty-transport-native-unix-common-4.1.29.Final.jar.sha1 b/solr-8.3.1/licenses/netty-transport-native-unix-common-4.1.29.Final.jar.sha1
new file mode 100644
index 000000000..45303f8ef
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-transport-native-unix-common-4.1.29.Final.jar.sha1
@@ -0,0 +1 @@
+9c9f88ca57873b3c00489ae74fb80bb0cd02d986
diff --git a/solr-8.1.1/licenses/velocity-engine-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/netty-transport-native-unix-common-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/velocity-engine-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/netty-transport-native-unix-common-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/netty-transport-native-unix-common-NOTICE.txt b/solr-8.3.1/licenses/netty-transport-native-unix-common-NOTICE.txt
new file mode 100644
index 000000000..f97366367
--- /dev/null
+++ b/solr-8.3.1/licenses/netty-transport-native-unix-common-NOTICE.txt
@@ -0,0 +1,223 @@
+
+ The Netty Project
+ =================
+
+Please visit the Netty web site for more information:
+
+ * http://netty.io/
+
+Copyright 2014 The Netty Project
+
+The Netty Project licenses this file to you under the Apache License,
+version 2.0 (the "License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+
+Also, please refer to each LICENSE.<component>.txt file, which is located in
+the 'license' directory of the distribution file, for the license terms of the
+components that this product depends on.
+
+-------------------------------------------------------------------------------
+This product contains the extensions to Java Collections Framework which has
+been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
+
+ * LICENSE:
+ * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+ * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+ * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+This product contains a modified version of Robert Harder's Public Domain
+Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+ * http://iharder.sourceforge.net/current/java/base64/
+
+This product contains a modified portion of 'Webbit', an event based
+WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+ * https://github.com/joewalnes/webbit
+
+This product contains a modified portion of 'SLF4J', a simple logging
+facade for Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.slf4j.org/
+
+This product contains a modified portion of 'Apache Harmony', an open source
+Java SE, which can be obtained at:
+
+ * NOTICE:
+ * license/NOTICE.harmony.txt
+ * LICENSE:
+ * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://archive.apache.org/dist/harmony/
+
+This product contains a modified portion of 'jbzip2', a Java bzip2 compression
+and decompression library written by Matthew J. Francis. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jbzip2/
+
+This product contains a modified portion of 'libdivsufsort', a C API library to construct
+the suffix array and the Burrows-Wheeler transformed string for any input string of
+a constant-size alphabet written by Yuta Mori. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+ * https://github.com/y-256/libdivsufsort
+
+This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
+ which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+ * https://github.com/JCTools/JCTools
+
+This product optionally depends on 'JZlib', a re-implementation of zlib in
+pure Java, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+ * http://www.jcraft.com/jzlib/
+
+This product optionally depends on 'Compress-LZF', a Java library for encoding and
+decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/ning/compress
+
+This product optionally depends on 'lz4', a LZ4 Java compression
+and decompression library written by Adrien Grand. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jpountz/lz4-java
+
+This product optionally depends on 'lzma-java', a LZMA Java compression
+and decompression library, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.lzma-java.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/jponge/lzma-java
+
+This product contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+and decompression library written by William Kinney. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jfastlz.txt (MIT License)
+ * HOMEPAGE:
+ * https://code.google.com/p/jfastlz/
+
+This product contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+interchange format, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.protobuf.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/protobuf
+
+This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
+a temporary self-signed X.509 certificate when the JVM does not provide the
+equivalent functionality. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.bouncycastle.txt (MIT License)
+ * HOMEPAGE:
+ * http://www.bouncycastle.org/
+
+This product optionally depends on 'Snappy', a compression library produced
+by Google Inc, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.snappy.txt (New BSD License)
+ * HOMEPAGE:
+ * https://github.com/google/snappy
+
+This product optionally depends on 'JBoss Marshalling', an alternative Java
+serialization API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
+ * HOMEPAGE:
+ * http://www.jboss.org/jbossmarshalling
+
+This product optionally depends on 'Caliper', Google's micro-
+benchmarking framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.caliper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/google/caliper
+
+This product optionally depends on 'Apache Commons Logging', a logging
+framework, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-logging.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://commons.apache.org/logging/
+
+This product optionally depends on 'Apache Log4J', a logging framework, which
+can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.log4j.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://logging.apache.org/log4j/
+
+This product optionally depends on 'Aalto XML', an ultra-high performance
+non-blocking XML processor, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.aalto-xml.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * http://wiki.fasterxml.com/AaltoHome
+
+This product contains a modified version of 'HPACK', a Java implementation of
+the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.hpack.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/twitter/hpack
+
+This product contains a modified portion of 'Apache Commons Lang', a Java library
+provides utilities for the java.lang API, which can be obtained at:
+
+ * LICENSE:
+ * license/LICENSE.commons-lang.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://commons.apache.org/proper/commons-lang/
+
+
+This product contains the Maven wrapper scripts from 'Maven Wrapper', that provides an easy way to ensure a user has everything necessary to run the Maven build.
+
+ * LICENSE:
+ * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
+ * HOMEPAGE:
+ * https://github.com/takari/maven-wrapper
diff --git a/solr-8.1.1/licenses/objenesis-2.6.jar.sha1 b/solr-8.3.1/licenses/objenesis-2.6.jar.sha1
index 277e036b1..277e036b1 100644
--- a/solr-8.1.1/licenses/objenesis-2.6.jar.sha1
+++ b/solr-8.3.1/licenses/objenesis-2.6.jar.sha1
diff --git a/solr-8.1.1/licenses/woodstox-core-asl-LICENSE-ASL.txt b/solr-8.3.1/licenses/objenesis-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/woodstox-core-asl-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/objenesis-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/objenesis-NOTICE.txt b/solr-8.3.1/licenses/objenesis-NOTICE.txt
index bee3251ae..bee3251ae 100644
--- a/solr-8.1.1/licenses/objenesis-NOTICE.txt
+++ b/solr-8.3.1/licenses/objenesis-NOTICE.txt
diff --git a/solr-8.1.1/licenses/opennlp-tools-1.9.1.jar.sha1 b/solr-8.3.1/licenses/opennlp-tools-1.9.1.jar.sha1
index efc21aa91..efc21aa91 100644
--- a/solr-8.1.1/licenses/opennlp-tools-1.9.1.jar.sha1
+++ b/solr-8.3.1/licenses/opennlp-tools-1.9.1.jar.sha1
diff --git a/solr-8.1.1/licenses/zookeeper-LICENSE-ASL.txt b/solr-8.3.1/licenses/opennlp-tools-LICENSE-ASL.txt
index d64569567..d64569567 100644
--- a/solr-8.1.1/licenses/zookeeper-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/opennlp-tools-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/opennlp-tools-NOTICE.txt b/solr-8.3.1/licenses/opennlp-tools-NOTICE.txt
index 68a08dc4d..68a08dc4d 100644
--- a/solr-8.1.1/licenses/opennlp-tools-NOTICE.txt
+++ b/solr-8.3.1/licenses/opennlp-tools-NOTICE.txt
diff --git a/solr-8.3.1/licenses/opentracing-api-0.33.0.jar.sha1 b/solr-8.3.1/licenses/opentracing-api-0.33.0.jar.sha1
new file mode 100644
index 000000000..c7b2aafb3
--- /dev/null
+++ b/solr-8.3.1/licenses/opentracing-api-0.33.0.jar.sha1
@@ -0,0 +1 @@
+67336cfb9d93779c02e1fda4c87801d352720eda
diff --git a/solr-8.1.1/licenses/simpleclient-LICENSE-ASL.txt b/solr-8.3.1/licenses/opentracing-api-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/simpleclient-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/opentracing-api-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/xmpcore-NOTICE.txt b/solr-8.3.1/licenses/opentracing-api-NOTICE.txt
index 8b1378917..8b1378917 100644
--- a/solr-8.1.1/licenses/xmpcore-NOTICE.txt
+++ b/solr-8.3.1/licenses/opentracing-api-NOTICE.txt
diff --git a/solr-8.3.1/licenses/opentracing-mock-0.33.0.jar.sha1 b/solr-8.3.1/licenses/opentracing-mock-0.33.0.jar.sha1
new file mode 100644
index 000000000..684a6c3d9
--- /dev/null
+++ b/solr-8.3.1/licenses/opentracing-mock-0.33.0.jar.sha1
@@ -0,0 +1 @@
+68f907743a5b355a8e975fdd3df0d2e106bbad6c
diff --git a/solr-8.1.1/licenses/simpleclient_common-LICENSE-ASL.txt b/solr-8.3.1/licenses/opentracing-mock-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/simpleclient_common-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/opentracing-mock-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/opentracing-mock-NOTICE.txt b/solr-8.3.1/licenses/opentracing-mock-NOTICE.txt
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/solr-8.3.1/licenses/opentracing-mock-NOTICE.txt
@@ -0,0 +1 @@
+
diff --git a/solr-8.3.1/licenses/opentracing-noop-0.33.0.jar.sha1 b/solr-8.3.1/licenses/opentracing-noop-0.33.0.jar.sha1
new file mode 100644
index 000000000..ea4e70775
--- /dev/null
+++ b/solr-8.3.1/licenses/opentracing-noop-0.33.0.jar.sha1
@@ -0,0 +1 @@
+074b9950a587f53fbdb48c3f1f84f1ece8c10592
diff --git a/solr-8.1.1/licenses/simpleclient_httpserver-LICENSE-ASL.txt b/solr-8.3.1/licenses/opentracing-noop-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/simpleclient_httpserver-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/opentracing-noop-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/opentracing-noop-NOTICE.txt b/solr-8.3.1/licenses/opentracing-noop-NOTICE.txt
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/solr-8.3.1/licenses/opentracing-noop-NOTICE.txt
@@ -0,0 +1 @@
+
diff --git a/solr-8.3.1/licenses/opentracing-util-0.33.0.jar.sha1 b/solr-8.3.1/licenses/opentracing-util-0.33.0.jar.sha1
new file mode 100644
index 000000000..b0c42dcc5
--- /dev/null
+++ b/solr-8.3.1/licenses/opentracing-util-0.33.0.jar.sha1
@@ -0,0 +1 @@
+132630f17e198a1748f23ce33597efdf4a807fb9
diff --git a/solr-8.1.1/licenses/tagsoup-LICENSE-ASL.txt b/solr-8.3.1/licenses/opentracing-util-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/tagsoup-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/opentracing-util-LICENSE-ASL.txt
diff --git a/solr-8.3.1/licenses/opentracing-util-NOTICE.txt b/solr-8.3.1/licenses/opentracing-util-NOTICE.txt
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/solr-8.3.1/licenses/opentracing-util-NOTICE.txt
@@ -0,0 +1 @@
+
diff --git a/solr-8.1.1/licenses/org.restlet-2.3.0.jar.sha1 b/solr-8.3.1/licenses/org.restlet-2.3.0.jar.sha1
index 77e949d32..77e949d32 100644
--- a/solr-8.1.1/licenses/org.restlet-2.3.0.jar.sha1
+++ b/solr-8.3.1/licenses/org.restlet-2.3.0.jar.sha1
diff --git a/solr-8.1.1/licenses/velocity-tools-generic-LICENSE-ASL.txt b/solr-8.3.1/licenses/org.restlet-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/velocity-tools-generic-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/org.restlet-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/org.restlet-NOTICE.txt b/solr-8.3.1/licenses/org.restlet-NOTICE.txt
index a2aa4627e..a2aa4627e 100644
--- a/solr-8.1.1/licenses/org.restlet-NOTICE.txt
+++ b/solr-8.3.1/licenses/org.restlet-NOTICE.txt
diff --git a/solr-8.1.1/licenses/org.restlet.ext.servlet-2.3.0.jar.sha1 b/solr-8.3.1/licenses/org.restlet.ext.servlet-2.3.0.jar.sha1
index 32c31ad33..32c31ad33 100644
--- a/solr-8.1.1/licenses/org.restlet.ext.servlet-2.3.0.jar.sha1
+++ b/solr-8.3.1/licenses/org.restlet.ext.servlet-2.3.0.jar.sha1
diff --git a/solr-8.1.1/licenses/velocity-tools-view-LICENSE-ASL.txt b/solr-8.3.1/licenses/org.restlet.ext.servlet-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/velocity-tools-view-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/org.restlet.ext.servlet-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/org.restlet.ext.servlet-NOTICE.txt b/solr-8.3.1/licenses/org.restlet.ext.servlet-NOTICE.txt
index 6f139d6e8..6f139d6e8 100644
--- a/solr-8.1.1/licenses/org.restlet.ext.servlet-NOTICE.txt
+++ b/solr-8.3.1/licenses/org.restlet.ext.servlet-NOTICE.txt
diff --git a/solr-8.1.1/licenses/parso-2.0.9.jar.sha1 b/solr-8.3.1/licenses/parso-2.0.9.jar.sha1
index d292e7ef7..d292e7ef7 100644
--- a/solr-8.1.1/licenses/parso-2.0.9.jar.sha1
+++ b/solr-8.3.1/licenses/parso-2.0.9.jar.sha1
diff --git a/solr-8.1.1/licenses/parso-LICENSE-ASL.txt b/solr-8.3.1/licenses/parso-LICENSE-ASL.txt
index 3761b7ec0..3761b7ec0 100644
--- a/solr-8.1.1/licenses/parso-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/parso-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/parso-NOTICE.txt b/solr-8.3.1/licenses/parso-NOTICE.txt
index 3761b7ec0..3761b7ec0 100644
--- a/solr-8.1.1/licenses/parso-NOTICE.txt
+++ b/solr-8.3.1/licenses/parso-NOTICE.txt
diff --git a/solr-8.1.1/licenses/pdfbox-2.0.12.jar.sha1 b/solr-8.3.1/licenses/pdfbox-2.0.12.jar.sha1
index d190b7e23..d190b7e23 100644
--- a/solr-8.1.1/licenses/pdfbox-2.0.12.jar.sha1
+++ b/solr-8.3.1/licenses/pdfbox-2.0.12.jar.sha1
diff --git a/solr-8.1.1/licenses/pdfbox-LICENSE-ASL.txt b/solr-8.3.1/licenses/pdfbox-LICENSE-ASL.txt
index d1f4d5cc0..d1f4d5cc0 100644
--- a/solr-8.1.1/licenses/pdfbox-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/pdfbox-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/pdfbox-NOTICE.txt b/solr-8.3.1/licenses/pdfbox-NOTICE.txt
index 0d67b51ff..0d67b51ff 100644
--- a/solr-8.1.1/licenses/pdfbox-NOTICE.txt
+++ b/solr-8.3.1/licenses/pdfbox-NOTICE.txt
diff --git a/solr-8.1.1/licenses/pdfbox-tools-2.0.12.jar.sha1 b/solr-8.3.1/licenses/pdfbox-tools-2.0.12.jar.sha1
index 226084a79..226084a79 100644
--- a/solr-8.1.1/licenses/pdfbox-tools-2.0.12.jar.sha1
+++ b/solr-8.3.1/licenses/pdfbox-tools-2.0.12.jar.sha1
diff --git a/solr-8.1.1/licenses/pdfbox-tools-LICENSE-ASL.txt b/solr-8.3.1/licenses/pdfbox-tools-LICENSE-ASL.txt
index d1f4d5cc0..d1f4d5cc0 100644
--- a/solr-8.1.1/licenses/pdfbox-tools-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/pdfbox-tools-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/pdfbox-tools-NOTICE.txt b/solr-8.3.1/licenses/pdfbox-tools-NOTICE.txt
index 0d67b51ff..0d67b51ff 100644
--- a/solr-8.1.1/licenses/pdfbox-tools-NOTICE.txt
+++ b/solr-8.3.1/licenses/pdfbox-tools-NOTICE.txt
diff --git a/solr-8.1.1/licenses/poi-4.0.0.jar.sha1 b/solr-8.3.1/licenses/poi-4.0.0.jar.sha1
index 503cc5bbe..503cc5bbe 100644
--- a/solr-8.1.1/licenses/poi-4.0.0.jar.sha1
+++ b/solr-8.3.1/licenses/poi-4.0.0.jar.sha1
diff --git a/solr-8.1.1/licenses/poi-LICENSE-ASL.txt b/solr-8.3.1/licenses/poi-LICENSE-ASL.txt
index 09d38da72..09d38da72 100644
--- a/solr-8.1.1/licenses/poi-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/poi-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/poi-NOTICE.txt b/solr-8.3.1/licenses/poi-NOTICE.txt
index 251850655..251850655 100644
--- a/solr-8.1.1/licenses/poi-NOTICE.txt
+++ b/solr-8.3.1/licenses/poi-NOTICE.txt
diff --git a/solr-8.1.1/licenses/poi-ooxml-4.0.0.jar.sha1 b/solr-8.3.1/licenses/poi-ooxml-4.0.0.jar.sha1
index 82f38e8f1..82f38e8f1 100644
--- a/solr-8.1.1/licenses/poi-ooxml-4.0.0.jar.sha1
+++ b/solr-8.3.1/licenses/poi-ooxml-4.0.0.jar.sha1
diff --git a/solr-8.1.1/licenses/poi-ooxml-LICENSE-ASL.txt b/solr-8.3.1/licenses/poi-ooxml-LICENSE-ASL.txt
index 09d38da72..09d38da72 100644
--- a/solr-8.1.1/licenses/poi-ooxml-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/poi-ooxml-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/poi-ooxml-NOTICE.txt b/solr-8.3.1/licenses/poi-ooxml-NOTICE.txt
index 251850655..251850655 100644
--- a/solr-8.1.1/licenses/poi-ooxml-NOTICE.txt
+++ b/solr-8.3.1/licenses/poi-ooxml-NOTICE.txt
diff --git a/solr-8.1.1/licenses/poi-ooxml-schemas-4.0.0.jar.sha1 b/solr-8.3.1/licenses/poi-ooxml-schemas-4.0.0.jar.sha1
index 6edf823b8..6edf823b8 100644
--- a/solr-8.1.1/licenses/poi-ooxml-schemas-4.0.0.jar.sha1
+++ b/solr-8.3.1/licenses/poi-ooxml-schemas-4.0.0.jar.sha1
diff --git a/solr-8.1.1/licenses/poi-ooxml-schemas-LICENSE-ASL.txt b/solr-8.3.1/licenses/poi-ooxml-schemas-LICENSE-ASL.txt
index 09d38da72..09d38da72 100644
--- a/solr-8.1.1/licenses/poi-ooxml-schemas-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/poi-ooxml-schemas-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/poi-ooxml-schemas-NOTICE.txt b/solr-8.3.1/licenses/poi-ooxml-schemas-NOTICE.txt
index 251850655..251850655 100644
--- a/solr-8.1.1/licenses/poi-ooxml-schemas-NOTICE.txt
+++ b/solr-8.3.1/licenses/poi-ooxml-schemas-NOTICE.txt
diff --git a/solr-8.1.1/licenses/poi-scratchpad-4.0.0.jar.sha1 b/solr-8.3.1/licenses/poi-scratchpad-4.0.0.jar.sha1
index ba817eef9..ba817eef9 100644
--- a/solr-8.1.1/licenses/poi-scratchpad-4.0.0.jar.sha1
+++ b/solr-8.3.1/licenses/poi-scratchpad-4.0.0.jar.sha1
diff --git a/solr-8.1.1/licenses/poi-scratchpad-LICENSE-ASL.txt b/solr-8.3.1/licenses/poi-scratchpad-LICENSE-ASL.txt
index 09d38da72..09d38da72 100644
--- a/solr-8.1.1/licenses/poi-scratchpad-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/poi-scratchpad-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/poi-scratchpad-NOTICE.txt b/solr-8.3.1/licenses/poi-scratchpad-NOTICE.txt
index 251850655..251850655 100644
--- a/solr-8.1.1/licenses/poi-scratchpad-NOTICE.txt
+++ b/solr-8.3.1/licenses/poi-scratchpad-NOTICE.txt
diff --git a/solr-8.3.1/licenses/presto-parser-LICENSE-ASL.txt b/solr-8.3.1/licenses/presto-parser-LICENSE-ASL.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/solr-8.3.1/licenses/presto-parser-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.3.1/licenses/presto-parser-NOTICE.txt b/solr-8.3.1/licenses/presto-parser-NOTICE.txt
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/solr-8.3.1/licenses/presto-parser-NOTICE.txt
@@ -0,0 +1 @@
+
diff --git a/solr-8.1.1/licenses/protobuf-java-3.6.1.jar.sha1 b/solr-8.3.1/licenses/protobuf-java-3.6.1.jar.sha1
index 56a4ab988..56a4ab988 100644
--- a/solr-8.1.1/licenses/protobuf-java-3.6.1.jar.sha1
+++ b/solr-8.3.1/licenses/protobuf-java-3.6.1.jar.sha1
diff --git a/solr-8.1.1/licenses/protobuf-java-LICENSE-BSD.txt b/solr-8.3.1/licenses/protobuf-java-LICENSE-BSD.txt
index 184fe077c..184fe077c 100644
--- a/solr-8.1.1/licenses/protobuf-java-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/protobuf-java-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/protobuf-java-NOTICE.txt b/solr-8.3.1/licenses/protobuf-java-NOTICE.txt
index b37f5297e..b37f5297e 100644
--- a/solr-8.1.1/licenses/protobuf-java-NOTICE.txt
+++ b/solr-8.3.1/licenses/protobuf-java-NOTICE.txt
diff --git a/solr-8.1.1/licenses/randomizedtesting-runner-2.7.2.jar.sha1 b/solr-8.3.1/licenses/randomizedtesting-runner-2.7.2.jar.sha1
index 9eeaf24b7..9eeaf24b7 100644
--- a/solr-8.1.1/licenses/randomizedtesting-runner-2.7.2.jar.sha1
+++ b/solr-8.3.1/licenses/randomizedtesting-runner-2.7.2.jar.sha1
diff --git a/solr-8.3.1/licenses/randomizedtesting-runner-LICENSE-ASL.txt b/solr-8.3.1/licenses/randomizedtesting-runner-LICENSE-ASL.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/solr-8.3.1/licenses/randomizedtesting-runner-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/randomizedtesting-runner-NOTICE.txt b/solr-8.3.1/licenses/randomizedtesting-runner-NOTICE.txt
index e65778825..e65778825 100644
--- a/solr-8.1.1/licenses/randomizedtesting-runner-NOTICE.txt
+++ b/solr-8.3.1/licenses/randomizedtesting-runner-NOTICE.txt
diff --git a/solr-8.1.1/licenses/re2j-1.2.jar.sha1 b/solr-8.3.1/licenses/re2j-1.2.jar.sha1
index 7103441f0..7103441f0 100644
--- a/solr-8.1.1/licenses/re2j-1.2.jar.sha1
+++ b/solr-8.3.1/licenses/re2j-1.2.jar.sha1
diff --git a/solr-8.1.1/licenses/re2j-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/re2j-LICENSE-BSD_LIKE.txt
index 9c68c81a9..9c68c81a9 100644
--- a/solr-8.1.1/licenses/re2j-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/re2j-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/re2j-NOTICE.txt b/solr-8.3.1/licenses/re2j-NOTICE.txt
index 04106db4f..04106db4f 100644
--- a/solr-8.1.1/licenses/re2j-NOTICE.txt
+++ b/solr-8.3.1/licenses/re2j-NOTICE.txt
diff --git a/solr-8.1.1/licenses/rome-1.5.1.jar.sha1 b/solr-8.3.1/licenses/rome-1.5.1.jar.sha1
index f24eb2abb..f24eb2abb 100644
--- a/solr-8.1.1/licenses/rome-1.5.1.jar.sha1
+++ b/solr-8.3.1/licenses/rome-1.5.1.jar.sha1
diff --git a/solr-8.1.1/licenses/rome-LICENSE-ASL.txt b/solr-8.3.1/licenses/rome-LICENSE-ASL.txt
index f43cdb1cb..f43cdb1cb 100644
--- a/solr-8.1.1/licenses/rome-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/rome-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/rome-NOTICE.txt b/solr-8.3.1/licenses/rome-NOTICE.txt
index caefccb44..caefccb44 100644
--- a/solr-8.1.1/licenses/rome-NOTICE.txt
+++ b/solr-8.3.1/licenses/rome-NOTICE.txt
diff --git a/solr-8.1.1/licenses/rome-utils-1.5.1.jar.sha1 b/solr-8.3.1/licenses/rome-utils-1.5.1.jar.sha1
index bc388b97c..bc388b97c 100644
--- a/solr-8.1.1/licenses/rome-utils-1.5.1.jar.sha1
+++ b/solr-8.3.1/licenses/rome-utils-1.5.1.jar.sha1
diff --git a/solr-8.1.1/licenses/rome-utils-LICENSE-ASL.txt b/solr-8.3.1/licenses/rome-utils-LICENSE-ASL.txt
index f43cdb1cb..f43cdb1cb 100644
--- a/solr-8.1.1/licenses/rome-utils-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/rome-utils-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/rome-utils-NOTICE.txt b/solr-8.3.1/licenses/rome-utils-NOTICE.txt
index caefccb44..caefccb44 100644
--- a/solr-8.1.1/licenses/rome-utils-NOTICE.txt
+++ b/solr-8.3.1/licenses/rome-utils-NOTICE.txt
diff --git a/solr-8.1.1/licenses/rrd4j-3.5.jar.sha1 b/solr-8.3.1/licenses/rrd4j-3.5.jar.sha1
index 8277f7ee8..8277f7ee8 100644
--- a/solr-8.1.1/licenses/rrd4j-3.5.jar.sha1
+++ b/solr-8.3.1/licenses/rrd4j-3.5.jar.sha1
diff --git a/solr-8.3.1/licenses/rrd4j-LICENSE-ASL.txt b/solr-8.3.1/licenses/rrd4j-LICENSE-ASL.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/solr-8.3.1/licenses/rrd4j-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/rrd4j-NOTICE.txt b/solr-8.3.1/licenses/rrd4j-NOTICE.txt
index 841dd3099..841dd3099 100644
--- a/solr-8.1.1/licenses/rrd4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/rrd4j-NOTICE.txt
diff --git a/solr-8.3.1/licenses/s2-geometry-library-java-1.0.0.jar.sha1 b/solr-8.3.1/licenses/s2-geometry-library-java-1.0.0.jar.sha1
new file mode 100644
index 000000000..ef4e3eebb
--- /dev/null
+++ b/solr-8.3.1/licenses/s2-geometry-library-java-1.0.0.jar.sha1
@@ -0,0 +1 @@
+f95b25589b40b5b0965deb592445073ff3efa299
diff --git a/solr-8.3.1/licenses/s2-geometry-library-java-LICENSE-ASL.txt b/solr-8.3.1/licenses/s2-geometry-library-java-LICENSE-ASL.txt
new file mode 100644
index 000000000..7e76651a3
--- /dev/null
+++ b/solr-8.3.1/licenses/s2-geometry-library-java-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/solr-8.3.1/licenses/s2-geometry-library-java-NOTICE.txt b/solr-8.3.1/licenses/s2-geometry-library-java-NOTICE.txt
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/solr-8.3.1/licenses/s2-geometry-library-java-NOTICE.txt
@@ -0,0 +1 @@
+
diff --git a/solr-8.1.1/licenses/servlet-api-LICENSE-CDDL.txt b/solr-8.3.1/licenses/servlet-api-LICENSE-CDDL.txt
index b75b04fcf..b75b04fcf 100644
--- a/solr-8.1.1/licenses/servlet-api-LICENSE-CDDL.txt
+++ b/solr-8.3.1/licenses/servlet-api-LICENSE-CDDL.txt
diff --git a/solr-8.1.1/licenses/servlet-api-NOTICE.txt b/solr-8.3.1/licenses/servlet-api-NOTICE.txt
index 6340ec9b7..6340ec9b7 100644
--- a/solr-8.1.1/licenses/servlet-api-NOTICE.txt
+++ b/solr-8.3.1/licenses/servlet-api-NOTICE.txt
diff --git a/solr-8.3.1/licenses/simple-xml-safe-2.7.1.jar.sha1 b/solr-8.3.1/licenses/simple-xml-safe-2.7.1.jar.sha1
new file mode 100644
index 000000000..75e4299c1
--- /dev/null
+++ b/solr-8.3.1/licenses/simple-xml-safe-2.7.1.jar.sha1
@@ -0,0 +1 @@
+045fda5ac6087bc82a209d8cdb73f8d0dbdcfc7b
diff --git a/solr-8.1.1/licenses/simple-xml-LICENSE-ASL.txt b/solr-8.3.1/licenses/simple-xml-safe-LICENSE-ASL.txt
index 57bc88a15..57bc88a15 100644
--- a/solr-8.1.1/licenses/simple-xml-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/simple-xml-safe-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/simple-xml-NOTICE.txt b/solr-8.3.1/licenses/simple-xml-safe-NOTICE.txt
index 6f139d6e8..6f139d6e8 100644
--- a/solr-8.1.1/licenses/simple-xml-NOTICE.txt
+++ b/solr-8.3.1/licenses/simple-xml-safe-NOTICE.txt
diff --git a/solr-8.1.1/licenses/simpleclient-0.2.0.jar.sha1 b/solr-8.3.1/licenses/simpleclient-0.2.0.jar.sha1
index ce8b16fb3..ce8b16fb3 100644
--- a/solr-8.1.1/licenses/simpleclient-0.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/simpleclient-0.2.0.jar.sha1
diff --git a/solr-8.1.1/licenses/velocity-tools-view-jsp-LICENSE-ASL.txt b/solr-8.3.1/licenses/simpleclient-LICENSE-ASL.txt
index 261eeb9e9..261eeb9e9 100644
--- a/solr-8.1.1/licenses/velocity-tools-view-jsp-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/simpleclient-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/simpleclient-NOTICE.txt b/solr-8.3.1/licenses/simpleclient-NOTICE.txt
index c920ec3fe..c920ec3fe 100644
--- a/solr-8.1.1/licenses/simpleclient-NOTICE.txt
+++ b/solr-8.3.1/licenses/simpleclient-NOTICE.txt
diff --git a/solr-8.1.1/licenses/simpleclient_common-0.2.0.jar.sha1 b/solr-8.3.1/licenses/simpleclient_common-0.2.0.jar.sha1
index 1e1c2e947..1e1c2e947 100644
--- a/solr-8.1.1/licenses/simpleclient_common-0.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/simpleclient_common-0.2.0.jar.sha1
diff --git a/solr-8.3.1/licenses/simpleclient_common-LICENSE-ASL.txt b/solr-8.3.1/licenses/simpleclient_common-LICENSE-ASL.txt
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/solr-8.3.1/licenses/simpleclient_common-LICENSE-ASL.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/simpleclient_common-NOTICE.txt b/solr-8.3.1/licenses/simpleclient_common-NOTICE.txt
index c920ec3fe..c920ec3fe 100644
--- a/solr-8.1.1/licenses/simpleclient_common-NOTICE.txt
+++ b/solr-8.3.1/licenses/simpleclient_common-NOTICE.txt
diff --git a/solr-8.1.1/licenses/simpleclient_httpserver-0.2.0.jar.sha1 b/solr-8.3.1/licenses/simpleclient_httpserver-0.2.0.jar.sha1
index 7d188b52e..7d188b52e 100644
--- a/solr-8.1.1/licenses/simpleclient_httpserver-0.2.0.jar.sha1
+++ b/solr-8.3.1/licenses/simpleclient_httpserver-0.2.0.jar.sha1
diff --git a/solr-8.3.1/licenses/simpleclient_httpserver-LICENSE-ASL.txt b/solr-8.3.1/licenses/simpleclient_httpserver-LICENSE-ASL.txt
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/solr-8.3.1/licenses/simpleclient_httpserver-LICENSE-ASL.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/simpleclient_httpserver-NOTICE.txt b/solr-8.3.1/licenses/simpleclient_httpserver-NOTICE.txt
index c920ec3fe..c920ec3fe 100644
--- a/solr-8.1.1/licenses/simpleclient_httpserver-NOTICE.txt
+++ b/solr-8.3.1/licenses/simpleclient_httpserver-NOTICE.txt
diff --git a/solr-8.1.1/licenses/slf4j-LICENSE-MIT.txt b/solr-8.3.1/licenses/slf4j-LICENSE-MIT.txt
index f5ecafa00..f5ecafa00 100644
--- a/solr-8.1.1/licenses/slf4j-LICENSE-MIT.txt
+++ b/solr-8.3.1/licenses/slf4j-LICENSE-MIT.txt
diff --git a/solr-8.1.1/licenses/slf4j-NOTICE.txt b/solr-8.3.1/licenses/slf4j-NOTICE.txt
index cf438946a..cf438946a 100644
--- a/solr-8.1.1/licenses/slf4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/slf4j-NOTICE.txt
diff --git a/solr-8.1.1/licenses/slf4j-api-1.7.24.jar.sha1 b/solr-8.3.1/licenses/slf4j-api-1.7.24.jar.sha1
index e2722e783..e2722e783 100644
--- a/solr-8.1.1/licenses/slf4j-api-1.7.24.jar.sha1
+++ b/solr-8.3.1/licenses/slf4j-api-1.7.24.jar.sha1
diff --git a/solr-8.1.1/licenses/slf4j-simple-1.7.24.jar.sha1 b/solr-8.3.1/licenses/slf4j-simple-1.7.24.jar.sha1
index 043482ccd..043482ccd 100644
--- a/solr-8.1.1/licenses/slf4j-simple-1.7.24.jar.sha1
+++ b/solr-8.3.1/licenses/slf4j-simple-1.7.24.jar.sha1
diff --git a/solr-8.3.1/licenses/slice-LICENSE-ASL.txt b/solr-8.3.1/licenses/slice-LICENSE-ASL.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/solr-8.3.1/licenses/slice-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.3.1/licenses/slice-NOTICE.txt b/solr-8.3.1/licenses/slice-NOTICE.txt
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/solr-8.3.1/licenses/slice-NOTICE.txt
@@ -0,0 +1 @@
+
diff --git a/solr-8.1.1/licenses/spatial4j-0.7.jar.sha1 b/solr-8.3.1/licenses/spatial4j-0.7.jar.sha1
index ef2406596..ef2406596 100644
--- a/solr-8.1.1/licenses/spatial4j-0.7.jar.sha1
+++ b/solr-8.3.1/licenses/spatial4j-0.7.jar.sha1
diff --git a/solr-8.3.1/licenses/spatial4j-LICENSE-ASL.txt b/solr-8.3.1/licenses/spatial4j-LICENSE-ASL.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/solr-8.3.1/licenses/spatial4j-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/spatial4j-NOTICE.txt b/solr-8.3.1/licenses/spatial4j-NOTICE.txt
index 59b73004f..59b73004f 100644
--- a/solr-8.1.1/licenses/spatial4j-NOTICE.txt
+++ b/solr-8.3.1/licenses/spatial4j-NOTICE.txt
diff --git a/solr-8.3.1/licenses/start.jar.sha1 b/solr-8.3.1/licenses/start.jar.sha1
new file mode 100644
index 000000000..e7dd6a27a
--- /dev/null
+++ b/solr-8.3.1/licenses/start.jar.sha1
@@ -0,0 +1 @@
+6ab950be264e74803f12ba43ee5db434a74e6c0c
diff --git a/solr-8.1.1/licenses/stax2-api-3.1.4.jar.sha1 b/solr-8.3.1/licenses/stax2-api-3.1.4.jar.sha1
index d5f40207f..d5f40207f 100644
--- a/solr-8.1.1/licenses/stax2-api-3.1.4.jar.sha1
+++ b/solr-8.3.1/licenses/stax2-api-3.1.4.jar.sha1
diff --git a/solr-8.1.1/licenses/stax2-api-LICENSE-BSD.txt b/solr-8.3.1/licenses/stax2-api-LICENSE-BSD.txt
index 49e7019ac..49e7019ac 100644
--- a/solr-8.1.1/licenses/stax2-api-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/stax2-api-LICENSE-BSD.txt
diff --git a/solr-8.1.1/licenses/stax2-api-NOTICE.txt b/solr-8.3.1/licenses/stax2-api-NOTICE.txt
index a5f70fc08..a5f70fc08 100644
--- a/solr-8.1.1/licenses/stax2-api-NOTICE.txt
+++ b/solr-8.3.1/licenses/stax2-api-NOTICE.txt
diff --git a/solr-8.1.1/licenses/t-digest-3.1.jar.sha1 b/solr-8.3.1/licenses/t-digest-3.1.jar.sha1
index 1c4c89ce0..1c4c89ce0 100644
--- a/solr-8.1.1/licenses/t-digest-3.1.jar.sha1
+++ b/solr-8.3.1/licenses/t-digest-3.1.jar.sha1
diff --git a/solr-8.1.1/licenses/t-digest-LICENSE-ASL.txt b/solr-8.3.1/licenses/t-digest-LICENSE-ASL.txt
index e06d20818..e06d20818 100644
--- a/solr-8.1.1/licenses/t-digest-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/t-digest-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/t-digest-NOTICE.txt b/solr-8.3.1/licenses/t-digest-NOTICE.txt
index 319f7b55c..319f7b55c 100644
--- a/solr-8.1.1/licenses/t-digest-NOTICE.txt
+++ b/solr-8.3.1/licenses/t-digest-NOTICE.txt
diff --git a/solr-8.1.1/licenses/tagsoup-1.2.1.jar.sha1 b/solr-8.3.1/licenses/tagsoup-1.2.1.jar.sha1
index 5d227b11a..5d227b11a 100644
--- a/solr-8.1.1/licenses/tagsoup-1.2.1.jar.sha1
+++ b/solr-8.3.1/licenses/tagsoup-1.2.1.jar.sha1
diff --git a/solr-8.3.1/licenses/tagsoup-LICENSE-ASL.txt b/solr-8.3.1/licenses/tagsoup-LICENSE-ASL.txt
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/solr-8.3.1/licenses/tagsoup-LICENSE-ASL.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/tagsoup-NOTICE.txt b/solr-8.3.1/licenses/tagsoup-NOTICE.txt
index a1b735b0d..a1b735b0d 100644
--- a/solr-8.1.1/licenses/tagsoup-NOTICE.txt
+++ b/solr-8.3.1/licenses/tagsoup-NOTICE.txt
diff --git a/solr-8.1.1/licenses/tika-core-1.19.1.jar.sha1 b/solr-8.3.1/licenses/tika-core-1.19.1.jar.sha1
index d1448525b..d1448525b 100644
--- a/solr-8.1.1/licenses/tika-core-1.19.1.jar.sha1
+++ b/solr-8.3.1/licenses/tika-core-1.19.1.jar.sha1
diff --git a/solr-8.1.1/licenses/tika-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/tika-core-LICENSE-ASL.txt
index ca855f4c3..ca855f4c3 100644
--- a/solr-8.1.1/licenses/tika-core-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/tika-core-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/tika-core-NOTICE.txt b/solr-8.3.1/licenses/tika-core-NOTICE.txt
index 3b73637ac..3b73637ac 100644
--- a/solr-8.1.1/licenses/tika-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/tika-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/tika-java7-1.19.1.jar.sha1 b/solr-8.3.1/licenses/tika-java7-1.19.1.jar.sha1
index a5459a9e6..a5459a9e6 100644
--- a/solr-8.1.1/licenses/tika-java7-1.19.1.jar.sha1
+++ b/solr-8.3.1/licenses/tika-java7-1.19.1.jar.sha1
diff --git a/solr-8.1.1/licenses/tika-java7-LICENSE-ASL.txt b/solr-8.3.1/licenses/tika-java7-LICENSE-ASL.txt
index 8ba51ef6f..8ba51ef6f 100644
--- a/solr-8.1.1/licenses/tika-java7-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/tika-java7-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/tika-java7-NOTICE.txt b/solr-8.3.1/licenses/tika-java7-NOTICE.txt
index 7c1722d59..7c1722d59 100644
--- a/solr-8.1.1/licenses/tika-java7-NOTICE.txt
+++ b/solr-8.3.1/licenses/tika-java7-NOTICE.txt
diff --git a/solr-8.1.1/licenses/tika-parsers-1.19.1.jar.sha1 b/solr-8.3.1/licenses/tika-parsers-1.19.1.jar.sha1
index 638428d26..638428d26 100644
--- a/solr-8.1.1/licenses/tika-parsers-1.19.1.jar.sha1
+++ b/solr-8.3.1/licenses/tika-parsers-1.19.1.jar.sha1
diff --git a/solr-8.1.1/licenses/tika-parsers-LICENSE-ASL.txt b/solr-8.3.1/licenses/tika-parsers-LICENSE-ASL.txt
index 8ba51ef6f..8ba51ef6f 100644
--- a/solr-8.1.1/licenses/tika-parsers-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/tika-parsers-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/tika-parsers-NOTICE.txt b/solr-8.3.1/licenses/tika-parsers-NOTICE.txt
index e490b9ee4..e490b9ee4 100644
--- a/solr-8.1.1/licenses/tika-parsers-NOTICE.txt
+++ b/solr-8.3.1/licenses/tika-parsers-NOTICE.txt
diff --git a/solr-8.1.1/licenses/tika-xmp-1.19.1.jar.sha1 b/solr-8.3.1/licenses/tika-xmp-1.19.1.jar.sha1
index 80f251317..80f251317 100644
--- a/solr-8.1.1/licenses/tika-xmp-1.19.1.jar.sha1
+++ b/solr-8.3.1/licenses/tika-xmp-1.19.1.jar.sha1
diff --git a/solr-8.1.1/licenses/tika-xmp-LICENSE-ASL.txt b/solr-8.3.1/licenses/tika-xmp-LICENSE-ASL.txt
index ca855f4c3..ca855f4c3 100644
--- a/solr-8.1.1/licenses/tika-xmp-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/tika-xmp-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/tika-xmp-NOTICE.txt b/solr-8.3.1/licenses/tika-xmp-NOTICE.txt
index 52230b52a..52230b52a 100644
--- a/solr-8.1.1/licenses/tika-xmp-NOTICE.txt
+++ b/solr-8.3.1/licenses/tika-xmp-NOTICE.txt
diff --git a/solr-8.1.1/licenses/velocity-engine-core-2.0.jar.sha1 b/solr-8.3.1/licenses/velocity-engine-core-2.0.jar.sha1
index 9cbf13d1e..9cbf13d1e 100644
--- a/solr-8.1.1/licenses/velocity-engine-core-2.0.jar.sha1
+++ b/solr-8.3.1/licenses/velocity-engine-core-2.0.jar.sha1
diff --git a/solr-8.3.1/licenses/velocity-engine-core-LICENSE-ASL.txt b/solr-8.3.1/licenses/velocity-engine-core-LICENSE-ASL.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/solr-8.3.1/licenses/velocity-engine-core-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/velocity-engine-core-NOTICE.txt b/solr-8.3.1/licenses/velocity-engine-core-NOTICE.txt
index c016d50c0..c016d50c0 100644
--- a/solr-8.1.1/licenses/velocity-engine-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/velocity-engine-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/velocity-tools-generic-3.0.jar.sha1 b/solr-8.3.1/licenses/velocity-tools-generic-3.0.jar.sha1
index 018c1b394..018c1b394 100644
--- a/solr-8.1.1/licenses/velocity-tools-generic-3.0.jar.sha1
+++ b/solr-8.3.1/licenses/velocity-tools-generic-3.0.jar.sha1
diff --git a/solr-8.3.1/licenses/velocity-tools-generic-LICENSE-ASL.txt b/solr-8.3.1/licenses/velocity-tools-generic-LICENSE-ASL.txt
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/solr-8.3.1/licenses/velocity-tools-generic-LICENSE-ASL.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/velocity-tools-generic-NOTICE.txt b/solr-8.3.1/licenses/velocity-tools-generic-NOTICE.txt
index 7d6375e8d..7d6375e8d 100644
--- a/solr-8.1.1/licenses/velocity-tools-generic-NOTICE.txt
+++ b/solr-8.3.1/licenses/velocity-tools-generic-NOTICE.txt
diff --git a/solr-8.1.1/licenses/velocity-tools-view-3.0.jar.sha1 b/solr-8.3.1/licenses/velocity-tools-view-3.0.jar.sha1
index 67cf26514..67cf26514 100644
--- a/solr-8.1.1/licenses/velocity-tools-view-3.0.jar.sha1
+++ b/solr-8.3.1/licenses/velocity-tools-view-3.0.jar.sha1
diff --git a/solr-8.3.1/licenses/velocity-tools-view-LICENSE-ASL.txt b/solr-8.3.1/licenses/velocity-tools-view-LICENSE-ASL.txt
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/solr-8.3.1/licenses/velocity-tools-view-LICENSE-ASL.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/velocity-tools-view-NOTICE.txt b/solr-8.3.1/licenses/velocity-tools-view-NOTICE.txt
index 7d6375e8d..7d6375e8d 100644
--- a/solr-8.1.1/licenses/velocity-tools-view-NOTICE.txt
+++ b/solr-8.3.1/licenses/velocity-tools-view-NOTICE.txt
diff --git a/solr-8.1.1/licenses/velocity-tools-view-jsp-3.0.jar.sha1 b/solr-8.3.1/licenses/velocity-tools-view-jsp-3.0.jar.sha1
index 45dd7f863..45dd7f863 100644
--- a/solr-8.1.1/licenses/velocity-tools-view-jsp-3.0.jar.sha1
+++ b/solr-8.3.1/licenses/velocity-tools-view-jsp-3.0.jar.sha1
diff --git a/solr-8.3.1/licenses/velocity-tools-view-jsp-LICENSE-ASL.txt b/solr-8.3.1/licenses/velocity-tools-view-jsp-LICENSE-ASL.txt
new file mode 100644
index 000000000..261eeb9e9
--- /dev/null
+++ b/solr-8.3.1/licenses/velocity-tools-view-jsp-LICENSE-ASL.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/velocity-tools-view-jsp-NOTICE.txt b/solr-8.3.1/licenses/velocity-tools-view-jsp-NOTICE.txt
index 7d6375e8d..7d6375e8d 100644
--- a/solr-8.1.1/licenses/velocity-tools-view-jsp-NOTICE.txt
+++ b/solr-8.3.1/licenses/velocity-tools-view-jsp-NOTICE.txt
diff --git a/solr-8.1.1/licenses/vorbis-java-core-0.8.jar.sha1 b/solr-8.3.1/licenses/vorbis-java-core-0.8.jar.sha1
index dbff784db..dbff784db 100644
--- a/solr-8.1.1/licenses/vorbis-java-core-0.8.jar.sha1
+++ b/solr-8.3.1/licenses/vorbis-java-core-0.8.jar.sha1
diff --git a/solr-8.1.1/licenses/vorbis-java-core-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/vorbis-java-core-LICENSE-BSD_LIKE.txt
index 7cf076b68..7cf076b68 100644
--- a/solr-8.1.1/licenses/vorbis-java-core-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/vorbis-java-core-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/vorbis-java-core-NOTICE.txt b/solr-8.3.1/licenses/vorbis-java-core-NOTICE.txt
index 9791ae13f..9791ae13f 100644
--- a/solr-8.1.1/licenses/vorbis-java-core-NOTICE.txt
+++ b/solr-8.3.1/licenses/vorbis-java-core-NOTICE.txt
diff --git a/solr-8.1.1/licenses/vorbis-java-tika-0.8.jar.sha1 b/solr-8.3.1/licenses/vorbis-java-tika-0.8.jar.sha1
index 2b634bb68..2b634bb68 100644
--- a/solr-8.1.1/licenses/vorbis-java-tika-0.8.jar.sha1
+++ b/solr-8.3.1/licenses/vorbis-java-tika-0.8.jar.sha1
diff --git a/solr-8.1.1/licenses/vorbis-java-tika-LICENSE-BSD_LIKE.txt b/solr-8.3.1/licenses/vorbis-java-tika-LICENSE-BSD_LIKE.txt
index 7cf076b68..7cf076b68 100644
--- a/solr-8.1.1/licenses/vorbis-java-tika-LICENSE-BSD_LIKE.txt
+++ b/solr-8.3.1/licenses/vorbis-java-tika-LICENSE-BSD_LIKE.txt
diff --git a/solr-8.1.1/licenses/vorbis-java-tika-NOTICE.txt b/solr-8.3.1/licenses/vorbis-java-tika-NOTICE.txt
index 9791ae13f..9791ae13f 100644
--- a/solr-8.1.1/licenses/vorbis-java-tika-NOTICE.txt
+++ b/solr-8.3.1/licenses/vorbis-java-tika-NOTICE.txt
diff --git a/solr-8.1.1/licenses/woodstox-core-asl-4.4.1.jar.sha1 b/solr-8.3.1/licenses/woodstox-core-asl-4.4.1.jar.sha1
index 4432f2960..4432f2960 100644
--- a/solr-8.1.1/licenses/woodstox-core-asl-4.4.1.jar.sha1
+++ b/solr-8.3.1/licenses/woodstox-core-asl-4.4.1.jar.sha1
diff --git a/solr-8.3.1/licenses/woodstox-core-asl-LICENSE-ASL.txt b/solr-8.3.1/licenses/woodstox-core-asl-LICENSE-ASL.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/solr-8.3.1/licenses/woodstox-core-asl-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/woodstox-core-asl-NOTICE.txt b/solr-8.3.1/licenses/woodstox-core-asl-NOTICE.txt
index b7ba12b41..b7ba12b41 100644
--- a/solr-8.1.1/licenses/woodstox-core-asl-NOTICE.txt
+++ b/solr-8.3.1/licenses/woodstox-core-asl-NOTICE.txt
diff --git a/solr-8.1.1/licenses/xercesImpl-2.9.1.jar.sha1 b/solr-8.3.1/licenses/xercesImpl-2.9.1.jar.sha1
index 86ebad926..86ebad926 100644
--- a/solr-8.1.1/licenses/xercesImpl-2.9.1.jar.sha1
+++ b/solr-8.3.1/licenses/xercesImpl-2.9.1.jar.sha1
diff --git a/solr-8.1.1/licenses/xercesImpl-LICENSE-ASL.txt b/solr-8.3.1/licenses/xercesImpl-LICENSE-ASL.txt
index a075407ae..a075407ae 100644
--- a/solr-8.1.1/licenses/xercesImpl-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/xercesImpl-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/xercesImpl-NOTICE.txt b/solr-8.3.1/licenses/xercesImpl-NOTICE.txt
index ff78126d9..ff78126d9 100644
--- a/solr-8.1.1/licenses/xercesImpl-NOTICE.txt
+++ b/solr-8.3.1/licenses/xercesImpl-NOTICE.txt
diff --git a/solr-8.1.1/licenses/xmlbeans-3.0.1.jar.sha1 b/solr-8.3.1/licenses/xmlbeans-3.0.1.jar.sha1
index 5b1d35828..5b1d35828 100644
--- a/solr-8.1.1/licenses/xmlbeans-3.0.1.jar.sha1
+++ b/solr-8.3.1/licenses/xmlbeans-3.0.1.jar.sha1
diff --git a/solr-8.1.1/licenses/xmlbeans-LICENSE-ASL.txt b/solr-8.3.1/licenses/xmlbeans-LICENSE-ASL.txt
index 57bc88a15..57bc88a15 100644
--- a/solr-8.1.1/licenses/xmlbeans-LICENSE-ASL.txt
+++ b/solr-8.3.1/licenses/xmlbeans-LICENSE-ASL.txt
diff --git a/solr-8.1.1/licenses/xmlbeans-NOTICE.txt b/solr-8.3.1/licenses/xmlbeans-NOTICE.txt
index 906cc4c96..906cc4c96 100644
--- a/solr-8.1.1/licenses/xmlbeans-NOTICE.txt
+++ b/solr-8.3.1/licenses/xmlbeans-NOTICE.txt
diff --git a/solr-8.1.1/licenses/xmpcore-5.1.3.jar.sha1 b/solr-8.3.1/licenses/xmpcore-5.1.3.jar.sha1
index bab995752..bab995752 100644
--- a/solr-8.1.1/licenses/xmpcore-5.1.3.jar.sha1
+++ b/solr-8.3.1/licenses/xmpcore-5.1.3.jar.sha1
diff --git a/solr-8.1.1/licenses/xmpcore-LICENSE-BSD.txt b/solr-8.3.1/licenses/xmpcore-LICENSE-BSD.txt
index 18064b772..18064b772 100644
--- a/solr-8.1.1/licenses/xmpcore-LICENSE-BSD.txt
+++ b/solr-8.3.1/licenses/xmpcore-LICENSE-BSD.txt
diff --git a/solr-8.3.1/licenses/xmpcore-NOTICE.txt b/solr-8.3.1/licenses/xmpcore-NOTICE.txt
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/solr-8.3.1/licenses/xmpcore-NOTICE.txt
@@ -0,0 +1 @@
+
diff --git a/solr-8.1.1/licenses/xz-1.8.jar.sha1 b/solr-8.3.1/licenses/xz-1.8.jar.sha1
index 2f7c24694..2f7c24694 100644
--- a/solr-8.1.1/licenses/xz-1.8.jar.sha1
+++ b/solr-8.3.1/licenses/xz-1.8.jar.sha1
diff --git a/solr-8.1.1/licenses/xz-LICENSE-PD.txt b/solr-8.3.1/licenses/xz-LICENSE-PD.txt
index bb6c299df..bb6c299df 100644
--- a/solr-8.1.1/licenses/xz-LICENSE-PD.txt
+++ b/solr-8.3.1/licenses/xz-LICENSE-PD.txt
diff --git a/solr-8.1.1/licenses/xz-NOTICE.txt b/solr-8.3.1/licenses/xz-NOTICE.txt
index bb6c299df..bb6c299df 100644
--- a/solr-8.1.1/licenses/xz-NOTICE.txt
+++ b/solr-8.3.1/licenses/xz-NOTICE.txt
diff --git a/solr-8.3.1/licenses/zookeeper-3.5.5.jar.sha1 b/solr-8.3.1/licenses/zookeeper-3.5.5.jar.sha1
new file mode 100644
index 000000000..56c9d9936
--- /dev/null
+++ b/solr-8.3.1/licenses/zookeeper-3.5.5.jar.sha1
@@ -0,0 +1 @@
+dd9c924e9d4be7c79e46261691e96d030736a8ac
diff --git a/solr-8.3.1/licenses/zookeeper-LICENSE-ASL.txt b/solr-8.3.1/licenses/zookeeper-LICENSE-ASL.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/solr-8.3.1/licenses/zookeeper-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.1.1/licenses/zookeeper-NOTICE.txt b/solr-8.3.1/licenses/zookeeper-NOTICE.txt
index 54c971ea4..54c971ea4 100644
--- a/solr-8.1.1/licenses/zookeeper-NOTICE.txt
+++ b/solr-8.3.1/licenses/zookeeper-NOTICE.txt
diff --git a/solr-8.3.1/licenses/zookeeper-jute-3.5.5.jar.sha1 b/solr-8.3.1/licenses/zookeeper-jute-3.5.5.jar.sha1
new file mode 100644
index 000000000..a0761639f
--- /dev/null
+++ b/solr-8.3.1/licenses/zookeeper-jute-3.5.5.jar.sha1
@@ -0,0 +1 @@
+3785011a665bd5c7dedd025110543d967f17f8e3
diff --git a/solr-8.3.1/licenses/zookeeper-jute-LICENSE-ASL.txt b/solr-8.3.1/licenses/zookeeper-jute-LICENSE-ASL.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/solr-8.3.1/licenses/zookeeper-jute-LICENSE-ASL.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/solr-8.3.1/licenses/zookeeper-jute-NOTICE.txt b/solr-8.3.1/licenses/zookeeper-jute-NOTICE.txt
new file mode 100644
index 000000000..54c971ea4
--- /dev/null
+++ b/solr-8.3.1/licenses/zookeeper-jute-NOTICE.txt
@@ -0,0 +1,5 @@
+Apache Zookeeper
+Copyright 2011 The Apache Software Foundation
+
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/solr-8.1.1/server/README.txt b/solr-8.3.1/server/README.txt
index d4b421cac..d4b421cac 100644
--- a/solr-8.1.1/server/README.txt
+++ b/solr-8.3.1/server/README.txt
diff --git a/solr-8.1.1/server/contexts/solr-jetty-context.xml b/solr-8.3.1/server/contexts/solr-jetty-context.xml
index 6392cd11b..6392cd11b 100644
--- a/solr-8.1.1/server/contexts/solr-jetty-context.xml
+++ b/solr-8.3.1/server/contexts/solr-jetty-context.xml
diff --git a/solr-8.1.1/server/etc/jetty-http.xml b/solr-8.3.1/server/etc/jetty-http.xml
index 65b979ea1..65b979ea1 100644
--- a/solr-8.1.1/server/etc/jetty-http.xml
+++ b/solr-8.3.1/server/etc/jetty-http.xml
diff --git a/solr-8.1.1/server/etc/jetty-https.xml b/solr-8.3.1/server/etc/jetty-https.xml
index 41c3f197d..41c3f197d 100644
--- a/solr-8.1.1/server/etc/jetty-https.xml
+++ b/solr-8.3.1/server/etc/jetty-https.xml
diff --git a/solr-8.1.1/server/etc/jetty-https8.xml b/solr-8.3.1/server/etc/jetty-https8.xml
index d8f38b602..d8f38b602 100644
--- a/solr-8.1.1/server/etc/jetty-https8.xml
+++ b/solr-8.3.1/server/etc/jetty-https8.xml
diff --git a/solr-8.1.1/server/etc/jetty-ssl.xml b/solr-8.3.1/server/etc/jetty-ssl.xml
index 9ff5accf4..367064131 100644
--- a/solr-8.1.1/server/etc/jetty-ssl.xml
+++ b/solr-8.3.1/server/etc/jetty-ssl.xml
@@ -17,6 +17,7 @@
<Set name="TrustStorePassword"><Ref refid="trustStorePassword"/></Set>
<Set name="NeedClientAuth"><Property name="solr.jetty.ssl.needClientAuth" default="false"/></Set>
<Set name="WantClientAuth"><Property name="solr.jetty.ssl.wantClientAuth" default="false"/></Set>
+ <Set name="EndpointIdentificationAlgorithm"><Property name="solr.jetty.ssl.verifyClientHostName"/></Set>
<Set name="KeyStoreType"><Property name="solr.jetty.keystore.type" default="JKS"/></Set>
<Set name="TrustStoreType"><Property name="solr.jetty.truststore.type" default="JKS"/></Set>
diff --git a/solr-8.1.1/server/etc/jetty.xml b/solr-8.3.1/server/etc/jetty.xml
index 1f6de775a..1f6de775a 100644
--- a/solr-8.1.1/server/etc/jetty.xml
+++ b/solr-8.3.1/server/etc/jetty.xml
diff --git a/solr-8.1.1/server/etc/webdefault.xml b/solr-8.3.1/server/etc/webdefault.xml
index f0882926a..f0882926a 100644
--- a/solr-8.1.1/server/etc/webdefault.xml
+++ b/solr-8.3.1/server/etc/webdefault.xml
diff --git a/solr-8.1.1/server/lib/ext/disruptor-3.4.2.jar b/solr-8.3.1/server/lib/ext/disruptor-3.4.2.jar
index b366bbebc..b366bbebc 100644
--- a/solr-8.1.1/server/lib/ext/disruptor-3.4.2.jar
+++ b/solr-8.3.1/server/lib/ext/disruptor-3.4.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/ext/jcl-over-slf4j-1.7.24.jar b/solr-8.3.1/server/lib/ext/jcl-over-slf4j-1.7.24.jar
index 2ea9e3748..2ea9e3748 100644
--- a/solr-8.1.1/server/lib/ext/jcl-over-slf4j-1.7.24.jar
+++ b/solr-8.3.1/server/lib/ext/jcl-over-slf4j-1.7.24.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/ext/jul-to-slf4j-1.7.24.jar b/solr-8.3.1/server/lib/ext/jul-to-slf4j-1.7.24.jar
index 82f8d17c0..82f8d17c0 100644
--- a/solr-8.1.1/server/lib/ext/jul-to-slf4j-1.7.24.jar
+++ b/solr-8.3.1/server/lib/ext/jul-to-slf4j-1.7.24.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/ext/log4j-1.2-api-2.11.2.jar b/solr-8.3.1/server/lib/ext/log4j-1.2-api-2.11.2.jar
index 871e2e121..871e2e121 100644
--- a/solr-8.1.1/server/lib/ext/log4j-1.2-api-2.11.2.jar
+++ b/solr-8.3.1/server/lib/ext/log4j-1.2-api-2.11.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/ext/log4j-api-2.11.2.jar b/solr-8.3.1/server/lib/ext/log4j-api-2.11.2.jar
index 809773c0b..809773c0b 100644
--- a/solr-8.1.1/server/lib/ext/log4j-api-2.11.2.jar
+++ b/solr-8.3.1/server/lib/ext/log4j-api-2.11.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/ext/log4j-core-2.11.2.jar b/solr-8.3.1/server/lib/ext/log4j-core-2.11.2.jar
index dcb652cb7..dcb652cb7 100644
--- a/solr-8.1.1/server/lib/ext/log4j-core-2.11.2.jar
+++ b/solr-8.3.1/server/lib/ext/log4j-core-2.11.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/ext/log4j-slf4j-impl-2.11.2.jar b/solr-8.3.1/server/lib/ext/log4j-slf4j-impl-2.11.2.jar
index ce8acdaae..ce8acdaae 100644
--- a/solr-8.1.1/server/lib/ext/log4j-slf4j-impl-2.11.2.jar
+++ b/solr-8.3.1/server/lib/ext/log4j-slf4j-impl-2.11.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/ext/log4j-web-2.11.2.jar b/solr-8.3.1/server/lib/ext/log4j-web-2.11.2.jar
index e907eddb7..e907eddb7 100644
--- a/solr-8.1.1/server/lib/ext/log4j-web-2.11.2.jar
+++ b/solr-8.3.1/server/lib/ext/log4j-web-2.11.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/ext/slf4j-api-1.7.24.jar b/solr-8.3.1/server/lib/ext/slf4j-api-1.7.24.jar
index 05941a12f..05941a12f 100644
--- a/solr-8.1.1/server/lib/ext/slf4j-api-1.7.24.jar
+++ b/solr-8.3.1/server/lib/ext/slf4j-api-1.7.24.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/http2-common-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/http2-common-9.4.19.v20190610.jar
index 7df413df3..0036e2dfd 100644
--- a/solr-8.1.1/server/lib/http2-common-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/http2-common-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/http2-hpack-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/http2-hpack-9.4.19.v20190610.jar
index 201bfab50..40ba03149 100644
--- a/solr-8.1.1/server/lib/http2-hpack-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/http2-hpack-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/http2-server-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/http2-server-9.4.19.v20190610.jar
index a8093043a..3ec039f68 100644
--- a/solr-8.1.1/server/lib/http2-server-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/http2-server-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/javax.servlet-api-3.1.0.jar b/solr-8.3.1/server/lib/javax.servlet-api-3.1.0.jar
index 6b14c3d26..6b14c3d26 100644
--- a/solr-8.1.1/server/lib/javax.servlet-api-3.1.0.jar
+++ b/solr-8.3.1/server/lib/javax.servlet-api-3.1.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-alpn-java-server-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/jetty-alpn-java-server-9.4.19.v20190610.jar
index 72f499434..25d872963 100644
--- a/solr-8.1.1/server/lib/jetty-alpn-java-server-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/jetty-alpn-java-server-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-alpn-server-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/jetty-alpn-server-9.4.19.v20190610.jar
index 60490c913..6c1d1b838 100644
--- a/solr-8.1.1/server/lib/jetty-alpn-server-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/jetty-alpn-server-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-continuation-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/jetty-continuation-9.4.19.v20190610.jar
index 86f8c3b17..4c6eb054b 100644
--- a/solr-8.1.1/server/lib/jetty-continuation-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/jetty-continuation-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/lib/jetty-deploy-9.4.19.v20190610.jar b/solr-8.3.1/server/lib/jetty-deploy-9.4.19.v20190610.jar
new file mode 100644
index 000000000..6dbd04bb3
--- /dev/null
+++ b/solr-8.3.1/server/lib/jetty-deploy-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/lib/jetty-http-9.4.19.v20190610.jar b/solr-8.3.1/server/lib/jetty-http-9.4.19.v20190610.jar
new file mode 100644
index 000000000..e01b23cf4
--- /dev/null
+++ b/solr-8.3.1/server/lib/jetty-http-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/lib/jetty-io-9.4.19.v20190610.jar b/solr-8.3.1/server/lib/jetty-io-9.4.19.v20190610.jar
new file mode 100644
index 000000000..d21c6da4e
--- /dev/null
+++ b/solr-8.3.1/server/lib/jetty-io-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-jmx-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/jetty-jmx-9.4.19.v20190610.jar
index d8f4e0a14..a97a6f637 100644
--- a/solr-8.1.1/server/lib/jetty-jmx-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/jetty-jmx-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-rewrite-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/jetty-rewrite-9.4.19.v20190610.jar
index 7671e5efa..1b3d3992b 100644
--- a/solr-8.1.1/server/lib/jetty-rewrite-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/jetty-rewrite-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/lib/jetty-security-9.4.19.v20190610.jar b/solr-8.3.1/server/lib/jetty-security-9.4.19.v20190610.jar
new file mode 100644
index 000000000..5fc1e2008
--- /dev/null
+++ b/solr-8.3.1/server/lib/jetty-security-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/lib/jetty-server-9.4.19.v20190610.jar b/solr-8.3.1/server/lib/jetty-server-9.4.19.v20190610.jar
new file mode 100644
index 000000000..7de221171
--- /dev/null
+++ b/solr-8.3.1/server/lib/jetty-server-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/lib/jetty-servlet-9.4.19.v20190610.jar b/solr-8.3.1/server/lib/jetty-servlet-9.4.19.v20190610.jar
new file mode 100644
index 000000000..9e68e455a
--- /dev/null
+++ b/solr-8.3.1/server/lib/jetty-servlet-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-servlets-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/jetty-servlets-9.4.19.v20190610.jar
index 36a6b056d..13d97f672 100644
--- a/solr-8.1.1/server/lib/jetty-servlets-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/jetty-servlets-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-util-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/jetty-util-9.4.19.v20190610.jar
index fb2d3e13a..5407c94fb 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-util-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/jetty-util-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-webapp-9.4.14.v20181114.jar b/solr-8.3.1/server/lib/jetty-webapp-9.4.19.v20190610.jar
index 058912146..b63559b82 100644
--- a/solr-8.1.1/server/lib/jetty-webapp-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/lib/jetty-webapp-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/lib/jetty-xml-9.4.19.v20190610.jar b/solr-8.3.1/server/lib/jetty-xml-9.4.19.v20190610.jar
new file mode 100644
index 000000000..26fbeb936
--- /dev/null
+++ b/solr-8.3.1/server/lib/jetty-xml-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/metrics-core-4.0.5.jar b/solr-8.3.1/server/lib/metrics-core-4.0.5.jar
index 51a23f4a5..51a23f4a5 100644
--- a/solr-8.1.1/server/lib/metrics-core-4.0.5.jar
+++ b/solr-8.3.1/server/lib/metrics-core-4.0.5.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/metrics-graphite-4.0.5.jar b/solr-8.3.1/server/lib/metrics-graphite-4.0.5.jar
index a153ce079..a153ce079 100644
--- a/solr-8.1.1/server/lib/metrics-graphite-4.0.5.jar
+++ b/solr-8.3.1/server/lib/metrics-graphite-4.0.5.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/metrics-jetty9-4.0.5.jar b/solr-8.3.1/server/lib/metrics-jetty9-4.0.5.jar
index c06dc16c0..c06dc16c0 100644
--- a/solr-8.1.1/server/lib/metrics-jetty9-4.0.5.jar
+++ b/solr-8.3.1/server/lib/metrics-jetty9-4.0.5.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/metrics-jmx-4.0.5.jar b/solr-8.3.1/server/lib/metrics-jmx-4.0.5.jar
index 773a83000..773a83000 100644
--- a/solr-8.1.1/server/lib/metrics-jmx-4.0.5.jar
+++ b/solr-8.3.1/server/lib/metrics-jmx-4.0.5.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/metrics-jvm-4.0.5.jar b/solr-8.3.1/server/lib/metrics-jvm-4.0.5.jar
index bb296705f..bb296705f 100644
--- a/solr-8.1.1/server/lib/metrics-jvm-4.0.5.jar
+++ b/solr-8.3.1/server/lib/metrics-jvm-4.0.5.jar
Binary files differ
diff --git a/solr-8.1.1/server/modules/http.mod b/solr-8.3.1/server/modules/http.mod
index d4ceec512..d4ceec512 100644
--- a/solr-8.1.1/server/modules/http.mod
+++ b/solr-8.3.1/server/modules/http.mod
diff --git a/solr-8.1.1/server/modules/https.mod b/solr-8.3.1/server/modules/https.mod
index 8affbcf60..8affbcf60 100644
--- a/solr-8.1.1/server/modules/https.mod
+++ b/solr-8.3.1/server/modules/https.mod
diff --git a/solr-8.1.1/server/modules/https8.mod b/solr-8.3.1/server/modules/https8.mod
index f799f6bd0..f799f6bd0 100644
--- a/solr-8.1.1/server/modules/https8.mod
+++ b/solr-8.3.1/server/modules/https8.mod
diff --git a/solr-8.1.1/server/modules/server.mod b/solr-8.3.1/server/modules/server.mod
index 0d60a9e3f..0d60a9e3f 100644
--- a/solr-8.1.1/server/modules/server.mod
+++ b/solr-8.3.1/server/modules/server.mod
diff --git a/solr-8.1.1/server/modules/ssl.mod b/solr-8.3.1/server/modules/ssl.mod
index 091e3dea0..091e3dea0 100644
--- a/solr-8.1.1/server/modules/ssl.mod
+++ b/solr-8.3.1/server/modules/ssl.mod
diff --git a/solr-8.1.1/server/resources/jetty-logging.properties b/solr-8.3.1/server/resources/jetty-logging.properties
index e7a31b0d5..e7a31b0d5 100644
--- a/solr-8.1.1/server/resources/jetty-logging.properties
+++ b/solr-8.3.1/server/resources/jetty-logging.properties
diff --git a/solr-8.1.1/server/resources/log4j2-console.xml b/solr-8.3.1/server/resources/log4j2-console.xml
index e83edf942..e83edf942 100644
--- a/solr-8.1.1/server/resources/log4j2-console.xml
+++ b/solr-8.3.1/server/resources/log4j2-console.xml
diff --git a/solr-8.1.1/server/resources/log4j2.xml b/solr-8.3.1/server/resources/log4j2.xml
index e76973da6..e76973da6 100644
--- a/solr-8.1.1/server/resources/log4j2.xml
+++ b/solr-8.3.1/server/resources/log4j2.xml
diff --git a/solr-8.1.1/server/scripts/cloud-scripts/snapshotscli.sh b/solr-8.3.1/server/scripts/cloud-scripts/snapshotscli.sh
index e5a26d645..e5a26d645 100644
--- a/solr-8.1.1/server/scripts/cloud-scripts/snapshotscli.sh
+++ b/solr-8.3.1/server/scripts/cloud-scripts/snapshotscli.sh
diff --git a/solr-8.1.1/server/scripts/cloud-scripts/zkcli.bat b/solr-8.3.1/server/scripts/cloud-scripts/zkcli.bat
index 7005b63a5..7005b63a5 100644
--- a/solr-8.1.1/server/scripts/cloud-scripts/zkcli.bat
+++ b/solr-8.3.1/server/scripts/cloud-scripts/zkcli.bat
diff --git a/solr-8.1.1/server/scripts/cloud-scripts/zkcli.sh b/solr-8.3.1/server/scripts/cloud-scripts/zkcli.sh
index 37b1ec9aa..37b1ec9aa 100644
--- a/solr-8.1.1/server/scripts/cloud-scripts/zkcli.sh
+++ b/solr-8.3.1/server/scripts/cloud-scripts/zkcli.sh
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/antlr4-runtime-4.5.1-1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/antlr4-runtime-4.5.1-1.jar
index 387129d64..387129d64 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/antlr4-runtime-4.5.1-1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/antlr4-runtime-4.5.1-1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/asm-5.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/asm-5.1.jar
index 18433c1a2..18433c1a2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/asm-5.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/asm-5.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/asm-commons-5.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/asm-commons-5.1.jar
index 2c8d5b478..2c8d5b478 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/asm-commons-5.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/asm-commons-5.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/avatica-core-1.13.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/avatica-core-1.13.0.jar
index a50876842..a50876842 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/avatica-core-1.13.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/avatica-core-1.13.0.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/caffeine-2.8.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/caffeine-2.8.0.jar
new file mode 100644
index 000000000..29d782583
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/caffeine-2.8.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-core-1.18.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-core-1.18.0.jar
index a814080a2..a814080a2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-core-1.18.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-core-1.18.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-linq4j-1.18.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-linq4j-1.18.0.jar
index dc5002d5b..dc5002d5b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-linq4j-1.18.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/calcite-linq4j-1.18.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-cli-1.2.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-cli-1.2.jar
index ce4b9fffe..ce4b9fffe 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-cli-1.2.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-cli-1.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-codec-1.11.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-codec-1.11.jar
index 22451206d..22451206d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-codec-1.11.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-codec-1.11.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-collections-3.2.2.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-collections-3.2.2.jar
index fa5df82a6..fa5df82a6 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-collections-3.2.2.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-collections-3.2.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-compiler-3.0.9.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-compiler-3.0.9.jar
index 2866a6662..2866a6662 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-compiler-3.0.9.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-compiler-3.0.9.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-configuration2-2.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-configuration2-2.1.1.jar
index 666baa09d..666baa09d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-configuration2-2.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-configuration2-2.1.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-exec-1.3.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-exec-1.3.jar
index 9a6435198..9a6435198 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-exec-1.3.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-exec-1.3.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-fileupload-1.3.3.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-fileupload-1.3.3.jar
index 915d87e74..915d87e74 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-fileupload-1.3.3.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-fileupload-1.3.3.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-io-2.5.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-io-2.5.jar
index 107b061f5..107b061f5 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-io-2.5.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-io-2.5.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-lang3-3.8.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-lang3-3.8.1.jar
index 2c65ce67d..2c65ce67d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-lang3-3.8.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-lang3-3.8.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-math3-3.6.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-math3-3.6.1.jar
index 0ff582cfc..0ff582cfc 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-math3-3.6.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-math3-3.6.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-text-1.6.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-text-1.6.jar
index 63e47300c..63e47300c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/commons-text-1.6.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/commons-text-1.6.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/curator-client-2.13.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/curator-client-2.13.0.jar
index 7c01fbe81..7c01fbe81 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/curator-client-2.13.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/curator-client-2.13.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/curator-framework-2.13.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/curator-framework-2.13.0.jar
index 46cada077..46cada077 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/curator-framework-2.13.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/curator-framework-2.13.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/curator-recipes-2.13.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/curator-recipes-2.13.0.jar
index caf7b8749..caf7b8749 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/curator-recipes-2.13.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/curator-recipes-2.13.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/disruptor-3.4.2.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/disruptor-3.4.2.jar
index b366bbebc..b366bbebc 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/disruptor-3.4.2.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/disruptor-3.4.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/eigenbase-properties-1.1.5.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/eigenbase-properties-1.1.5.jar
index 786c6c6a2..786c6c6a2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/eigenbase-properties-1.1.5.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/eigenbase-properties-1.1.5.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/guava-25.1-jre.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/guava-25.1-jre.jar
index babc17553..babc17553 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/guava-25.1-jre.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/guava-25.1-jre.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-annotations-3.2.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-annotations-3.2.0.jar
index 0a52d1b6d..0a52d1b6d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-annotations-3.2.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-annotations-3.2.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-auth-3.2.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-auth-3.2.0.jar
index 683f3f7d1..683f3f7d1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-auth-3.2.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-auth-3.2.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-common-3.2.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-common-3.2.0.jar
index 77a00c750..77a00c750 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-common-3.2.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-common-3.2.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-hdfs-client-3.2.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-hdfs-client-3.2.0.jar
index 59afc3eaf..59afc3eaf 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-hdfs-client-3.2.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hadoop-hdfs-client-3.2.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hppc-0.8.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hppc-0.8.1.jar
index 39a7c24db..39a7c24db 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/hppc-0.8.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/hppc-0.8.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/htrace-core4-4.1.0-incubating.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/htrace-core4-4.1.0-incubating.jar
index 12349a206..12349a206 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/htrace-core4-4.1.0-incubating.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/htrace-core4-4.1.0-incubating.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-client-9.4.14.v20181114.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-client-9.4.19.v20190610.jar
index aa4d26091..4b86470ea 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-client-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-client-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-common-9.4.14.v20181114.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-common-9.4.19.v20190610.jar
index 7df413df3..0036e2dfd 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-common-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-common-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-hpack-9.4.14.v20181114.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-hpack-9.4.19.v20190610.jar
index 201bfab50..40ba03149 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/http2-hpack-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-hpack-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-http-client-transport-9.4.19.v20190610.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-http-client-transport-9.4.19.v20190610.jar
new file mode 100644
index 000000000..f414c53fe
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/http2-http-client-transport-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/httpclient-4.5.6.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/httpclient-4.5.6.jar
index 56231de0c..56231de0c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/httpclient-4.5.6.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/httpclient-4.5.6.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/httpcore-4.4.10.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/httpcore-4.4.10.jar
index dc510f81c..dc510f81c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/httpcore-4.4.10.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/httpcore-4.4.10.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/httpmime-4.5.6.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/httpmime-4.5.6.jar
index df5a7d195..df5a7d195 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/httpmime-4.5.6.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/httpmime-4.5.6.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lib/jackson-annotations-2.9.8.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-annotations-2.9.9.jar
index 4d9f42153..8e059d971 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lib/jackson-annotations-2.9.8.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-annotations-2.9.9.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-core-2.9.8.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-core-2.9.9.jar
index 362f1f393..02bd446dd 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-core-2.9.8.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-core-2.9.9.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-databind-2.9.8.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-databind-2.9.9.3.jar
index 2d8687b5d..5bf4ba88d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-databind-2.9.8.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-databind-2.9.9.3.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-dataformat-smile-2.9.8.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-dataformat-smile-2.9.9.jar
index ba565e587..b2a65238e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-dataformat-smile-2.9.8.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jackson-dataformat-smile-2.9.9.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/janino-3.0.9.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/janino-3.0.9.jar
index 761e0c2a0..761e0c2a0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/janino-3.0.9.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/janino-3.0.9.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-client-9.4.14.v20181114.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-client-9.4.19.v20190610.jar
index 7ae5a277e..86593a322 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-client-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-client-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-java-client-9.4.14.v20181114.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-java-client-9.4.19.v20190610.jar
index f184cefbd..33053ee72 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-java-client-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-alpn-java-client-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-client-9.4.14.v20181114.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-client-9.4.19.v20190610.jar
index 8e4d57110..4699df44b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-client-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-client-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-http-9.4.19.v20190610.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-http-9.4.19.v20190610.jar
new file mode 100644
index 000000000..e01b23cf4
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-http-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-io-9.4.19.v20190610.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-io-9.4.19.v20190610.jar
new file mode 100644
index 000000000..d21c6da4e
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-io-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/lib/jetty-util-9.4.14.v20181114.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-util-9.4.19.v20190610.jar
index fb2d3e13a..5407c94fb 100644
--- a/solr-8.1.1/server/lib/jetty-util-9.4.14.v20181114.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jetty-util-9.4.19.v20190610.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jose4j-0.6.5.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jose4j-0.6.5.jar
index 02c0a5a66..02c0a5a66 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/jose4j-0.6.5.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/jose4j-0.6.5.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/json-path-2.4.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/json-path-2.4.0.jar
index 6229306b8..6229306b8 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/json-path-2.4.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/json-path-2.4.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-core-1.0.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-core-1.0.1.jar
index 655c87a62..655c87a62 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-core-1.0.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-core-1.0.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-util-1.0.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-util-1.0.1.jar
index 8b9b24450..8b9b24450 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-util-1.0.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerb-util-1.0.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-asn1-1.0.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-asn1-1.0.1.jar
index 6488b7462..6488b7462 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-asn1-1.0.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-asn1-1.0.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-pkix-1.0.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-pkix-1.0.1.jar
index 443d98189..443d98189 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-pkix-1.0.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/kerby-pkix-1.0.1.jar
Binary files differ
diff --git a/solr-8.1.1/contrib/prometheus-exporter/lucene-libs/lucene-analyzers-common-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-common-8.3.1.jar
index fb4388552..9fb59d2e7 100644
--- a/solr-8.1.1/contrib/prometheus-exporter/lucene-libs/lucene-analyzers-common-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-common-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-kuromoji-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-kuromoji-8.3.1.jar
index da833bcb3..b8ecbfdcc 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-kuromoji-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-kuromoji-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-nori-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-nori-8.3.1.jar
index c3f42e1f9..2f964b7fb 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-nori-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-nori-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-phonetic-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-phonetic-8.3.1.jar
index 94541abbe..6c0dc222c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-phonetic-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-phonetic-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-backward-codecs-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-backward-codecs-8.3.1.jar
index 99a02fc7d..d97c42b0f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-backward-codecs-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-backward-codecs-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-classification-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-classification-8.3.1.jar
index 6bfbc6824..6a52a0cbb 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-classification-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-classification-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-codecs-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-codecs-8.3.1.jar
index 0e00e7812..02a6f5b1e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-codecs-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-codecs-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-core-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-core-8.3.1.jar
index 33661da09..f468e7631 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-core-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-core-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-expressions-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-expressions-8.3.1.jar
index 0dc8bf6b9..b084e9386 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-expressions-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-expressions-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-grouping-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-grouping-8.3.1.jar
index 58e2ad688..f9827b989 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-grouping-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-grouping-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-highlighter-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-highlighter-8.3.1.jar
index 95a1e6859..d39126067 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-highlighter-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-highlighter-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-join-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-join-8.3.1.jar
index 1a3068f69..be1ff7f06 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-join-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-join-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-memory-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-memory-8.3.1.jar
index ada919263..17f449311 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-memory-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-memory-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-misc-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-misc-8.3.1.jar
index 70d0a8a3e..48937b5f1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-misc-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-misc-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queries-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queries-8.3.1.jar
index 374c1e824..8e51fa640 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queries-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queries-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queryparser-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queryparser-8.3.1.jar
index 74a654af9..55752055d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queryparser-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-queryparser-8.3.1.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-8.3.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-8.3.1.jar
new file mode 100644
index 000000000..2c70bdb2e
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial-extras-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial-extras-8.3.1.jar
index 99255b118..497e7c1aa 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial-extras-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial-extras-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial3d-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial3d-8.3.1.jar
index 92344f201..0d9ca18e2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial3d-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial3d-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-suggest-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-suggest-8.3.1.jar
index ca2a61b7b..920288be9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-suggest-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/lucene-suggest-8.3.1.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-buffer-4.1.29.Final.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-buffer-4.1.29.Final.jar
new file mode 100644
index 000000000..b95433e35
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-buffer-4.1.29.Final.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-codec-4.1.29.Final.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-codec-4.1.29.Final.jar
new file mode 100644
index 000000000..b6f131f3f
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-codec-4.1.29.Final.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-common-4.1.29.Final.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-common-4.1.29.Final.jar
new file mode 100644
index 000000000..0ee1d2c7a
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-common-4.1.29.Final.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-handler-4.1.29.Final.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-handler-4.1.29.Final.jar
new file mode 100644
index 000000000..8a2f54491
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-handler-4.1.29.Final.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-resolver-4.1.29.Final.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-resolver-4.1.29.Final.jar
new file mode 100644
index 000000000..ca466f6dd
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-resolver-4.1.29.Final.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-4.1.29.Final.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-4.1.29.Final.jar
new file mode 100644
index 000000000..ff712afd4
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-4.1.29.Final.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-native-epoll-4.1.29.Final.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-native-epoll-4.1.29.Final.jar
new file mode 100644
index 000000000..4a730c599
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-native-epoll-4.1.29.Final.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-native-unix-common-4.1.29.Final.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-native-unix-common-4.1.29.Final.jar
new file mode 100644
index 000000000..c9e8387be
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/netty-transport-native-unix-common-4.1.29.Final.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-api-0.33.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-api-0.33.0.jar
new file mode 100644
index 000000000..e3d65567d
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-api-0.33.0.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-noop-0.33.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-noop-0.33.0.jar
new file mode 100644
index 000000000..f5101f859
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-noop-0.33.0.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-util-0.33.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-util-0.33.0.jar
new file mode 100644
index 000000000..5e5e2e1fa
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/opentracing-util-0.33.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet-2.3.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet-2.3.0.jar
index 64549e498..64549e498 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet-2.3.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet-2.3.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet.ext.servlet-2.3.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet.ext.servlet-2.3.0.jar
index 58a884ab9..58a884ab9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet.ext.servlet-2.3.0.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/org.restlet.ext.servlet-2.3.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/protobuf-java-3.6.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/protobuf-java-3.6.1.jar
index 8a187891f..8a187891f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/protobuf-java-3.6.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/protobuf-java-3.6.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/re2j-1.2.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/re2j-1.2.jar
index 945db1ca0..945db1ca0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/re2j-1.2.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/re2j-1.2.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/rrd4j-3.5.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/rrd4j-3.5.jar
index 535ea8fbe..535ea8fbe 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/rrd4j-3.5.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/rrd4j-3.5.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/s2-geometry-library-java-1.0.0.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/s2-geometry-library-java-1.0.0.jar
new file mode 100644
index 000000000..87638c075
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/s2-geometry-library-java-1.0.0.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/solr-core-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/solr-core-8.3.1.jar
index 4aae4028b..108fa7268 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/solr-core-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/solr-core-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/solr-solrj-8.1.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/solr-solrj-8.3.1.jar
index 8664d0a96..587742f53 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/solr-solrj-8.1.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/solr-solrj-8.3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/spatial4j-0.7.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/spatial4j-0.7.jar
index feb2e02aa..feb2e02aa 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/spatial4j-0.7.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/spatial4j-0.7.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/stax2-api-3.1.4.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/stax2-api-3.1.4.jar
index dded03692..dded03692 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/stax2-api-3.1.4.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/stax2-api-3.1.4.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/t-digest-3.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/t-digest-3.1.jar
index a638007a8..a638007a8 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/t-digest-3.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/t-digest-3.1.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/woodstox-core-asl-4.4.1.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/woodstox-core-asl-4.4.1.jar
index d8b4e8cf8..d8b4e8cf8 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/lib/woodstox-core-asl-4.4.1.jar
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/woodstox-core-asl-4.4.1.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.5.5.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.5.5.jar
new file mode 100644
index 000000000..bf5fb88da
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.5.5.jar
Binary files differ
diff --git a/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-jute-3.5.5.jar b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-jute-3.5.5.jar
new file mode 100644
index 000000000..ae72aca1f
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-jute-3.5.5.jar
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/web.xml b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/web.xml
index 53ab57abb..53ab57abb 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/WEB-INF/web.xml
+++ b/solr-8.3.1/server/solr-webapp/webapp/WEB-INF/web.xml
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/analysis.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/analysis.css
index 1cbff55ed..1cbff55ed 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/analysis.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/analysis.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/chosen.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/chosen.css
index f7ae77121..f7ae77121 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/chosen.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/chosen.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/cloud.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/cloud.css
index c702c7a1d..c702c7a1d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/cloud.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/cloud.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/collections.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/collections.css
index e8d1207e1..a4eccbe0e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/collections.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/collections.css
@@ -40,7 +40,6 @@ limitations under the License.
#content #collections #navigation
{
- padding-top: 50px;
width: 12%;
}
@@ -49,6 +48,17 @@ limitations under the License.
padding-left: 5px;
}
+#content #collections #navigation ul
+{
+ padding-top: 20px;
+}
+
+#content #collections #navigation hr
+{
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+
#content #collections #frame .actions
{
margin-bottom: 20px;
@@ -129,23 +139,24 @@ limitations under the License.
background-image: url( ../../img/ico/cross.png );
}
-#content #collections .actions #add
+#content #collections #navigation #add span
{
- left: 0;
- position: absolute;
+ background-image: url( ../../img/ico/plus-button.png );
}
-#content #collections .actions #add span
+#content #collections #navigation #create-alias span
{
- background-image: url( ../../img/ico/plus-button.png );
+ background-image: url( ../../img/ico/arrow-switch.png );
}
-#content #collections .actions #delete
+
+#content #collections .actions #delete-collection,
+#content #collections .actions #delete-alias
{
margin-right: 20px;
}
-#content #collections .actions #delete span
+#content #collections .actions #delete-collection span
{
background-image: url( ../../img/ico/cross.png );
}
@@ -160,11 +171,6 @@ limitations under the License.
background-image: url( ../../img/ico/ui-text-field-select.png );
}
-#content #collections .actions #create-alias span
-{
- background-image: url( ../../img/ico/arrow-switch.png );
-}
-
#content #collections .actions #delete-alias span
{
background-image: url( ../../img/ico/cross-button.png );
@@ -215,6 +221,7 @@ limitations under the License.
background-position: 0% 50%;
}
+#content #collections #data #alias-data h2 { background-image: url( ../../img/ico/box.png ); }
#content #collections #data #collection-data h2 { background-image: url( ../../img/ico/box.png ); }
#content #collections #data #shard-data h2 { background-image: url( ../../img/ico/sitemap.png ); }
#content #collections #data #shard-data .replica h2 { background-image: url( ../../img/ico/node-slave.png ); }
@@ -355,6 +362,11 @@ limitations under the License.
width: 100% !important;
}
+#content #collections #alias-data {
+ float: left;
+ width: 35%;
+}
+
#content #collections #collection-data {
float: left;
width: 35%;
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/common.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/common.css
index 080935c77..fecffb6d4 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/common.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/common.css
@@ -291,9 +291,7 @@ ul
{
background-image: url( ../../img/ico/box.png );
background-position: 5px 50%;
- display: none;
font-weight: bold;
- margin-top: 10px;
padding: 5px 10px;
padding-left: 26px;
}
@@ -309,6 +307,12 @@ ul
color: #fff;
}
+#environment.stage
+{
+ background-color: orange;
+ color: #fff;
+}
+
#environment.test
{
background-color: #f5f5b2;
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/cores.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/cores.css
index 0428c664b..0428c664b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/cores.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/cores.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/dashboard.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/dashboard.css
index 734d62a9d..734d62a9d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/dashboard.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/dashboard.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/dataimport.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/dataimport.css
index 6afb096ca..6afb096ca 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/dataimport.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/dataimport.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/documents.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/documents.css
index 2f0ba12ed..2f0ba12ed 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/documents.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/documents.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/files.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/files.css
index 46b3e8c30..46b3e8c30 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/files.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/files.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/index.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/index.css
index c53e3230a..c53e3230a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/index.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/index.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/java-properties.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/java-properties.css
index d23fadfa4..d23fadfa4 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/java-properties.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/java-properties.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css
index 4cd94c6c3..4cd94c6c3 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.min.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css
index d6f2f86ca..d6f2f86ca 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/jquery-ui.structure.min.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/logging.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/logging.css
index e28e771cf..e28e771cf 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/logging.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/logging.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/login.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/login.css
index 6d6c9083e..6d6c9083e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/login.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/login.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/menu.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/menu.css
index 4a24399bf..4a24399bf 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/menu.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/menu.css
diff --git a/solr-8.3.1/server/solr-webapp/webapp/css/angular/overview.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/overview.css
new file mode 100644
index 000000000..4934f7288
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/overview.css
@@ -0,0 +1,42 @@
+/*
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+*/
+
+#content #dashboard .collprops
+{
+ float: left;
+}
+
+#content #dashboard .collprops dt,
+#content #dashboard .collprops dd
+{
+ display: block;
+ float: left;
+}
+
+#content #dashboard .collprops dt
+{
+ clear: left;
+ margin-right: 2%;
+ width: 48%;
+}
+
+#content #dashboard .collprops dd
+{
+ width: 50%;
+}
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/plugins.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/plugins.css
index e4398bda2..e4398bda2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/plugins.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/plugins.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/query.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/query.css
index be264bf9b..be264bf9b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/query.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/query.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/replication.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/replication.css
index 4eb608878..4eb608878 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/replication.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/replication.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/schema.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/schema.css
index 05d947890..05d947890 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/schema.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/schema.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/segments.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/segments.css
index 05f5f7bbd..05f5f7bbd 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/segments.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/segments.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/stream.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/stream.css
index 0ebb59243..0ebb59243 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/stream.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/stream.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/suggestions.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/suggestions.css
index 6d9fa6599..6d9fa6599 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/suggestions.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/suggestions.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/css/angular/threads.css b/solr-8.3.1/server/solr-webapp/webapp/css/angular/threads.css
index a457c8679..a457c8679 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/css/angular/threads.css
+++ b/solr-8.3.1/server/solr-webapp/webapp/css/angular/threads.css
diff --git a/solr-8.1.1/server/solr-webapp/webapp/favicon.ico b/solr-8.3.1/server/solr-webapp/webapp/favicon.ico
index e93104ccf..e93104ccf 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/favicon.ico
+++ b/solr-8.3.1/server/solr-webapp/webapp/favicon.ico
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/chosen-sprite-2x.png b/solr-8.3.1/server/solr-webapp/webapp/img/chosen-sprite-2x.png
index 6b5054520..6b5054520 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/chosen-sprite-2x.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/chosen-sprite-2x.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/chosen-sprite.png b/solr-8.3.1/server/solr-webapp/webapp/img/chosen-sprite.png
index 113dc9885..113dc9885 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/chosen-sprite.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/chosen-sprite.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/div.gif b/solr-8.3.1/server/solr-webapp/webapp/img/div.gif
index 963c9e97b..963c9e97b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/div.gif
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/div.gif
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/favicon.ico b/solr-8.3.1/server/solr-webapp/webapp/img/favicon.ico
index e93104ccf..e93104ccf 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/favicon.ico
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/favicon.ico
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/7z.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/7z.png
index 52f7d5d72..52f7d5d72 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/7z.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/7z.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/README b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/README
index f7a856071..f7a856071 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/README
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/README
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ai.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ai.png
index a999762c8..a999762c8 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ai.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ai.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/aiff.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/aiff.png
index 82d523fdb..82d523fdb 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/aiff.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/aiff.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/asc.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/asc.png
index d9fa4a8aa..d9fa4a8aa 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/asc.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/asc.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/audio.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/audio.png
index 98883256d..98883256d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/audio.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/audio.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/bin.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/bin.png
index fbd174e2d..fbd174e2d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/bin.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/bin.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/bz2.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/bz2.png
index d48cae038..d48cae038 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/bz2.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/bz2.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/c.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/c.png
index efe18f439..efe18f439 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/c.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/c.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cfc.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cfc.png
index 09c149d64..09c149d64 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cfc.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cfc.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cfm.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cfm.png
index d755f286f..d755f286f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cfm.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cfm.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/chm.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/chm.png
index 53d48f3b5..53d48f3b5 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/chm.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/chm.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/class.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/class.png
index a39f70c16..a39f70c16 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/class.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/class.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/conf.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/conf.png
index ddffe6fd1..ddffe6fd1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/conf.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/conf.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cpp.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cpp.png
index 79464401b..79464401b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cpp.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cpp.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cs.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cs.png
index d5db29ba5..d5db29ba5 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/cs.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/cs.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/css.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/css.png
index 04012041c..04012041c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/css.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/css.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/csv.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/csv.png
index 3a8835360..3a8835360 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/csv.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/csv.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/deb.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/deb.png
index 9229d8783..9229d8783 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/deb.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/deb.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/divx.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/divx.png
index 98dab8f80..98dab8f80 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/divx.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/divx.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/doc.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/doc.png
index 932567f8a..932567f8a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/doc.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/doc.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/dot.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/dot.png
index 9f2da1add..9f2da1add 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/dot.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/dot.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/eml.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/eml.png
index 02828e173..02828e173 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/eml.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/eml.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/enc.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/enc.png
index cb2d7d47e..cb2d7d47e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/enc.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/enc.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/file.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/file.png
index 24d5f328c..24d5f328c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/file.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/file.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/gif.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/gif.png
index b4c07a912..b4c07a912 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/gif.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/gif.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/gz.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/gz.png
index 2426bd169..2426bd169 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/gz.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/gz.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/hlp.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/hlp.png
index 4417d8e2c..4417d8e2c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/hlp.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/hlp.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/htm.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/htm.png
index 1a6812185..1a6812185 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/htm.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/htm.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/html.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/html.png
index 672cbce42..672cbce42 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/html.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/html.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/image.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/image.png
index f83e2898d..f83e2898d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/image.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/image.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/iso.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/iso.png
index 1b2ff19ca..1b2ff19ca 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/iso.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/iso.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/jar.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/jar.png
index 4db70a2c7..4db70a2c7 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/jar.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/jar.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/java.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/java.png
index 7489b9721..7489b9721 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/java.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/java.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/jpeg.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/jpeg.png
index aa4cc23a5..aa4cc23a5 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/jpeg.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/jpeg.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/jpg.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/jpg.png
index 1fb6cc1fb..1fb6cc1fb 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/jpg.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/jpg.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/js.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/js.png
index 7db4de7e9..7db4de7e9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/js.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/js.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/lua.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/lua.png
index 7c07d023f..7c07d023f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/lua.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/lua.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/m.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/m.png
index aa0cbae8b..aa0cbae8b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/m.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/m.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mm.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mm.png
index b737571c5..b737571c5 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mm.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mm.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mov.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mov.png
index 7e7aa368f..7e7aa368f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mov.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mov.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mp3.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mp3.png
index 928705d7a..928705d7a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mp3.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mp3.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mpg.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mpg.png
index 9a3f8ea51..9a3f8ea51 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/mpg.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/mpg.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odc.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odc.png
index 47f65c84d..47f65c84d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odc.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odc.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odf.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odf.png
index a2fbc5195..a2fbc5195 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odf.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odf.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odg.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odg.png
index 434f18262..434f18262 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odg.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odg.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odi.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odi.png
index 74f6303d3..74f6303d3 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odi.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odi.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odp.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odp.png
index a5c77f845..a5c77f845 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odp.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odp.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ods.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ods.png
index 2ab1273f0..2ab1273f0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ods.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ods.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odt.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odt.png
index b0c21fc1f..b0c21fc1f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/odt.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/odt.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ogg.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ogg.png
index 62cea6aaa..62cea6aaa 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ogg.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ogg.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/pdf.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/pdf.png
index 638066dea..638066dea 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/pdf.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/pdf.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/pgp.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/pgp.png
index e6b35f36e..e6b35f36e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/pgp.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/pgp.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/php.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/php.png
index 44c0fe0a0..44c0fe0a0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/php.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/php.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/pl.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/pl.png
index ad2324e35..ad2324e35 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/pl.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/pl.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/png.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/png.png
index f0b5b00ee..f0b5b00ee 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/png.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/png.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ppt.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ppt.png
index adaefc602..adaefc602 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ppt.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ppt.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ps.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ps.png
index 487c3cb7c..487c3cb7c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ps.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ps.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/py.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/py.png
index 9e31edb55..9e31edb55 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/py.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/py.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ram.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ram.png
index 1a54d7654..1a54d7654 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/ram.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/ram.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rar.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rar.png
index a6af4d1ca..a6af4d1ca 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rar.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rar.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rb.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rb.png
index 30670165f..30670165f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rb.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rb.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rm.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rm.png
index a2db68e32..a2db68e32 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rm.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rm.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rpm.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rpm.png
index 22212eafa..22212eafa 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rpm.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rpm.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rtf.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rtf.png
index d8bada5fe..d8bada5fe 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/rtf.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/rtf.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sig.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sig.png
index 3d8b19d2b..3d8b19d2b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sig.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sig.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sql.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sql.png
index f60054a3a..f60054a3a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sql.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sql.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/swf.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/swf.png
index 0729ed020..0729ed020 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/swf.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/swf.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxc.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxc.png
index 419c183c1..419c183c1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxc.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxc.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxd.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxd.png
index 5801bb23a..5801bb23a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxd.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxd.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxi.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxi.png
index 2a94290d7..2a94290d7 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxi.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxi.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxw.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxw.png
index 6da97beb3..6da97beb3 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/sxw.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/sxw.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/tar.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/tar.png
index 5a2f717fc..5a2f717fc 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/tar.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/tar.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/tex.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/tex.png
index e46a5166f..e46a5166f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/tex.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/tex.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/tgz.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/tgz.png
index 141acf564..141acf564 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/tgz.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/tgz.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/txt.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/txt.png
index da20009c6..da20009c6 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/txt.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/txt.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/vcf.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/vcf.png
index 195ab38bc..195ab38bc 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/vcf.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/vcf.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/video.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/video.png
index b89fc5299..b89fc5299 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/video.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/video.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/vsd.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/vsd.png
index d14b81d98..d14b81d98 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/vsd.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/vsd.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/wav.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/wav.png
index 79e80760e..79e80760e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/wav.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/wav.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/wma.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/wma.png
index 6854de772..6854de772 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/wma.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/wma.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/wmv.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/wmv.png
index b26f45d5f..b26f45d5f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/wmv.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/wmv.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xls.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xls.png
index e8cd58dc0..e8cd58dc0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xls.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xls.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xml.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xml.png
index eb4632397..eb4632397 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xml.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xml.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xpi.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xpi.png
index 5e537e237..5e537e237 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xpi.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xpi.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xvid.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xvid.png
index d8429dc1a..d8429dc1a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/xvid.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/xvid.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/zip.png b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/zip.png
index 999ffbe80..999ffbe80 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/filetypes/zip.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/filetypes/zip.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/arrow-000-small.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/arrow-000-small.png
index cfc2e2493..cfc2e2493 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/arrow-000-small.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/arrow-000-small.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/arrow-circle.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/arrow-circle.png
index dda713275..dda713275 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/arrow-circle.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/arrow-circle.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/arrow-switch.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/arrow-switch.png
index ab3dd3021..ab3dd3021 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/arrow-switch.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/arrow-switch.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/asterisk.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/asterisk.png
index c2fbed5a7..c2fbed5a7 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/asterisk.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/asterisk.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/battery.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/battery.png
index 7a825b025..7a825b025 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/battery.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/battery.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/block-small.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/block-small.png
index 7cc52813c..7cc52813c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/block-small.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/block-small.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/block.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/block.png
index ed7ec0e97..ed7ec0e97 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/block.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/block.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/book-open-text.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/book-open-text.png
index 069fae7c9..069fae7c9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/book-open-text.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/book-open-text.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/box.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/box.png
index 3ec0ceb13..3ec0ceb13 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/box.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/box.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/bug.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/bug.png
index 242d5391c..242d5391c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/bug.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/bug.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/chart.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/chart.png
index d3cb71d5c..d3cb71d5c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/chart.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/chart.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/chevron-small-expand.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/chevron-small-expand.png
index 06a8eaca1..06a8eaca1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/chevron-small-expand.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/chevron-small-expand.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/chevron-small.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/chevron-small.png
index b54fd1c7c..b54fd1c7c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/chevron-small.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/chevron-small.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clipboard-list.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clipboard-list.png
index e98c56756..e98c56756 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clipboard-list.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clipboard-list.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clipboard-paste-document-text.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clipboard-paste-document-text.png
index 08647f1be..08647f1be 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clipboard-paste-document-text.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clipboard-paste-document-text.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clipboard-paste.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clipboard-paste.png
index 0cf888729..0cf888729 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clipboard-paste.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clipboard-paste.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clock-select-remain.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clock-select-remain.png
index 8c665b812..8c665b812 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clock-select-remain.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clock-select-remain.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clock-select.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clock-select.png
index 8c567916c..8c567916c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/clock-select.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/clock-select.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/construction.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/construction.png
index 8347aa896..8347aa896 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/construction.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/construction.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/cross-0.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/cross-0.png
index 04fef989e..04fef989e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/cross-0.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/cross-0.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/cross-1.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/cross-1.png
index 830879b61..830879b61 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/cross-1.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/cross-1.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/cross-button.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/cross-button.png
index 933272b49..933272b49 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/cross-button.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/cross-button.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/cross.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/cross.png
index 6b9fa6dd3..6b9fa6dd3 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/cross.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/cross.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/dashboard.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/dashboard.png
index ba03262f0..ba03262f0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/dashboard.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/dashboard.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/database--plus.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/database--plus.png
index 2558a7d6a..2558a7d6a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/database--plus.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/database--plus.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/database.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/database.png
index d588f422f..d588f422f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/database.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/database.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/databases.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/databases.png
index 11dcab4b1..11dcab4b1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/databases.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/databases.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/disk-black.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/disk-black.png
index 61784784f..61784784f 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/disk-black.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/disk-black.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/document-convert.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/document-convert.png
index 1ecdafb99..1ecdafb99 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/document-convert.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/document-convert.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/document-import.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/document-import.png
index 5fae085f8..5fae085f8 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/document-import.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/document-import.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/document-list.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/document-list.png
index 2b4dde893..2b4dde893 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/document-list.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/document-list.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/document-text.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/document-text.png
index ed841a02a..ed841a02a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/document-text.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/document-text.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/documents-stack.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/documents-stack.png
index a397f60aa..a397f60aa 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/documents-stack.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/documents-stack.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/download-cloud.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/download-cloud.png
index ba0f492fa..ba0f492fa 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/download-cloud.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/download-cloud.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/drive-upload.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/drive-upload.png
index 93589e4da..93589e4da 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/drive-upload.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/drive-upload.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/exclamation-button.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/exclamation-button.png
index e792fb01d..e792fb01d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/exclamation-button.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/exclamation-button.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/eye.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/eye.png
index 2aead17e0..2aead17e0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/eye.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/eye.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/folder-export.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/folder-export.png
index 86e0cd294..86e0cd294 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/folder-export.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/folder-export.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/folder-tree.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/folder-tree.png
index 24218b6db..24218b6db 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/folder-tree.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/folder-tree.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/folder.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/folder.png
index ada85c48b..ada85c48b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/folder.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/folder.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/funnel-small.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/funnel-small.png
index 96e9e28f2..96e9e28f2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/funnel-small.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/funnel-small.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/funnel.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/funnel.png
index 1f6960452..1f6960452 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/funnel.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/funnel.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/gear.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/gear.png
index efc599dcc..efc599dcc 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/gear.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/gear.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/globe-network.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/globe-network.png
index ec27fad42..ec27fad42 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/globe-network.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/globe-network.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/globe.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/globe.png
index 48e5b6b30..48e5b6b30 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/globe.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/globe.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hammer-screwdriver.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hammer-screwdriver.png
index 985d44c5e..985d44c5e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hammer-screwdriver.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hammer-screwdriver.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hammer.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hammer.png
index cf0ef85a7..cf0ef85a7 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hammer.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hammer.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hand.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hand.png
index 7b47be2dc..7b47be2dc 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hand.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hand.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/highlighter-text.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/highlighter-text.png
index 719c537db..719c537db 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/highlighter-text.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/highlighter-text.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/home.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/home.png
index 622a2b736..622a2b736 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/home.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/home.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hourglass--exclamation.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hourglass--exclamation.png
index 67436681a..67436681a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hourglass--exclamation.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hourglass--exclamation.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hourglass.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hourglass.png
index 127c5d615..127c5d615 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/hourglass.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/hourglass.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/idea.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/idea.png
index 8b3abbd5e..8b3abbd5e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/idea.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/idea.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/inbox-document-text.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/inbox-document-text.png
index 4b479cfef..4b479cfef 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/inbox-document-text.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/inbox-document-text.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/information-button.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/information-button.png
index 4ecaf370b..4ecaf370b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/information-button.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/information-button.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/information-small.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/information-small.png
index 6db2d56e9..6db2d56e9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/information-small.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/information-small.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/information-white.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/information-white.png
index bd4f552a8..bd4f552a8 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/information-white.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/information-white.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/information.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/information.png
index fa9a60b5a..fa9a60b5a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/information.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/information.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/jar.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/jar.png
index 8711832ac..8711832ac 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/jar.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/jar.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/magnifier.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/magnifier.png
index 7a5ae62e3..7a5ae62e3 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/magnifier.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/magnifier.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/mail.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/mail.png
index e708416da..e708416da 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/mail.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/mail.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/memory.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/memory.png
index 4c71a247d..4c71a247d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/memory.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/memory.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/minus-button.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/minus-button.png
index 6dc019a60..6dc019a60 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/minus-button.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/minus-button.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/molecule.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/molecule.png
index c4eac4ef4..c4eac4ef4 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/molecule.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/molecule.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-cloud.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-cloud.png
index 0527a92ba..0527a92ba 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-cloud.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-cloud.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status-away.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status-away.png
index 0defbb40d..0defbb40d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status-away.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status-away.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status-busy.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status-busy.png
index ba2c65473..ba2c65473 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status-busy.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status-busy.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status-offline.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status-offline.png
index 507ff0595..507ff0595 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status-offline.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status-offline.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status.png
index 12ccc6baf..12ccc6baf 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network-status.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network-status.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network.png
index 8224771b0..8224771b0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/network.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/network.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node-design.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node-design.png
index fb2d4066c..fb2d4066c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node-design.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node-design.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node-master.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node-master.png
index c40fcc3ee..c40fcc3ee 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node-master.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node-master.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node-select.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node-select.png
index d2aba04cc..d2aba04cc 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node-select.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node-select.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node-slave.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node-slave.png
index 78a41cd12..78a41cd12 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node-slave.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node-slave.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node.png
index 88f1a2bbf..88f1a2bbf 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/node.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/node.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/pencil-small.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/pencil-small.png
index 3d81c2fb1..3d81c2fb1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/pencil-small.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/pencil-small.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/pencil.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/pencil.png
index 3ef2fa63e..3ef2fa63e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/pencil.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/pencil.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/plus-button.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/plus-button.png
index 10d1f6003..10d1f6003 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/plus-button.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/plus-button.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/processor.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/processor.png
index 37e979422..37e979422 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/processor.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/processor.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/prohibition.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/prohibition.png
index 18f151071..18f151071 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/prohibition.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/prohibition.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/property.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/property.png
index b0e549e45..b0e549e45 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/property.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/property.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/question-small-white.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/question-small-white.png
index 132d3f5ba..132d3f5ba 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/question-small-white.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/question-small-white.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/question-white.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/question-white.png
index f80646871..f80646871 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/question-white.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/question-white.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/question.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/question.png
index 30a47032a..30a47032a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/question.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/question.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/receipt-invoice.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/receipt-invoice.png
index fed614079..fed614079 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/receipt-invoice.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/receipt-invoice.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/receipt.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/receipt.png
index 1548b0ac6..1548b0ac6 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/receipt.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/receipt.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/run.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/run.png
index dc35fe3cb..dc35fe3cb 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/run.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/run.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/script-code.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/script-code.png
index d398622df..d398622df 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/script-code.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/script-code.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/server-cast.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/server-cast.png
index 921386652..921386652 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/server-cast.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/server-cast.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/server.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/server.png
index ee0c77179..ee0c77179 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/server.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/server.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/sitemap.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/sitemap.png
index 298343eea..298343eea 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/sitemap.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/sitemap.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/slash.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/slash.png
index 7af3a5189..7af3a5189 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/slash.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/slash.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/status-away.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/status-away.png
index c7be0abbe..c7be0abbe 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/status-away.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/status-away.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/status-busy.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/status-busy.png
index a9d5f4db2..a9d5f4db2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/status-busy.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/status-busy.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/status-offline.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/status-offline.png
index f148af498..f148af498 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/status-offline.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/status-offline.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/status.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/status.png
index 680bb8a6a..680bb8a6a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/status.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/status.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/system-monitor--exclamation.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/system-monitor--exclamation.png
index c6f6a5f64..c6f6a5f64 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/system-monitor--exclamation.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/system-monitor--exclamation.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/system-monitor.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/system-monitor.png
index a139103e1..a139103e1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/system-monitor.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/system-monitor.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/table.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/table.png
index b0cd69fc5..b0cd69fc5 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/table.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/table.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/terminal.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/terminal.png
index c18df24f9..c18df24f9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/terminal.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/terminal.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/tick-circle.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/tick-circle.png
index 210b1a6c3..210b1a6c3 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/tick-circle.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/tick-circle.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/tick-red.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/tick-red.png
index 8ec99b4a6..8ec99b4a6 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/tick-red.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/tick-red.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/tick.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/tick.png
index 2414885b8..2414885b8 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/tick.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/tick.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/toggle-small-expand.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/toggle-small-expand.png
index 79c5ff7e8..79c5ff7e8 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/toggle-small-expand.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/toggle-small-expand.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/toggle-small.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/toggle-small.png
index f783a6f2c..f783a6f2c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/toggle-small.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/toggle-small.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/toolbox.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/toolbox.png
index b581d7794..b581d7794 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/toolbox.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/toolbox.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-accordion.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-accordion.png
index a9f1448e2..a9f1448e2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-accordion.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-accordion.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-address-bar.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-address-bar.png
index 1a96ac435..1a96ac435 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-address-bar.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-address-bar.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-check-box-uncheck.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-check-box-uncheck.png
index ba447358c..ba447358c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-check-box-uncheck.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-check-box-uncheck.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-check-box.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-check-box.png
index 07f3522a9..07f3522a9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-check-box.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-check-box.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-radio-button-uncheck.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-radio-button-uncheck.png
index ec7102b6e..ec7102b6e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-radio-button-uncheck.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-radio-button-uncheck.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-radio-button.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-radio-button.png
index f83a25496..f83a25496 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-radio-button.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-radio-button.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-text-field-select.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-text-field-select.png
index 3cfe301ac..3cfe301ac 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/ui-text-field-select.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/ui-text-field-select.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/users.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/users.png
index a6aae0404..a6aae0404 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/users.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/users.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/wooden-box.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/wooden-box.png
index f64d76105..f64d76105 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/wooden-box.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/wooden-box.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/ico/zone.png b/solr-8.3.1/server/solr-webapp/webapp/img/ico/zone.png
index 80fc7be9e..80fc7be9e 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/ico/zone.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/ico/zone.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/loader-light.gif b/solr-8.3.1/server/solr-webapp/webapp/img/loader-light.gif
index f578ca586..f578ca586 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/loader-light.gif
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/loader-light.gif
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/loader.gif b/solr-8.3.1/server/solr-webapp/webapp/img/loader.gif
index 085ccaeca..085ccaeca 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/loader.gif
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/loader.gif
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/lucene-ico.png b/solr-8.3.1/server/solr-webapp/webapp/img/lucene-ico.png
index 43327dd5a..43327dd5a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/lucene-ico.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/lucene-ico.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/solr-ico.png b/solr-8.3.1/server/solr-webapp/webapp/img/solr-ico.png
index 91c35d846..91c35d846 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/solr-ico.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/solr-ico.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/solr.svg b/solr-8.3.1/server/solr-webapp/webapp/img/solr.svg
index cb4ae64f8..cb4ae64f8 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/solr.svg
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/solr.svg
diff --git a/solr-8.1.1/server/solr-webapp/webapp/img/tree.png b/solr-8.3.1/server/solr-webapp/webapp/img/tree.png
index 61b6b3ee1..61b6b3ee1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/img/tree.png
+++ b/solr-8.3.1/server/solr-webapp/webapp/img/tree.png
Binary files differ
diff --git a/solr-8.1.1/server/solr-webapp/webapp/index.html b/solr-8.3.1/server/solr-webapp/webapp/index.html
index fcf0f821a..676ad19ea 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/index.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/index.html
@@ -46,6 +46,7 @@ limitations under the License.
<link rel="stylesheet" type="text/css" href="css/angular/segments.css?_=${version}">
<link rel="stylesheet" type="text/css" href="css/angular/threads.css?_=${version}">
<link rel="stylesheet" type="text/css" href="css/angular/chosen.css?_=${version}">
+ <link rel="stylesheet" type="text/css" href="css/angular/overview.css?_=${version}">
<link rel="stylesheet" type="text/css" href="css/angular/jquery-ui.min.css?_=${version}">
<link rel="stylesheet" type="text/css" href="css/angular/jquery-ui.structure.min.css?_=${version}">
@@ -73,6 +74,7 @@ limitations under the License.
<script src="js/angular/controllers/cores.js"></script>
<script src="js/angular/controllers/threads.js"></script>
<script src="js/angular/controllers/java-properties.js"></script>
+ <script src="js/angular/controllers/alias-overview.js"></script>
<script src="js/angular/controllers/core-overview.js"></script>
<script src="js/angular/controllers/collection-overview.js"></script>
<script src="js/angular/controllers/analysis.js"></script>
@@ -98,8 +100,6 @@ limitations under the License.
<a href="#/" id="solr"><span>Apache SOLR</span></a>
- <p id="environment">&nbsp;</p>
-
</div>
<div id="main" class="clearfix">
@@ -143,6 +143,8 @@ limitations under the License.
<div>
<ul id="menu">
+ <li id="environment" ng-class="environment" ng-show="showEnvironment" ng-style="environment_color !== undefined ? {'background-color': environment_color} : ''">{{ environment_label }}</li>
+
<li id="login" class="global" ng-class="{active:page=='login'}" ng-show="http401 || currentUser"><p><a href="#/login">{{http401 ? "Login" : "Logout " + currentUser}}</a></p></li>
<li id="index" class="global" ng-class="{active:page=='index'}"><p><a href="#/">Dashboard</a></p></li>
@@ -180,7 +182,7 @@ limitations under the License.
ng-model="currentCollection"
chosen
ng-change="showCollection(currentCollection)"
- ng-options="collection.name for collection in collections"></select>
+ ng-options="collection.name for collection in aliases_and_collections"></select>
</div>
<p id="has-no-collections" ng-show="collections.length==0"><a href="#/~collections">
No collections available
@@ -189,14 +191,15 @@ limitations under the License.
</div>
<div id="collection-menu" class="sub-menu" ng-show="currentCollection">
<ul>
- <li class="overview" ng-class="{active:page=='collection-overview'}"><a href="#/{{currentCollection.name}}/collection-overview"><span>Overview</span></a></li>
- <li class="analysis" ng-class="{active:page=='analysis'}"><a href="#/{{currentCollection.name}}/analysis"><span>Analysis</span></a></li>
- <li class="dataimport" ng-class="{active:page=='dataimport'}"><a href="#/{{currentCollection.name}}/dataimport"><span>Dataimport</span></a></li>
- <li class="documents" ng-class="{active:page=='documents'}"><a href="#/{{currentCollection.name}}/documents"><span>Documents</span></a></li>
- <li class="files" ng-class="{active:page=='files'}"><a href="#/{{currentCollection.name}}/files"><span>Files</span></a></li>
+ <li class="overview" ng-show="currentCollection.type === 'collection'" ng-class="{active:page=='collection-overview'}"><a href="#/{{currentCollection.name}}/collection-overview"><span>Overview</span></a></li>
+ <li class="overview" ng-show="currentCollection.type === 'alias'" ng-class="{active:page=='alias-overview'}"><a href="#/{{currentCollection.name}}/alias-overview"><span>Overview</span></a></li>
+ <li class="analysis" ng-show="!isMultiDestAlias(currentCollection)" ng-class="{active:page=='analysis'}"><a href="#/{{currentCollection.name}}/analysis"><span>Analysis</span></a></li>
+ <li class="dataimport" ng-show="!isMultiDestAlias(currentCollection)" ng-class="{active:page=='dataimport'}"><a href="#/{{currentCollection.name}}/dataimport"><span>Dataimport</span></a></li>
+ <li class="documents" ng-show="!isMultiDestAlias(currentCollection)" ng-class="{active:page=='documents'}"><a href="#/{{currentCollection.name}}/documents"><span>Documents</span></a></li>
+ <li class="files" ng-show="!isMultiDestAlias(currentCollection)" ng-class="{active:page=='files'}"><a href="#/{{currentCollection.name}}/files"><span>Files</span></a></li>
<li class="query" ng-class="{active:page=='query'}"><a href="#/{{currentCollection.name}}/query"><span>Query</span></a></li>
<li class="stream" ng-class="{active:page=='stream'}"><a href="#/{{currentCollection.name}}/stream"><span>Stream</span></a></li>
- <li class="schema" ng-class="{active:page=='schema'}"><a href="#/{{currentCollection.name}}/schema"><span>Schema</span></a></li>
+ <li class="schema" ng-show="!isMultiDestAlias(currentCollection)" ng-class="{active:page=='schema'}"><a href="#/{{currentCollection.name}}/schema"><span>Schema</span></a></li>
</ul>
</div>
<div id="core-selector">
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/app.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/app.js
index 9abacee46..784ea6e41 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/app.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/app.js
@@ -88,6 +88,10 @@ solrAdminApp.config([
templateUrl: 'partials/core_overview.html',
controller: 'CoreOverviewController'
}).
+ when('/:core/alias-overview', {
+ templateUrl: 'partials/alias_overview.html',
+ controller: 'AliasOverviewController'
+ }).
when('/:core/collection-overview', {
templateUrl: 'partials/collection_overview.html',
controller: 'CollectionOverviewController'
@@ -444,6 +448,7 @@ solrAdminApp.controller('MainController', function($scope, $route, $rootScope, $
$scope.refresh = function() {
$scope.cores = [];
$scope.collections = [];
+ $scope.aliases = [];
}
$scope.refresh();
@@ -466,21 +471,53 @@ solrAdminApp.controller('MainController', function($scope, $route, $rootScope, $
System.get(function(data) {
$scope.isCloudEnabled = data.mode.match( /solrcloud/i );
+ var currentCollectionName = $route.current.params.core;
+ delete $scope.currentCollection;
if ($scope.isCloudEnabled) {
- Collections.list(function (data) {
- $scope.collections = [];
- var currentCollectionName = $route.current.params.core;
- delete $scope.currentCollection;
- for (key in data.collections) {
- var collection = {name: data.collections[key]};
- $scope.collections.push(collection);
- if (pageType == Constants.IS_COLLECTION_PAGE && collection.name == currentCollectionName) {
- $scope.currentCollection = collection;
+ Collections.list(function (cdata) {
+ Collections.listaliases(function (adata) {
+ $scope.aliases = [];
+ for (var key in adata.aliases) {
+ props = {};
+ if (key in adata.properties) {
+ props = adata.properties[key];
+ }
+ var alias = {name: key, collections: adata.aliases[key], type: 'alias', properties: props};
+ $scope.aliases.push(alias);
+ if (pageType == Constants.IS_COLLECTION_PAGE && alias.name == currentCollectionName) {
+ $scope.currentCollection = alias;
+ }
+ }
+ $scope.collections = [];
+ for (key in cdata.collections) {
+ var collection = {name: cdata.collections[key], type: 'collection'};
+ $scope.collections.push(collection);
+ if (pageType == Constants.IS_COLLECTION_PAGE && collection.name == currentCollectionName) {
+ $scope.currentCollection = collection;
+ }
+ }
+
+ $scope.aliases_and_collections = $scope.aliases;
+ if ($scope.aliases.length > 0) {
+ $scope.aliases_and_collections = $scope.aliases_and_collections.concat({name:'-----'});
}
- }
- })
+ $scope.aliases_and_collections = $scope.aliases_and_collections.concat($scope.collections);
+ });
+ });
}
+ $scope.showEnvironment = data.environment !== undefined;
+ if (data.environment) {
+ $scope.environment = data.environment;
+ var env_labels = {'prod': 'Production', 'stage': 'Staging', 'test': 'Test', 'dev': 'Development'};
+ $scope.environment_label = env_labels[data.environment];
+ if (data.environment_label) {
+ $scope.environment_label = data.environment_label;
+ }
+ if (data.environment_color) {
+ $scope.environment_color = data.environment_color;
+ }
+ }
});
$scope.showingLogging = page.lastIndexOf("logging", 0) === 0;
@@ -490,6 +527,10 @@ solrAdminApp.controller('MainController', function($scope, $route, $rootScope, $
$scope.http401 = sessionStorage.getItem("http401");
};
+ $scope.isMultiDestAlias = function(selectedColl) {
+ return selectedColl && selectedColl.type === 'alias' && selectedColl.collections.includes(',');
+ };
+
$scope.ping = function() {
Ping.ping({core: $scope.currentCore.name}, function(data) {
$scope.showPing = true;
@@ -507,8 +548,12 @@ solrAdminApp.controller('MainController', function($scope, $route, $rootScope, $
}
$scope.showCollection = function(collection) {
- $location.url("/" + collection.name + "/collection-overview")
- }
+ if (collection.type === 'collection') {
+ $location.url("/" + collection.name + "/collection-overview")
+ } else if (collection.type === 'alias') {
+ $location.url("/" + collection.name + "/alias-overview")
+ }
+ };
$scope.$on('$routeChangeStart', function() {
$rootScope.exceptions = {};
diff --git a/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/alias-overview.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/alias-overview.js
new file mode 100644
index 000000000..6fbca386f
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/alias-overview.js
@@ -0,0 +1,27 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+solrAdminApp.controller('AliasOverviewController',
+function($scope, $routeParams, Collections, Constants) {
+ $scope.resetMenu("collection-overview", Constants.IS_COLLECTION_PAGE);
+
+ $scope.refresh = function() {
+ $scope.selectedCollection = $scope.currentCollection;
+ };
+
+ $scope.refresh();
+});
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js
index 5fff59caa..5fff59caa 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/analysis.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js
index 0d49df2db..b0ba4217d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cloud.js
@@ -530,7 +530,7 @@ var zkStatusSubController = function($scope, ZookeeperStatus) {
$scope.initZookeeper = function() {
ZookeeperStatus.monitor({}, function(data) {
$scope.zkState = data.zkStatus;
- $scope.mainKeys = ["ok", "clientPort", "zk_server_state", "zk_version",
+ $scope.mainKeys = ["ok", "clientPort", "secureClientPort", "zk_server_state", "zk_version",
"zk_approximate_data_size", "zk_znode_count", "zk_num_alive_connections"];
$scope.detailKeys = ["dataDir", "dataLogDir",
"zk_avg_latency", "zk_max_file_descriptor_count", "zk_watch_count",
@@ -538,7 +538,14 @@ var zkStatusSubController = function($scope, ZookeeperStatus) {
"tickTime", "maxClientCnxns", "minSessionTimeout", "maxSessionTimeout"];
$scope.ensembleMainKeys = ["serverId", "electionPort", "quorumPort"];
$scope.ensembleDetailKeys = ["peerType", "electionAlg", "initLimit", "syncLimit",
- "zk_followers", "zk_synced_followers", "zk_pending_syncs"];
+ "zk_followers", "zk_synced_followers", "zk_pending_syncs",
+ "server.1", "server.2", "server.3", "server.4", "server.5"];
+ $scope.notEmptyRow = function(key) {
+ for (hostId in $scope.zkState.details) {
+ if (key in $scope.zkState.details[hostId]) return true;
+ }
+ return false;
+ };
});
};
@@ -731,7 +738,9 @@ var graphSubController = function ($scope, Zookeeper) {
name: shard_status == "shard-inactive" ? s + ' (inactive)' : s,
data: {
type: 'shard',
- state: shard_status
+ state: shard_status,
+ range: state[c].shards[s].range
+
},
children: nodes
};
@@ -741,13 +750,20 @@ var graphSubController = function ($scope, Zookeeper) {
var collection = {
name: c,
data: {
- type: 'collection'
+ type: 'collection',
+ pullReplicas: state[c].pullReplicas,
+ replicationFactor: state[c].replicationFactor,
+ router: state[c].router.name,
+ maxShardsPerNode: state[c].maxShardsPerNode,
+ autoAddReplicas: state[c].autoAddReplicas,
+ nrtReplicas: state[c].nrtReplicas,
+ tlogReplicas: state[c].tlogReplicas,
+ numShards: shards.length
},
children: shards
};
graph_data.children.push(collection);
}
-
$scope.helperData.protocol = $.unique($scope.helperData.protocol);
$scope.helperData.host = $.unique($scope.helperData.host);
$scope.helperData.hostname = $.unique($scope.helperData.hostname);
@@ -844,21 +860,44 @@ solrAdminApp.directive('graph', function(Constants) {
};
var helper_tooltip_text = function (d) {
- if (!d.data || !d.data.uri) {
- return tooltip;
+ if (!d.data) {
+ return tooltip;
}
+ var tooltip;
- var tooltip = d.data.uri.core_node + " {<br/>";
-
- if (0 !== scope.helperData.core.length) {
- tooltip += "core: [" + d.data.uri.core + "],<br/>";
+ if (! d.data.type) {
+ return tooltip;
}
- if (0 !== scope.helperData.node_name.length) {
- tooltip += "node_name: [" + d.data.uri.node_name + "],<br/>";
- }
- tooltip += "}";
+ if (d.data.type == 'collection') {
+ tooltip = d.name + " {<br/> ";
+ tooltip += "numShards: [" + d.data.numShards + "],<br/>";
+ tooltip += "maxShardsPerNode: [" + d.data.maxShardsPerNode + "],<br/>";
+ tooltip += "router: [" + d.data.router + "],<br/>";
+ tooltip += "autoAddReplicas: [" + d.data.autoAddReplicas + "],<br/>";
+ tooltip += "replicationFactor: [" + d.data.replicationFactor + "],<br/>";
+ tooltip += "nrtReplicas: [" + d.data.nrtReplicas + "],<br/>";
+ tooltip += "pullReplicas: [" + d.data.pullReplicas + "],<br/>";
+ tooltip += "tlogReplicas: [" + d.data.tlogReplicas + "],<br/>";
+ tooltip += "}";
+ } else if (d.data.type == 'shard') {
+ tooltip = d.name + " {<br/> ";
+ tooltip += "range: [" + d.data.range + "],<br/>";
+ tooltip += "state: [" + d.data.state + "],<br/>";
+ tooltip += "}";
+ } else if (d.data.type == 'node') {
+ tooltip = d.data.uri.core_node + " {<br/>";
+
+ if (0 !== scope.helperData.core.length) {
+ tooltip += "core: [" + d.data.uri.core + "],<br/>";
+ }
+
+ if (0 !== scope.helperData.node_name.length) {
+ tooltip += "node_name: [" + d.data.uri.node_name + "],<br/>";
+ }
+ tooltip += "}";
+ }
return tooltip;
};
@@ -869,7 +908,6 @@ solrAdminApp.directive('graph', function(Constants) {
}
var name = d.data.uri.hostname;
-
if (1 !== scope.helperData.protocol.length) {
name = d.data.uri.protocol + '//' + name;
}
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js
index 01e1964e0..01e1964e0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cluster-suggestions.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js
index d1834b2bd..d1834b2bd 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collection-overview.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/collections.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collections.js
index 111d7ea56..978fc71e6 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/collections.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/collections.js
@@ -28,6 +28,7 @@ solrAdminApp.controller('CollectionsController',
for (var name in data.cluster.collections) {
var collection = data.cluster.collections[name];
collection.name = name;
+ collection.type = 'collection';
var shards = collection.shards;
collection.shards = [];
for (var shardName in shards) {
@@ -50,10 +51,28 @@ solrAdminApp.controller('CollectionsController',
$scope.collection = collection;
}
}
- if ($routeParams.collection && !$scope.collection) {
- alert("No collection called " + $routeParams.collection)
- $location.path("/~collections");
- }
+ // Fetch aliases using LISTALIASES to get properties
+ Collections.listaliases(function (adata) {
+ // TODO: Population of aliases array duplicated in app.js
+ $scope.aliases = [];
+ for (var key in adata.aliases) {
+ props = {};
+ if (key in adata.properties) {
+ props = adata.properties[key];
+ }
+ var alias = {name: key, collections: adata.aliases[key], type: 'alias', properties: props};
+ $scope.aliases.push(alias);
+ if ($routeParams.collection == 'alias_' + key) {
+ $scope.collection = alias;
+ }
+ }
+ // Decide what is selected in list
+ if ($routeParams.collection && !$scope.collection) {
+ alert("No collection or alias called " + $routeParams.collection);
+ $location.path("/~collections");
+ }
+ });
+
$scope.liveNodes = data.cluster.liveNodes;
});
Zookeeper.configs(function(data) {
@@ -96,14 +115,6 @@ solrAdminApp.controller('CollectionsController',
$scope.toggleDeleteAlias = function() {
$scope.hideAll();
$scope.showDeleteAlias = true;
- Zookeeper.aliases({}, function(data){
- if (Object.keys(data.aliases).length == 0) {
- delete $scope.aliases;
- } else {
- $scope.aliases = data.aliases;
- }
- });
-
}
$scope.cancelCreateAlias = $scope.cancelDeleteAlias = function() {
@@ -116,12 +127,16 @@ solrAdminApp.controller('CollectionsController',
collections.push($scope.aliasCollections[i].name);
}
Collections.createAlias({name: $scope.aliasToCreate, collections: collections.join(",")}, function(data) {
- $scope.hideAll();
+ $scope.cancelCreateAlias();
+ $scope.resetMenu("collections", Constants.IS_ROOT_PAGE);
+ $location.path("/~collections/alias_" + $scope.aliasToCreate);
});
}
$scope.deleteAlias = function() {
- Collections.deleteAlias({name: $scope.aliasToDelete}, function(data) {
+ Collections.deleteAlias({name: $scope.collection.name}, function(data) {
$scope.hideAll();
+ $scope.resetMenu("collections", Constants.IS_ROOT_PAGE);
+ $location.path("/~collections/");
});
};
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js
index 0e2b3d2a6..0e2b3d2a6 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/core-overview.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/cores.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cores.js
index 202b6224c..202b6224c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/cores.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/cores.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js
index c31b6f0fb..c31b6f0fb 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/dataimport.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/documents.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/documents.js
index d38265a05..d38265a05 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/documents.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/documents.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/files.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/files.js
index c1d7abfe2..c1d7abfe2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/files.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/files.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/index.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/index.js
index f7ce5a8d2..f7ce5a8d2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/index.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/index.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js
index 001edfb1a..001edfb1a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/java-properties.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/logging.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js
index 585c90a21..585c90a21 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/logging.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/logging.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/login.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/login.js
index 8127c6fda..8127c6fda 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/login.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/login.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js
index a537b37d7..a537b37d7 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/plugins.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/query.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/query.js
index 7267b0009..e8a38707a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/query.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/query.js
@@ -28,6 +28,7 @@ solrAdminApp.controller('QueryController',
$scope.facet = {facet: "on"};
$scope.spatial = {};
$scope.spellcheck = {spellcheck:"on"};
+ $scope.debugQuery = {debugQuery: "on"};
$scope.qt = "/select";
$scope.doQuery = function() {
@@ -58,6 +59,7 @@ solrAdminApp.controller('QueryController',
if ($scope.isFacet) copy(params, $scope.facet);
if ($scope.isSpatial) copy(params, $scope.spatial);
if ($scope.isSpellcheck) copy(params, $scope.spellcheck);
+ if ($scope.isDebugQuery) copy(params, $scope.debugQuery);
if ($scope.rawParams) {
var rawParams = $scope.rawParams.split(/[&\n]/);
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/replication.js
index 9f7ac3e41..9f7ac3e41 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/replication.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/replication.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/schema.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/schema.js
index 8a80d4297..8a80d4297 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/schema.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/schema.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/segments.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/segments.js
index e835cc084..e835cc084 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/segments.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/segments.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/stream.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/stream.js
index 92440c360..92440c360 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/stream.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/stream.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/threads.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/threads.js
index 22a900295..22a900295 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/threads.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/threads.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js
index 2d959e6ce..2d959e6ce 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/controllers/unknown.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/js/angular/services.js b/solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js
index 36556399c..8b371b6ff 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/js/angular/services.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/js/angular/services.js
@@ -30,6 +30,7 @@ solrAdminServices.factory('System',
return $resource('admin/collections',
{'wt':'json', '_':Date.now()}, {
"list": {params:{action: "LIST"}},
+ "listaliases": {params:{action: "LISTALIASES"}},
"status": {params:{action: "CLUSTERSTATUS"}},
"add": {params:{action: "CREATE"}},
"delete": {params:{action: "DELETE"}},
@@ -140,6 +141,11 @@ solrAdminServices.factory('System',
}).success(success).error(error);
}
})
+.filter('splitByComma', function() {
+ return function(input) {
+ return input === undefined ? input : input.split(',');
+ }
+})
.factory('Luke',
['$resource', function($resource) {
return $resource(':core/admin/luke', {core: '@core', wt:'json', _:Date.now()}, {
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-chosen.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-chosen.js
index 760422ffe..760422ffe 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-chosen.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-chosen.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-cookies.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.js
index 6afabd6d1..6afabd6d1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-cookies.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-cookies.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.min.js
index cb1fce672..cb1fce672 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-cookies.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-cookies.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-resource.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-resource.min.js
index 05b6d4ce9..05b6d4ce9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-resource.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-resource.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-route.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.js
index 1846bcc8d..1846bcc8d 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-route.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-route.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.min.js
index b7f33a8b9..b7f33a8b9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-route.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-route.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-sanitize.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.js
index 5daf27dff..5daf27dff 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-sanitize.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js
index e657c5b75..e657c5b75 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-sanitize.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js
index a3a735869..a3a735869 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js
index 6246f9624..6246f9624 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular-utf8-base64.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular.js
index aebeef165..aebeef165 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/angular.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/angular.min.js
index 411bbd975..411bbd975 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/angular.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/angular.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/chosen.jquery.js b/solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.js
index 9a5828be1..9a5828be1 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/chosen.jquery.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js
index 3599424ee..3599424ee 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/chosen.jquery.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/d3.js b/solr-8.3.1/server/solr-webapp/webapp/libs/d3.js
index 50156035b..50156035b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/d3.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/d3.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/highlight.js b/solr-8.3.1/server/solr-webapp/webapp/libs/highlight.js
index 527c34067..527c34067 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/highlight.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/highlight.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js
index 90165e90c..90165e90c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/jquery-1.7.2.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js
index 17cb6a83a..17cb6a83a 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/jquery-ui.min.js b/solr-8.3.1/server/solr-webapp/webapp/libs/jquery-ui.min.js
index b09b9303c..b09b9303c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/jquery-ui.min.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/jquery-ui.min.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/jquery.jstree.js b/solr-8.3.1/server/solr-webapp/webapp/libs/jquery.jstree.js
index 50c176790..50c176790 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/jquery.jstree.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/jquery.jstree.js
diff --git a/solr-8.1.1/server/solr-webapp/webapp/libs/ngtimeago.js b/solr-8.3.1/server/solr-webapp/webapp/libs/ngtimeago.js
index 5592402f3..5592402f3 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/libs/ngtimeago.js
+++ b/solr-8.3.1/server/solr-webapp/webapp/libs/ngtimeago.js
diff --git a/solr-8.3.1/server/solr-webapp/webapp/partials/alias_overview.html b/solr-8.3.1/server/solr-webapp/webapp/partials/alias_overview.html
new file mode 100644
index 000000000..0cf8124b5
--- /dev/null
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/alias_overview.html
@@ -0,0 +1,46 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<div id="dashboard">
+
+ <div class="clearfix">
+
+ <div id="collection" class="block collprops">
+
+ <h2><span>Alias: {{selectedCollection.name}}</span></h2>
+
+ <div class="content">
+
+ <dl>
+
+ <dt><span>Collections:</span></dt>
+ <dd>
+ <span ng-repeat="coll in (selectedCollection.collections | splitByComma)">
+ <a href="#~collections/{{coll}}">{{coll}}</a>{{$last ? '' : ', '}}
+ </span>
+ </dd>
+
+ <span ng-repeat="(key, value) in selectedCollection.properties">
+ <dt><span>{{ key }}</span></dt>
+ <dd>{{ value }}</dd>
+ </span>
+ </dl>
+
+ </div>
+ </div>
+ </div>
+
+</div>
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/analysis.html b/solr-8.3.1/server/solr-webapp/webapp/partials/analysis.html
index 23527f735..23527f735 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/analysis.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/analysis.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/cloud.html b/solr-8.3.1/server/solr-webapp/webapp/partials/cloud.html
index 1e64d2976..c2a878ad0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/cloud.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/cloud.html
@@ -67,7 +67,7 @@ limitations under the License.
{{host[key]}}
</td>
</tr>
- <tr ng-repeat="key in ensembleDetailKeys" ng-show="showDetails && zkState.mode === 'ensemble'">
+ <tr ng-repeat="key in ensembleDetailKeys | filter: notEmptyRow" ng-show="showDetails && zkState.mode === 'ensemble'">
<td>{{key}}</td>
<td ng-repeat="host in zkState.details">
{{host[key]}}
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/cluster_suggestions.html b/solr-8.3.1/server/solr-webapp/webapp/partials/cluster_suggestions.html
index 892b0bbc9..892b0bbc9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/cluster_suggestions.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/cluster_suggestions.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/collection_overview.html b/solr-8.3.1/server/solr-webapp/webapp/partials/collection_overview.html
index ba09bd95f..cf1c18c31 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/collection_overview.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/collection_overview.html
@@ -18,7 +18,7 @@ limitations under the License.
<div class="clearfix">
- <div id="collection" class="block fieldlist">
+ <div id="collection" class="block collprops">
<h2><span>Collection: {{selectedCollection.name}}</span></h2>
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/collections.html b/solr-8.3.1/server/solr-webapp/webapp/partials/collections.html
index 60ef47ad0..198030c74 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/collections.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/collections.html
@@ -18,119 +18,117 @@ limitations under the License.
<div id="ui-block" style="display:none">&nbsp;</div><!-- @todo what is this for? -->
- <div id="frame">
-
- <div id="actions" class="actions clearfix">
-
- <button id="add" class="action" ng-click="showAddCollection()"><span>Add Collection</span></button>
-
- <button id="delete" class="warn requires-core" ng-click="showDeleteCollection()" ng-show="collection"><span>Delete</span></button>
- <button id="reload" class="requires-core" ng-click="reloadCollection()" ng-show="collection"
- ng-class="{success: reloadSuccess, warn: reloadFailure}"><span>Reload</span></button>
- <button id="create-alias" class="action requires-core" ng-click="toggleCreateAlias()"><span>Create Alias</span></button>
- <button id="delete-alias" class="action requires-core" ng-click="toggleDeleteAlias()"><span>Delete Alias</span></button>
+ <div class="actions clearfix">
+ <div class="action add" data-rel="add" ng-show="showAdd" style="left:0px">
- <div class="action add" data-rel="add" ng-show="showAdd" style="left:0px">
+ <form>
- <form>
-
- <p class="clearfix"><label for="add_name">name:</label>
+ <p class="clearfix"><label for="add_name">name:</label>
<input type="text" name="name" id="add_name" ng-model="newCollection.name" placeholder="new collection"></p>
- <p class="clearfix"><label for="add_config">config set:</label>&nbsp;
+ <p class="clearfix"><label for="add_config">config set:</label>&nbsp;
<select chosen ng-options="config.name as config.name for config in configs" name="config_name" id="add_config" ng-model="newCollection.configName">
</select>
- </p>
+ </p>
- <p class="clearfix"><label for="add_numShards">numShards:</label>
+ <p class="clearfix"><label for="add_numShards">numShards:</label>
<input type="text" name="numShards" id="add_numShards" ng-model="newCollection.numShards"></p>
- <p class="clearfix"><label for="add_replicationFactor">replicationFactor:</label>
+ <p class="clearfix"><label for="add_replicationFactor">replicationFactor:</label>
<input type="text" name="replicationFactor" id="add_replicationFactor" ng-model="newCollection.replicationFactor"></p>
- <p class="clearfix"><a ng-click="showAdvanced=!showAdvanced">
- <span id="add_advanced" ng-class="{open: showAdvanced}">Show advanced</span></a></p>
- <div ng-show="showAdvanced">
+ <p class="clearfix"><a ng-click="showAdvanced=!showAdvanced">
+ <span id="add_advanced" ng-class="{open: showAdvanced}">Show advanced</span></a></p>
+ <div ng-show="showAdvanced">
- <p>Advanced options: </p>
- <p class="clearfix"><label for="add_router_name">router:</label>
- <select name="routerName" id="add_router_name" ng-model="newCollection.routerName">
- <option value="compositeId">Composite ID</option>
- <option value="implicit">Implicit</option>
- </select>
- </p>
-
- <p class="clearfix"><label for="add_maxShardsPerNode">maxShardsPerNode:</label>
- <input type="text" name="replicationFactor" id="add_maxShardsPerNode" ng-model="newCollection.maxShardsPerNode"></p>
+ <p>Advanced options: </p>
+ <p class="clearfix"><label for="add_router_name">router:</label>
+ <select name="routerName" id="add_router_name" ng-model="newCollection.routerName">
+ <option value="compositeId">Composite ID</option>
+ <option value="implicit">Implicit</option>
+ </select>
+ </p>
- <p class="clearfix"><label for="add_shards">shards:</label>
- <input type="text" name="shards" id="add_shards" ng-model="newCollection.shards"></p>
+ <p class="clearfix"><label for="add_maxShardsPerNode">maxShardsPerNode:</label>
+ <input type="text" name="replicationFactor" id="add_maxShardsPerNode" ng-model="newCollection.maxShardsPerNode"></p>
- <p class="clearfix"><label for="add_routerField">router.field:</label>
- <input type="text" name="routerField" id="add_routerField" ng-model="newCollection.routerField"></p>
+ <p class="clearfix"><label for="add_shards">shards:</label>
+ <input type="text" name="shards" id="add_shards" ng-model="newCollection.shards"></p>
- <p class="clearfix"><label for="add_autoAddReplicas">autoAddReplicas:</label>
- <select name="autoAddReplicas" id="add_autoAddReplicas" ng-model="newCollection.autoAddReplicas">
- <option value="true">true</option>
- <option value="false">false</option>
- </select>
- </p>
+ <p class="clearfix"><label for="add_routerField">router.field:</label>
+ <input type="text" name="routerField" id="add_routerField" ng-model="newCollection.routerField"></p>
- </div>
- <p class="clearfix note error" ng-show="addMessage">
- <span>{{addMessage}}</span>
+ <p class="clearfix"><label for="add_autoAddReplicas">autoAddReplicas:</label>
+ <select name="autoAddReplicas" id="add_autoAddReplicas" ng-model="newCollection.autoAddReplicas">
+ <option value="true">true</option>
+ <option value="false">false</option>
+ </select>
</p>
- <p class="clearfix buttons">
- <button type="submit" class="submit" ng-click="addCollection()"><span>Add Collection</span></button>
- <button type="reset" class="reset" ng-click="cancelAddCollection()"><span>Cancel</span></button>
- </p>
+ </div>
+ <p class="clearfix note error" ng-show="addMessage">
+ <span>{{addMessage}}</span>
+ </p>
- </form>
+ <p class="clearfix buttons">
+ <button type="submit" class="submit" ng-click="addCollection()"><span>Add Collection</span></button>
+ <button type="reset" class="reset" ng-click="cancelAddCollection()"><span>Cancel</span></button>
+ </p>
- </div>
+ </form>
- <div class="action delete" ng-show="showDelete">
+ </div>
+ <div class="action create-alias" ng-show="showCreateAlias">
- <form>
+ <form>
- <p>Please type collection name to confirm deletion:</p>
- <p class="clearfix"><label for="collectiondeleteConfirm">Collection</label>
- <input type="text" ng-model="collectionDeleteConfirm" id="collectionDeleteConfirm"></p>
+ <input type="hidden" name="core" data-core="current">
- <p class="clearfix note error" ng-show="deleteMessage">
- <span>{{deleteMessage}}</span>
- </p>
+ <p class="clearfix"><label for="alias">Alias Name:</label>
+ <input type="text" name="alias" ng-model="aliasToCreate" id="alias"></p>
- <p class="clearfix buttons">
- <button class="submit" ng-click="deleteCollection()"><span>Delete</span></button>
- <button type="reset" class="reset" ng-click="showDelete=false"><span>Cancel</span></button>
- </p>
- </form>
+ <p class="clearfix"><label for="aliasCollections">Collections:</label>
+ <select multiple id="aliasCollections" ng-model="aliasCollections" ng-options="collection.name for collection in collections" class="other">
+ </select></p>
- </div>
- <div class="action create-alias" ng-show="showCreateAlias">
+ <p class="clearfix note error" ng-show="renameMessage">
+ <span>{{renameMessage}}</span>
+ </p>
- <form>
+ <p class="clearfix buttons">
+ <button class="submit" ng-click="createAlias()"><span>Create Alias</span></button>
+ <button type="reset" class="reset" ng-click="cancelCreateAlias()"><span>Cancel</span></button>
+ </p>
+ </form>
- <input type="hidden" name="core" data-core="current">
+ </div>
+ </div>
- <p class="clearfix"><label for="alias">Alias Name:</label>
- <input type="text" name="alias" ng-model="aliasToCreate" id="alias"></p>
+ <div id="frame">
- <p class="clearfix"><label for="aliasCollections">Collections:</label>
- <select multiple id="aliasCollections" ng-model="aliasCollections" ng-options="collection.name for collection in collections" class="other">
- </select></p>
+ <div id="actions" class="actions clearfix" ng-show="collection">
+
+ <button id="delete-collection" class="warn requires-core" ng-click="showDeleteCollection()" ng-show="collection && collection.type === 'collection'"><span>Delete collection</span></button>
+ <button id="delete-alias" class="action requires-core" ng-click="toggleDeleteAlias()" ng-show="collection && collection.type === 'alias'"><span>Delete alias</span></button>
+ <button id="reload" class="requires-core" ng-click="reloadCollection()" ng-show="collection && collection.type === 'collection'"
+ ng-class="{success: reloadSuccess, warn: reloadFailure}"><span>Reload</span></button>
+
+ <div class="action delete" ng-show="showDelete">
+ <form>
+
+ <p>Please type collection name to confirm deletion:</p>
+ <p class="clearfix"><label for="collectiondeleteConfirm">Collection</label>
+ <input type="text" ng-model="collectionDeleteConfirm" id="collectionDeleteConfirm"></p>
- <p class="clearfix note error" ng-show="renameMessage">
- <span>{{renameMessage}}</span>
+ <p class="clearfix note error" ng-show="deleteMessage">
+ <span>{{deleteMessage}}</span>
</p>
<p class="clearfix buttons">
- <button class="submit" ng-click="createAlias()"><span>Create Alias</span></button>
- <button type="reset" class="reset" ng-click="cancelCreateAlias()"><span>Cancel</span></button>
+ <button class="submit" ng-click="deleteCollection()"><span>Delete</span></button>
+ <button type="reset" class="reset" ng-click="showDelete=false"><span>Cancel</span></button>
</p>
</form>
@@ -139,27 +137,12 @@ limitations under the License.
<div class="action delete-alias" ng-show="showDeleteAlias">
<form>
- <span ng-show="aliases">
- <p class="clearfix"><label for="deleteAlias">Alias:</label>
- <select id="deleteAlias" ng-model="aliasToDelete" ng-options="alias as alias for (alias, collections) in aliases" class="other">
- </select></p>
-
- <p class="clearfix note error" ng-show="swapMessage">
- <span>{{swapMessage}}</span>
- </p>
+ <p>Are you sure you want to delete alias {{ collection.name }}?</p>
<p class="clearfix buttons">
<button type="submit" class="submit" ng-click="deleteAlias()"><span>Delete Alias</span></button>
<button type="reset" class="reset" ng-click="cancelDeleteAlias()"><span>Cancel</span></button>
</p>
- </span>
- <span ng-hide="aliases">
- <p>No aliases to delete.</p>
- <p class="clearfix buttons">
- <button type="reset" class="reset" ng-click="cancelDeleteAlias()"><span>Cancel</span></button>
- </p>
- </span>
-
</form>
</div>
@@ -168,12 +151,42 @@ limitations under the License.
<div class="requires-core" ng-hide="collection">
- <h2>Please select a collection</h2>
+ <h2 ng-show="aliases.length + collections.length > 0">Please select a collection or alias</h2>
</div>
<div id="data" class="requires-core clearfix" ng-show="collection">
- <div class="block" id="collection-data">
+ <div class="block" id="alias-data" ng-show="collection.type === 'alias'">
+
+ <h2>Alias: {{collection.name}}</h2>
+
+ <div class="message-container">
+ <div class="message"></div>
+ </div>
+
+ <div class="content">
+
+ <ul>
+
+ <li>
+ <dl class="clearfix">
+ <dt><span>Collections:</span></dt>
+ <dd>
+ <span ng-repeat="coll in (collection.collections | splitByComma)">
+ <a href="#~collections/{{coll}}">{{coll}}</a>{{$last ? '' : ', '}}
+ </span>
+ </dd>
+ <div ng-repeat="(key, value) in collection.properties">
+ <dt><span>{{ key }}</span></dt>
+ <dd><span>{{ value }}</span></dd>
+ </div>
+ </dl>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="block" id="collection-data" ng-show="collection.type === 'collection'">
<h2>Collection: {{collection.name}}</h2>
@@ -215,12 +228,21 @@ limitations under the License.
<dt><span>autoAddReplicas:</span></dt>
<dd>{{collection.autoAddReplicas}}</dd>
</dl></li>
+
+ <li ng-show="collection.aliases"><dl class="clearfix">
+ <dt><span>aliases:</span></dt>
+ <dd>
+ <span ng-repeat="coll in collection.aliases">
+ <a href="#~collections/alias_{{coll}}">{{coll}}</a>{{$last ? '' : ', '}}
+ </span>
+ </dd>
+ </dl></li>
</ul>
</div>
</div>
- <div class="block" id="shard-data">
+ <div class="block" id="shard-data" ng-show="collection.type === 'collection'">
<div class="content shard" ng-repeat="shard in collection.shards">
<a ng-click="toggleShard(shard)">
<h2>
@@ -358,9 +380,16 @@ limitations under the License.
</div>
<div id="navigation" class="requires-core clearfix">
+ <button id="add" class="action" ng-click="showAddCollection()"><span>Add Collection</span></button>
+ <ul>
+ <li ng-repeat="c in collections" ng-class="{current: collection.name == c.name && collection.type === 'collection'}"><a href="#~collections/{{c.name}}">{{c.name}}</a></li>
+ </ul>
+ <hr/>
+ <button id="create-alias" class="action requires-core" ng-click="toggleCreateAlias()" ng-disabled="collections.length == 0"><span>Create Alias</span></button>
<ul>
- <li ng-repeat="c in collections" ng-class="{current: collection.name == c.name}"><a href="#~collections/{{c.name}}">{{c.name}}</a></li>
+ <li ng-repeat="c in aliases" ng-class="{current: collection.name == c.name && collection.type === 'alias'}"><a href="#~collections/alias_{{c.name}}">{{c.name}}</a></li>
</ul>
+
</div>
</div>
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/core_overview.html b/solr-8.3.1/server/solr-webapp/webapp/partials/core_overview.html
index f1826f65c..f1826f65c 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/core_overview.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/core_overview.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/cores.html b/solr-8.3.1/server/solr-webapp/webapp/partials/cores.html
index 161576956..161576956 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/cores.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/cores.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/dataimport.html b/solr-8.3.1/server/solr-webapp/webapp/partials/dataimport.html
index dd11f5471..dd11f5471 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/dataimport.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/dataimport.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/documents.html b/solr-8.3.1/server/solr-webapp/webapp/partials/documents.html
index 2bf3f1298..2bf3f1298 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/documents.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/documents.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/files.html b/solr-8.3.1/server/solr-webapp/webapp/partials/files.html
index 6a31096f0..6a31096f0 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/files.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/files.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/index.html b/solr-8.3.1/server/solr-webapp/webapp/partials/index.html
index b9e6a90f4..b9e6a90f4 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/index.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/index.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/java-properties.html b/solr-8.3.1/server/solr-webapp/webapp/partials/java-properties.html
index 047de48d5..047de48d5 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/java-properties.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/java-properties.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/logging-levels.html b/solr-8.3.1/server/solr-webapp/webapp/partials/logging-levels.html
index 5a4a2d681..5a4a2d681 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/logging-levels.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/logging-levels.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/logging.html b/solr-8.3.1/server/solr-webapp/webapp/partials/logging.html
index 9952360b3..9952360b3 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/logging.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/logging.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/login.html b/solr-8.3.1/server/solr-webapp/webapp/partials/login.html
index 29c8c7150..29c8c7150 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/login.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/login.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/plugins.html b/solr-8.3.1/server/solr-webapp/webapp/partials/plugins.html
index aaa424d3b..aaa424d3b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/plugins.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/plugins.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/query.html b/solr-8.3.1/server/solr-webapp/webapp/partials/query.html
index 2a7735505..3d329ea77 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/query.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/query.html
@@ -92,9 +92,21 @@ limitations under the License.
indent off
</label>
- <label for="debugQuery" class="checkbox" title="Show timing and diagnostics.">
- <input type="checkbox" ng-model="query.debugQuery" name="debugQuery" id="debugQuery" title="Show timing and diagnostics." ng-true-value="'on'" ng-false-value="''">
- debugQuery
+ </div>
+ </fieldset>
+
+ <fieldset class="debugQuery optional">
+ <legend>
+ <label for="debugQuery" class="checkbox" title="Show timing and diagnostics.">
+ <input type="checkbox" ng-model="isDebugQuery" name="debugQuery" id="debugQuery" value="true">
+ debugQuery
+ </label>
+ </legend>
+ <div class="fieldset" ng-show="isDebugQuery">
+
+ <label for="debug_explain_structured" class="checkbox" title="Show Score explanations as nested structures.">
+ <input type="checkbox" ng-model="debugQuery['debug.explain.structured']" name="debug.explain.structured" id="debug_explain_structured" value="true">
+ debug.explain.structured
</label>
</div>
@@ -235,7 +247,7 @@ limitations under the License.
</label>
<label for="hl_highlightMultiTerm" class="checkbox">
- <input type="checkbox" ng-model="hl['hightlightMultiTerm']" name="hl.highlightMultiTerm" id="hl_highlightMultiTerm" value="true">
+ <input type="checkbox" ng-model="hl['highlightMultiTerm']" name="hl.highlightMultiTerm" id="hl_highlightMultiTerm" value="true">
hl.highlightMultiTerm
</label>
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/replication.html b/solr-8.3.1/server/solr-webapp/webapp/partials/replication.html
index b3d668422..b3d668422 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/replication.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/replication.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/schema.html b/solr-8.3.1/server/solr-webapp/webapp/partials/schema.html
index e94b6dab4..e94b6dab4 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/schema.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/schema.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/segments.html b/solr-8.3.1/server/solr-webapp/webapp/partials/segments.html
index e1174aba5..e1174aba5 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/segments.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/segments.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/stream.html b/solr-8.3.1/server/solr-webapp/webapp/partials/stream.html
index 683cf76d9..683cf76d9 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/stream.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/stream.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/threads.html b/solr-8.3.1/server/solr-webapp/webapp/partials/threads.html
index f1e6fdeb2..f1e6fdeb2 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/threads.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/threads.html
diff --git a/solr-8.1.1/server/solr-webapp/webapp/partials/unknown.html b/solr-8.3.1/server/solr-webapp/webapp/partials/unknown.html
index 51895ab8b..51895ab8b 100644
--- a/solr-8.1.1/server/solr-webapp/webapp/partials/unknown.html
+++ b/solr-8.3.1/server/solr-webapp/webapp/partials/unknown.html
diff --git a/solr-8.1.1/server/solr/README.txt b/solr-8.3.1/server/solr/README.txt
index 6404f2cb7..6404f2cb7 100644
--- a/solr-8.1.1/server/solr/README.txt
+++ b/solr-8.3.1/server/solr/README.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_ca.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_ca.txt
index 307a85f91..307a85f91 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_ca.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_ca.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_fr.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_fr.txt
index f1bba51b2..f1bba51b2 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_fr.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_fr.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_ga.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_ga.txt
index 9ebe7fa34..9ebe7fa34 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_ga.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_ga.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_it.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_it.txt
index cac040953..cac040953 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/contractions_it.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/contractions_it.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/hyphenations_ga.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/hyphenations_ga.txt
index 4d2642cc5..4d2642cc5 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/hyphenations_ga.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/hyphenations_ga.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stemdict_nl.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stemdict_nl.txt
index 441072971..441072971 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stemdict_nl.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stemdict_nl.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stoptags_ja.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stoptags_ja.txt
index 71b750845..71b750845 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stoptags_ja.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stoptags_ja.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ar.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ar.txt
index 046829db6..046829db6 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ar.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ar.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_bg.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_bg.txt
index 1ae4ba2ae..1ae4ba2ae 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_bg.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_bg.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ca.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ca.txt
index 3da65deaf..3da65deaf 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ca.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ca.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_cz.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_cz.txt
index 53c6097da..53c6097da 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_cz.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_cz.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_da.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_da.txt
index 42e6145b9..42e6145b9 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_da.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_da.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_de.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_de.txt
index 86525e7ae..86525e7ae 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_de.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_de.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_el.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_el.txt
index 232681f5b..232681f5b 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_el.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_el.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_en.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_en.txt
index 2c164c0b2..2c164c0b2 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_en.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_en.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_es.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_es.txt
index 487d78c8d..487d78c8d 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_es.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_es.txt
diff --git a/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_et.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_et.txt
new file mode 100644
index 000000000..1b06a134b
--- /dev/null
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_et.txt
@@ -0,0 +1,1603 @@
+# Estonian stopwords list
+all
+alla
+allapoole
+allpool
+alt
+altpoolt
+eel
+eespool
+enne
+hommikupoole
+hoolimata
+ilma
+kaudu
+keset
+kesk
+kohe
+koos
+kuhupoole
+kuni
+kuspool
+kustpoolt
+kõige
+käsikäes
+lappi
+ligi
+läbi
+mööda
+paitsi
+peale
+pealepoole
+pealpool
+pealt
+pealtpoolt
+piki
+pikku
+piku
+pikuti
+põiki
+pärast
+päri
+risti
+sealpool
+sealtpoolt
+seespool
+seltsis
+siiapoole
+siinpool
+siitpoolt
+sinnapoole
+sissepoole
+taga
+tagantpoolt
+tagapidi
+tagapool
+taha
+tahapoole
+teispool
+teispoole
+tänu
+tükkis
+vaatamata
+vastu
+väljapoole
+väljaspool
+väljastpoolt
+õhtupoole
+ühes
+ühestükis
+ühestükkis
+ülalpool
+ülaltpoolt
+üle
+ülespoole
+ülevalpool
+ülevaltpoolt
+ümber
+ümbert
+aegu
+aegus
+alguks
+algul
+algule
+algult
+alguni
+all
+alla
+alt
+alul
+alutsi
+arvel
+asemel
+asemele
+eel
+eeli
+ees
+eesotsas
+eest
+eestotsast
+esitsi
+ette
+etteotsa
+haaval
+heaks
+hoolimata
+hulgas
+hulgast
+hulka
+jalgu
+jalus
+jalust
+jaoks
+jooksul
+juurde
+juures
+juurest
+jälil
+jälile
+järel
+järele
+järelt
+järgi
+kaasas
+kallal
+kallale
+kallalt
+kamul
+kannul
+kannule
+kannult
+kaudu
+kaupa
+keskel
+keskele
+keskelt
+keskis
+keskpaiku
+kestel
+kestes
+kilda
+killas
+killast
+kimpu
+kimpus
+kiuste
+kohal
+kohale
+kohalt
+kohaselt
+kohe
+kohta
+koos
+korral
+kukil
+kukile
+kukilt
+kulul
+kõrva
+kõrval
+kõrvale
+kõrvalt
+kõrvas
+kõrvast
+käekõrval
+käekõrvale
+käekõrvalt
+käes
+käest
+kätte
+külge
+küljes
+küljest
+küüsi
+küüsis
+küüsist
+ligi
+ligidal
+ligidale
+ligidalt
+aegu
+aegus
+alguks
+algul
+algule
+algult
+alguni
+all
+alla
+alt
+alul
+alutsi
+arvel
+asemel
+asemele
+eel
+eeli
+ees
+eesotsas
+eest
+eestotsast
+esitsi
+ette
+etteotsa
+haaval
+heaks
+hoolimata
+hulgas
+hulgast
+hulka
+jalgu
+jalus
+jalust
+jaoks
+jooksul
+juurde
+juures
+juurest
+jälil
+jälile
+järel
+järele
+järelt
+järgi
+kaasas
+kallal
+kallale
+kallalt
+kamul
+kannul
+kannule
+kannult
+kaudu
+kaupa
+keskel
+keskele
+keskelt
+keskis
+keskpaiku
+kestel
+kestes
+kilda
+killas
+killast
+kimpu
+kimpus
+kiuste
+kohal
+kohale
+kohalt
+kohaselt
+kohe
+kohta
+koos
+korral
+kukil
+kukile
+kukilt
+kulul
+kõrva
+kõrval
+kõrvale
+kõrvalt
+kõrvas
+kõrvast
+käekõrval
+käekõrvale
+käekõrvalt
+käes
+käest
+kätte
+külge
+küljes
+küljest
+küüsi
+küüsis
+küüsist
+ligi
+ligidal
+ligidale
+ligidalt
+lool
+läbi
+lähedal
+lähedale
+lähedalt
+man
+mant
+manu
+meelest
+mööda
+nahas
+nahka
+nahkas
+najal
+najale
+najalt
+nõjal
+nõjale
+otsa
+otsas
+otsast
+paigale
+paigu
+paiku
+peal
+peale
+pealt
+perra
+perrä
+pidi
+pihta
+piki
+pikku
+pool
+poole
+poolest
+poolt
+puhul
+puksiiris
+pähe
+päralt
+päras
+pärast
+päri
+ringi
+ringis
+risust
+saadetusel
+saadik
+saatel
+saati
+seas
+seast
+sees
+seest
+sekka
+seljataga
+seltsi
+seltsis
+seltsist
+sisse
+slepis
+suhtes
+šlepis
+taga
+tagant
+tagantotsast
+tagaotsas
+tagaselja
+tagasi
+tagast
+tagutsi
+taha
+tahaotsa
+takka
+tarvis
+tasa
+tuuri
+tuuris
+tõttu
+tükkis
+uhal
+vaatamata
+vahel
+vahele
+vahelt
+vahepeal
+vahepeale
+vahepealt
+vahetsi
+varal
+varale
+varul
+vastas
+vastast
+vastu
+veerde
+veeres
+viisi
+võidu
+võrd
+võrdki
+võrra
+võrragi
+väel
+väele
+vältel
+väärt
+väärtki
+äärde
+ääre
+ääres
+äärest
+ühes
+üle
+ümber
+ümbert
+a
+abil
+aina
+ainult
+alalt
+alates
+alati
+alles
+b
+c
+d
+e
+eales
+ealeski
+edasi
+edaspidi
+eelkõige
+eemal
+ei
+eks
+end
+enda
+enese
+ennem
+esialgu
+f
+g
+h
+hoopis
+i
+iganes
+igatahes
+igati
+iial
+iialgi
+ikka
+ikkagi
+ilmaski
+iseenda
+iseenese
+iseenesest
+isegi
+j
+jah
+ju
+juba
+juhul
+just
+järelikult
+k
+ka
+kah
+kas
+kasvõi
+keda
+kestahes
+kogu
+koguni
+kohati
+kokku
+kuhu
+kuhugi
+kuidagi
+kuidas
+kunagi
+kus
+kusagil
+kusjuures
+kuskil
+kust
+kõigepealt
+küll
+l
+liiga
+lisaks
+m
+miks
+mil
+millal
+millalgi
+mispärast
+mistahes
+mistõttu
+mitte
+muide
+muidu
+muidugi
+muist
+mujal
+mujale
+mujalt
+mõlemad
+mõnda
+mõne
+mõnikord
+n
+nii
+niikaua
+niimoodi
+niipaljuke
+niisama
+niisiis
+niivõrd
+nõnda
+nüüd
+o
+omaette
+omakorda
+omavahel
+ometi
+p
+palju
+paljuke
+palju-palju
+peaaegu
+peagi
+peamiselt
+pigem
+pisut
+praegu
+päris
+r
+rohkem
+s
+samas
+samuti
+seal
+sealt
+sedakorda
+sedapuhku
+seega
+seejuures
+seejärel
+seekord
+seepärast
+seetõttu
+sellepärast
+seni
+sestap
+siia
+siiani
+siin
+siinkohal
+siis
+siiski
+siit
+sinna
+suht
+z
+t
+teel
+teineteise
+tõesti
+täiesti
+u
+umbes
+v
+w
+veel
+veelgi
+vist
+võibolla
+võib-olla
+väga
+vähemalt
+välja
+väljas
+väljast
+ära
+ühtlasi
+üksi
+ükskõik
+ülal
+ülale
+ülalt
+üles
+ülesse
+üleval
+ülevalt
+ülimalt
+üsna
+x
+y
+aga
+ega
+ehk
+ehkki
+elik
+ellik
+enge
+ennegu
+ent
+et
+ja
+justkui
+kui
+kuid
+kuigi
+kuivõrd
+kuna
+kuni
+kut
+mistab
+muudkui
+nagu
+nigu
+ning
+olgugi
+otsekui
+otsenagu
+selmet
+sest
+sestab
+vaid
+või
+aa
+adaa
+adjöö
+ae
+ah
+ahaa
+ahah
+ah-ah-ah
+ah-haa
+ahoi
+ai
+aidaa
+aidu-raidu
+aih
+aijeh
+aituma
+aitäh
+aitüma
+ammuu
+amps
+ampsti
+aptsih
+ass
+at
+ata
+at-at-at
+atsih
+atsihh
+auh
+bai-bai
+bingo
+braavo
+brr
+ee
+eeh
+eh
+ehee
+eheh
+eh-eh-hee
+eh-eh-ee
+ehei
+ehh
+ehhee
+einoh
+ena
+ennäe
+ennäh
+fuh
+fui
+fuih
+haa
+hah
+hahaa
+hah-hah-hah
+halleluuja
+hallo
+halloo
+hass
+hee
+heh
+he-he-hee
+hei
+heldeke(ne)
+heureka
+hihii
+hip-hip-hurraa
+hmh
+hmjah
+hoh-hoh-hoo
+hohoo
+hoi
+hollallaa
+hoo
+hoplaa
+hopp
+hops
+hopsassaa
+hopsti
+hosianna
+huh
+huidii
+huist
+hurjah
+hurjeh
+hurjoh
+hurjuh
+hurraa
+huu
+hõhõh
+hõi
+hõissa
+hõissassa
+hõk
+hõkk
+häh
+hä-hä-hää
+hüvasti
+ih-ah-haa
+ih-ih-hii
+ii-ha-ha
+issake
+issakene
+isver
+jaa-ah
+ja-ah
+jaah
+janäe
+jeeh
+jeerum
+jeever
+jessas
+jestas
+juhhei
+jumalaga
+jumalime
+jumaluke
+jumalukene
+jutas
+kaaps
+kaapsti
+kaasike
+kae
+kalps
+kalpsti
+kannäe
+kanäe
+kappadi
+kaps
+kapsti
+karkõmm
+karkäuh
+karkääks
+karkääksti
+karmauh
+karmauhti
+karnaps
+karnapsti
+karniuhti
+karpartsaki
+karpauh
+karpauhti
+karplauh
+karplauhti
+karprauh
+karprauhti
+karsumdi
+karsumm
+kartsumdi
+kartsumm
+karviuh
+karviuhti
+kaske
+kassa
+kauh
+kauhti
+keh
+keksti
+kepsti
+khe
+khm
+kih
+kiiks
+kiiksti
+kiis
+kiiss
+kikerii
+kikerikii
+kili
+kilk
+kilk-kõlk
+kilks
+kilks-kolks
+kilks-kõlks
+kill
+killadi
+killadi|-kolladi
+killadi-kõlladi
+killa-kolla
+killa-kõlla
+kill-kõll
+kimps-komps
+kipp
+kips-kõps
+kiriküüt
+kirra-kõrra
+kirr-kõrr
+kirts
+klaps
+klapsti
+klirdi
+klirr
+klonks
+klops
+klopsti
+kluk
+klu-kluu
+klõks
+klõksti
+klõmdi
+klõmm
+klõmpsti
+klõnks
+klõnksti
+klõps
+klõpsti
+kläu
+kohva-kohva
+kok
+koks
+koksti
+kolaki
+kolk
+kolks
+kolksti
+koll
+kolladi
+komp
+komps
+kompsti
+kop
+kopp
+koppadi
+kops
+kopsti
+kossu
+kotsu
+kraa
+kraak
+kraaks
+kraaps
+kraapsti
+krahh
+kraks
+kraksti
+kraps
+krapsti
+krauh
+krauhti
+kriiks
+kriiksti
+kriips
+kriips-kraaps
+kripa-krõpa
+krips-kraps
+kriuh
+kriuks
+kriuksti
+kromps
+kronk
+kronks
+krooks
+kruu
+krõks
+krõksti
+krõpa
+krõps
+krõpsti
+krõuh
+kräu
+kräuh
+kräuhti
+kräuks
+kss
+kukeleegu
+kukku
+kuku
+kulu
+kurluu
+kurnäu
+kuss
+kussu
+kõks
+kõksti
+kõldi
+kõlks
+kõlksti
+kõll
+kõmaki
+kõmdi
+kõmm
+kõmps
+kõpp
+kõps
+kõpsadi
+kõpsat
+kõpsti
+kõrr
+kõrra-kõrra
+kõss
+kõtt
+kõõksti
+kärr
+kärts
+kärtsti
+käuks
+käuksti
+kääga
+kääks
+kääksti
+köh
+köki-möki
+köksti
+laks
+laksti
+lampsti
+larts
+lartsti
+lats
+latsti
+leelo
+legoo
+lehva
+liiri-lõõri
+lika-lõka
+likat-lõkat
+limpsti
+lips
+lipsti
+lirts
+lirtsaki
+lirtsti
+lonksti
+lops
+lopsti
+lorts
+lortsti
+luks
+lups
+lupsti
+lurts
+lurtsti
+lõks
+lõksti
+lõmps
+lõmpsti
+lõnks
+lõnksti
+lärts
+lärtsti
+läts
+lätsti
+lörts
+lörtsti
+lötsti
+lööps
+lööpsti
+marss
+mats
+matsti
+mauh
+mauhti
+mh
+mhh
+mhmh
+miau
+mjaa
+mkm
+m-mh
+mnjaa
+mnjah
+moens
+mulks
+mulksti
+mull-mull
+mull-mull-mull
+muu
+muuh
+mõh
+mõmm
+mäh
+mäts
+mäu
+mää
+möh
+möh-öh-ää
+möö
+müh-müh
+mühüh
+müks
+müksti
+müraki
+mürr
+mürts
+mürtsaki
+mürtsti
+mütaku
+müta-mäta
+müta-müta
+müt-müt
+müt-müt-müt
+müts
+mütsti
+mütt
+naa
+naah
+nah
+naks
+naksti
+nanuu
+naps
+napsti
+nilpsti
+nipsti
+nirr
+niuh
+niuh-näuh
+niuhti
+noh
+noksti
+nolpsti
+nonoh
+nonoo
+nonäh
+noo
+nooh
+nooks
+norr
+nurr
+nuuts
+nõh
+nõhh
+nõka-nõka
+nõks
+nõksat-nõksat
+nõks-nõks
+nõksti
+nõõ
+nõõh
+näeh
+näh
+nälpsti
+nämm-nämm
+näpsti
+näts
+nätsti
+näu
+näuh
+näuhti
+näuks
+näuksti
+nääh
+nääks
+nühkat-nühkat
+oeh
+oh
+ohh
+ohhh
+oh-hoi
+oh-hoo
+ohoh
+oh-oh-oo
+oh-oh-hoo
+ohoi
+ohoo
+oi
+oih
+oijee
+oijeh
+oo
+ooh
+oo-oh
+oo-ohh
+oot
+ossa
+ot
+paa
+pah
+pahh
+pakaa
+pamm
+pantsti
+pardon
+pardonks
+parlartsti
+parts
+partsti
+partsumdi
+partsumm
+pastoi
+pats
+patst
+patsti
+pau
+pauh
+pauhti
+pele
+pfui
+phuh
+phuuh
+phäh
+phähh
+piiks
+piip
+piiri-pääri
+pimm
+pimm-pamm
+pimm-pomm
+pimm-põmm
+piraki
+piuks
+piu-pau
+plaks
+plaksti
+plarts
+plartsti
+plats
+platsti
+plauh
+plauhh
+plauhti
+pliks
+pliks-plaks
+plinn
+pliraki
+plirts
+plirtsti
+pliu
+pliuh
+ploks
+plotsti
+plumps
+plumpsti
+plõks
+plõksti
+plõmdi
+plõmm
+plõnn
+plärr
+plärts
+plärtsat
+plärtsti
+pläu
+pläuh
+plää
+plörtsat
+pomm
+popp
+pops
+popsti
+ports
+pot
+pots
+potsti
+pott
+praks
+praksti
+prants
+prantsaki
+prantsti
+prassai
+prauh
+prauhh
+prauhti
+priks
+priuh
+priuhh
+priuh-prauh
+proosit
+proost
+prr
+prrr
+prõks
+prõksti
+prõmdi
+prõmm
+prõntsti
+prääk
+prääks
+pst
+psst
+ptrr
+ptruu
+ptüi
+puh
+puhh
+puksti
+pumm
+pumps
+pup-pup-pup
+purts
+puuh
+põks
+põksti
+põmdi
+põmm
+põmmadi
+põnks
+põnn
+põnnadi
+põnt
+põnts
+põntsti
+põraki
+põrr
+põrra-põrra
+päh
+pähh
+päntsti
+pää
+pöörd
+püh
+raks
+raksti
+raps
+rapsti
+ratataa
+rauh
+riips
+riipsti
+riks
+riks-raks
+rips-raps
+rivitult
+robaki
+rops
+ropsaki
+ropsti
+ruik
+räntsti
+räts
+röh
+röhh
+sah
+sahh
+sahkat
+saps
+sapsti
+sauh
+sauhti
+servus
+sihkadi-sahkadi
+sihka-sahka
+sihkat-sahkat
+silks
+silk-solk
+sips
+sipsti
+sirr
+sirr-sorr
+sirts
+sirtsti
+siu
+siuh
+siuh-sauh
+siuh-säuh
+siuhti
+siuks
+siuts
+skool
+so
+soh
+solks
+solksti
+solpsti
+soo
+sooh
+so-oh
+soo-oh
+sopp
+sops
+sopsti
+sorr
+sorts
+sortsti
+so-soo
+soss
+soss-soss
+ss
+sss
+sst
+stopp
+suhkat-sahkat
+sulk
+sulks
+sulksti
+sull
+sulla-sulla
+sulpa-sulpa
+sulps
+sulpsti
+sumaki
+sumdi
+summ
+summat-summat
+sups
+supsaku
+supsti
+surts
+surtsti
+suss
+susti
+suts
+sutsti
+säh
+sähke
+särts
+särtsti
+säu
+säuh
+säuhti
+taevake
+taevakene
+takk
+tere
+terekest
+tibi-tibi
+tikk-takk
+tiks
+tilk
+tilks
+till
+tilla-talla
+till-tall
+tilulii
+tinn
+tip
+tip-tap
+tirr
+tirtsti
+tiu
+tjaa
+tjah
+tohhoh
+tohhoo
+tohoh
+tohoo
+tok
+tokk
+toks
+toksti
+tonks
+tonksti
+tota
+totsti
+tot-tot
+tprr
+tpruu
+trah
+trahh
+trallallaa
+trill
+trillallaa
+trr
+trrr
+tsah
+tsahh
+tsilk
+tsilk-tsolk
+tsirr
+tsiuh
+tskae
+tsolk
+tss
+tst
+tsst
+tsuhh
+tsuk
+tsumm
+tsurr
+tsäuh
+tšao
+tšš
+tššš
+tuk
+tuks
+turts
+turtsti
+tutki
+tutkit
+tutu-lutu
+tutulutu
+tuut
+tuutu-luutu
+tõks
+tötsti
+tümps
+uh
+uhh
+uh-huu
+uhtsa
+uhtsaa
+uhuh
+uhuu
+ui
+uih
+uih-aih
+uijah
+uijeh
+uist
+uit
+uka
+upsti
+uraa
+urjah
+urjeh
+urjoh
+urjuh
+urr
+urraa
+ust
+utu
+uu
+uuh
+vaak
+vaat
+vae
+vaeh
+vai
+vat
+vau
+vhüüt
+vidiit
+viiks
+vilks
+vilksti
+vinki-vinki
+virdi
+virr
+viu
+viudi
+viuh
+viuhti
+voeh
+voh
+vohh
+volks
+volksti
+vooh
+vops
+vopsti
+vot
+vuh
+vuhti
+vuih
+vulks
+vulksti
+vull
+vulpsti
+vups
+vupsaki
+vupsaku
+vupsti
+vurdi
+vurr
+vurra-vurra
+vurts
+vurtsti
+vutt
+võe
+võeh
+või
+võih
+võrr
+võts
+võtt
+vääks
+õe
+õits
+õk
+õkk
+õrr
+õss
+õuh
+äh
+ähh
+ähhähhää
+äh-hää
+äh-äh-hää
+äiu
+äiu-ää
+äss
+ää
+ääh
+äähh
+öh
+öhh
+ök
+üh
+eelmine
+eikeegi
+eimiski
+emb-kumb
+enam
+enim
+iga
+igasugune
+igaüks
+ise
+isesugune
+järgmine
+keegi
+kes
+kumb
+kumbki
+kõik
+meiesugune
+meietaoline
+midagi
+mihuke
+mihukene
+milletaoline
+milline
+mina
+minake
+mingi
+mingisugune
+minusugune
+minutaoline
+mis
+miski
+miskisugune
+missugune
+misuke
+mitmes
+mitmesugune
+mitu
+mitu-mitu
+mitu-setu
+muu
+mõlema
+mõnesugune
+mõni
+mõningane
+mõningas
+mäherdune
+määrane
+naasugune
+need
+nemad
+nendesugune
+nendetaoline
+nihuke
+nihukene
+niimitu
+niisamasugune
+niisugune
+nisuke
+nisukene
+oma
+omaenese
+omasugune
+omataoline
+pool
+praegune
+sama
+samasugune
+samataoline
+see
+seesama
+seesamane
+seesamune
+seesinane
+seesugune
+selline
+sihuke
+sihukene
+sina
+sinusugune
+sinutaoline
+siuke
+siukene
+säherdune
+säärane
+taoline
+teiesugune
+teine
+teistsugune
+tema
+temake
+temakene
+temasugune
+temataoline
+too
+toosama
+toosamane
+üks
+üksteise
+hakkama
+minema
+olema
+pidama
+saama
+tegema
+tulema
+võima
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_eu.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_eu.txt
index 25f1db934..25f1db934 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_eu.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_eu.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_fa.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_fa.txt
index 723641c6d..723641c6d 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_fa.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_fa.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_fi.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_fi.txt
index 4372c9a05..4372c9a05 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_fi.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_fi.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_fr.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_fr.txt
index 749abae68..749abae68 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_fr.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_fr.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ga.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ga.txt
index 9ff88d747..9ff88d747 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ga.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ga.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_gl.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_gl.txt
index d8760b12c..d8760b12c 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_gl.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_gl.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_hi.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_hi.txt
index 86286bb08..86286bb08 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_hi.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_hi.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_hu.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_hu.txt
index 37526da8a..37526da8a 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_hu.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_hu.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_hy.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_hy.txt
index 60c1c50fb..60c1c50fb 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_hy.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_hy.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_id.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_id.txt
index 4617f83a5..4617f83a5 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_id.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_id.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_it.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_it.txt
index 1219cc773..1219cc773 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_it.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_it.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ja.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ja.txt
index d4321be6b..d4321be6b 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ja.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ja.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_lv.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_lv.txt
index e21a23c06..e21a23c06 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_lv.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_lv.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_nl.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_nl.txt
index 47a2aeacf..47a2aeacf 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_nl.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_nl.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_no.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_no.txt
index a7a2c28ba..a7a2c28ba 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_no.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_no.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_pt.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_pt.txt
index acfeb01af..acfeb01af 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_pt.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_pt.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ro.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ro.txt
index 4fdee90a5..4fdee90a5 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ro.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ro.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ru.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ru.txt
index 55271400c..55271400c 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_ru.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_ru.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_sv.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_sv.txt
index 096f87f67..096f87f67 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_sv.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_sv.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_th.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_th.txt
index 07f0fabe6..07f0fabe6 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_th.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_th.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_tr.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_tr.txt
index 84d9408d4..84d9408d4 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/stopwords_tr.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/stopwords_tr.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/lang/userdict_ja.txt b/solr-8.3.1/server/solr/configsets/_default/conf/lang/userdict_ja.txt
index 6f0368e4d..6f0368e4d 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/lang/userdict_ja.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/lang/userdict_ja.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/managed-schema b/solr-8.3.1/server/solr/configsets/_default/conf/managed-schema
index 5b9b9bfa8..d832ed12c 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/managed-schema
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/managed-schema
@@ -664,7 +664,18 @@
<!-- more aggressive: <filter class="solr.SnowballPorterFilterFactory" language="Spanish"/> -->
</analyzer>
</fieldType>
-
+
+ <!-- Estonian -->
+ <dynamicField name="*_txt_et" type="text_et" indexed="true" stored="true"/>
+ <fieldType name="text_et" class="solr.TextField" positionIncrementGap="100">
+ <analyzer>
+ <tokenizer class="solr.StandardTokenizerFactory"/>
+ <filter class="solr.LowerCaseFilterFactory"/>
+ <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_et.txt" />
+ <filter class="solr.SnowballPorterFilterFactory" language="Estonian"/>
+ </analyzer>
+ </fieldType>
+
<!-- Basque -->
<dynamicField name="*_txt_eu" type="text_eu" indexed="true" stored="true"/>
<fieldType name="text_eu" class="solr.TextField" positionIncrementGap="100">
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/params.json b/solr-8.3.1/server/solr/configsets/_default/conf/params.json
index 9c259db53..9c259db53 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/params.json
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/params.json
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/protwords.txt b/solr-8.3.1/server/solr/configsets/_default/conf/protwords.txt
index 1dfc0abec..1dfc0abec 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/protwords.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/protwords.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/solrconfig.xml b/solr-8.3.1/server/solr/configsets/_default/conf/solrconfig.xml
index 8fb5f7750..ad686688e 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/solrconfig.xml
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/solrconfig.xml
@@ -35,7 +35,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>8.1.1</luceneMatchVersion>
+ <luceneMatchVersion>8.3.1</luceneMatchVersion>
<!-- <lib/> directives can be used to instruct Solr to load any Jars
identified and use them to resolve any "plugins" specified in
@@ -163,6 +163,15 @@
<!-- <ramBufferSizeMB>100</ramBufferSizeMB> -->
<!-- <maxBufferedDocs>1000</maxBufferedDocs> -->
+ <!-- Expert: ramPerThreadHardLimitMB sets the maximum amount of RAM that can be consumed
+ per thread before they are flushed. When limit is exceeded, this triggers a forced
+ flush even if ramBufferSizeMB has not been exceeded.
+ This is a safety limit to prevent Lucene's DocumentsWriterPerThread from address space
+ exhaustion due to its internal 32 bit signed integer based memory addressing.
+ The specified value should be greater than 0 and less than 2048MB. When not specified,
+ Solr uses Lucene's default value 1945. -->
+ <!-- <ramPerThreadHardLimitMB>1945</ramPerThreadHardLimitMB> -->
+
<!-- Expert: Merge Policy
The Merge Policy in Lucene controls how merging of segments is done.
The default since Solr/Lucene 3.3 is TieredMergePolicy.
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/stopwords.txt b/solr-8.3.1/server/solr/configsets/_default/conf/stopwords.txt
index ae1e83eeb..ae1e83eeb 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/stopwords.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/stopwords.txt
diff --git a/solr-8.1.1/server/solr/configsets/_default/conf/synonyms.txt b/solr-8.3.1/server/solr/configsets/_default/conf/synonyms.txt
index eab4ee875..eab4ee875 100644
--- a/solr-8.1.1/server/solr/configsets/_default/conf/synonyms.txt
+++ b/solr-8.3.1/server/solr/configsets/_default/conf/synonyms.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json
index 6a4aec39e..6a4aec39e 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_rest_managed.json
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json
index a694e5c37..a694e5c37 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_stopwords_english.json
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json
index 869bdce05..869bdce05 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/_schema_analysis_synonyms_english.json
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/README.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/README.txt
index 3d90ec72d..3d90ec72d 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/README.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/README.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml
index d802465f6..d802465f6 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/kmeans-attributes.xml
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml
index 5febfc320..5febfc320 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/lingo-attributes.xml
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml
index c1bf110c8..c1bf110c8 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/clustering/carrot2/stc-attributes.xml
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml
index 3a9c58afe..3a9c58afe 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/currency.xml
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml
index 2c09ebed6..2c09ebed6 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/elevate.xml
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ca.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ca.txt
index 307a85f91..307a85f91 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ca.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ca.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_fr.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_fr.txt
index f1bba51b2..f1bba51b2 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_fr.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_fr.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ga.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ga.txt
index 9ebe7fa34..9ebe7fa34 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ga.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_ga.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_it.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_it.txt
index cac040953..cac040953 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_it.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/contractions_it.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/hyphenations_ga.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/hyphenations_ga.txt
index 4d2642cc5..4d2642cc5 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/hyphenations_ga.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/hyphenations_ga.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stemdict_nl.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stemdict_nl.txt
index 441072971..441072971 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stemdict_nl.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stemdict_nl.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stoptags_ja.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stoptags_ja.txt
index 71b750845..71b750845 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stoptags_ja.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stoptags_ja.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ar.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ar.txt
index 046829db6..046829db6 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ar.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ar.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_bg.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_bg.txt
index 1ae4ba2ae..1ae4ba2ae 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_bg.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_bg.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ca.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ca.txt
index 3da65deaf..3da65deaf 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ca.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ca.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ckb.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ckb.txt
index 87abf118f..87abf118f 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ckb.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ckb.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_cz.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_cz.txt
index 53c6097da..53c6097da 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_cz.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_cz.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_da.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_da.txt
index 42e6145b9..42e6145b9 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_da.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_da.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_de.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_de.txt
index 86525e7ae..86525e7ae 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_de.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_de.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_el.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_el.txt
index 232681f5b..232681f5b 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_el.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_el.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_en.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_en.txt
index 2c164c0b2..2c164c0b2 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_en.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_en.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_es.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_es.txt
index 487d78c8d..487d78c8d 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_es.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_es.txt
diff --git a/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_et.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_et.txt
new file mode 100644
index 000000000..1b06a134b
--- /dev/null
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_et.txt
@@ -0,0 +1,1603 @@
+# Estonian stopwords list
+all
+alla
+allapoole
+allpool
+alt
+altpoolt
+eel
+eespool
+enne
+hommikupoole
+hoolimata
+ilma
+kaudu
+keset
+kesk
+kohe
+koos
+kuhupoole
+kuni
+kuspool
+kustpoolt
+kõige
+käsikäes
+lappi
+ligi
+läbi
+mööda
+paitsi
+peale
+pealepoole
+pealpool
+pealt
+pealtpoolt
+piki
+pikku
+piku
+pikuti
+põiki
+pärast
+päri
+risti
+sealpool
+sealtpoolt
+seespool
+seltsis
+siiapoole
+siinpool
+siitpoolt
+sinnapoole
+sissepoole
+taga
+tagantpoolt
+tagapidi
+tagapool
+taha
+tahapoole
+teispool
+teispoole
+tänu
+tükkis
+vaatamata
+vastu
+väljapoole
+väljaspool
+väljastpoolt
+õhtupoole
+ühes
+ühestükis
+ühestükkis
+ülalpool
+ülaltpoolt
+üle
+ülespoole
+ülevalpool
+ülevaltpoolt
+ümber
+ümbert
+aegu
+aegus
+alguks
+algul
+algule
+algult
+alguni
+all
+alla
+alt
+alul
+alutsi
+arvel
+asemel
+asemele
+eel
+eeli
+ees
+eesotsas
+eest
+eestotsast
+esitsi
+ette
+etteotsa
+haaval
+heaks
+hoolimata
+hulgas
+hulgast
+hulka
+jalgu
+jalus
+jalust
+jaoks
+jooksul
+juurde
+juures
+juurest
+jälil
+jälile
+järel
+järele
+järelt
+järgi
+kaasas
+kallal
+kallale
+kallalt
+kamul
+kannul
+kannule
+kannult
+kaudu
+kaupa
+keskel
+keskele
+keskelt
+keskis
+keskpaiku
+kestel
+kestes
+kilda
+killas
+killast
+kimpu
+kimpus
+kiuste
+kohal
+kohale
+kohalt
+kohaselt
+kohe
+kohta
+koos
+korral
+kukil
+kukile
+kukilt
+kulul
+kõrva
+kõrval
+kõrvale
+kõrvalt
+kõrvas
+kõrvast
+käekõrval
+käekõrvale
+käekõrvalt
+käes
+käest
+kätte
+külge
+küljes
+küljest
+küüsi
+küüsis
+küüsist
+ligi
+ligidal
+ligidale
+ligidalt
+aegu
+aegus
+alguks
+algul
+algule
+algult
+alguni
+all
+alla
+alt
+alul
+alutsi
+arvel
+asemel
+asemele
+eel
+eeli
+ees
+eesotsas
+eest
+eestotsast
+esitsi
+ette
+etteotsa
+haaval
+heaks
+hoolimata
+hulgas
+hulgast
+hulka
+jalgu
+jalus
+jalust
+jaoks
+jooksul
+juurde
+juures
+juurest
+jälil
+jälile
+järel
+järele
+järelt
+järgi
+kaasas
+kallal
+kallale
+kallalt
+kamul
+kannul
+kannule
+kannult
+kaudu
+kaupa
+keskel
+keskele
+keskelt
+keskis
+keskpaiku
+kestel
+kestes
+kilda
+killas
+killast
+kimpu
+kimpus
+kiuste
+kohal
+kohale
+kohalt
+kohaselt
+kohe
+kohta
+koos
+korral
+kukil
+kukile
+kukilt
+kulul
+kõrva
+kõrval
+kõrvale
+kõrvalt
+kõrvas
+kõrvast
+käekõrval
+käekõrvale
+käekõrvalt
+käes
+käest
+kätte
+külge
+küljes
+küljest
+küüsi
+küüsis
+küüsist
+ligi
+ligidal
+ligidale
+ligidalt
+lool
+läbi
+lähedal
+lähedale
+lähedalt
+man
+mant
+manu
+meelest
+mööda
+nahas
+nahka
+nahkas
+najal
+najale
+najalt
+nõjal
+nõjale
+otsa
+otsas
+otsast
+paigale
+paigu
+paiku
+peal
+peale
+pealt
+perra
+perrä
+pidi
+pihta
+piki
+pikku
+pool
+poole
+poolest
+poolt
+puhul
+puksiiris
+pähe
+päralt
+päras
+pärast
+päri
+ringi
+ringis
+risust
+saadetusel
+saadik
+saatel
+saati
+seas
+seast
+sees
+seest
+sekka
+seljataga
+seltsi
+seltsis
+seltsist
+sisse
+slepis
+suhtes
+šlepis
+taga
+tagant
+tagantotsast
+tagaotsas
+tagaselja
+tagasi
+tagast
+tagutsi
+taha
+tahaotsa
+takka
+tarvis
+tasa
+tuuri
+tuuris
+tõttu
+tükkis
+uhal
+vaatamata
+vahel
+vahele
+vahelt
+vahepeal
+vahepeale
+vahepealt
+vahetsi
+varal
+varale
+varul
+vastas
+vastast
+vastu
+veerde
+veeres
+viisi
+võidu
+võrd
+võrdki
+võrra
+võrragi
+väel
+väele
+vältel
+väärt
+väärtki
+äärde
+ääre
+ääres
+äärest
+ühes
+üle
+ümber
+ümbert
+a
+abil
+aina
+ainult
+alalt
+alates
+alati
+alles
+b
+c
+d
+e
+eales
+ealeski
+edasi
+edaspidi
+eelkõige
+eemal
+ei
+eks
+end
+enda
+enese
+ennem
+esialgu
+f
+g
+h
+hoopis
+i
+iganes
+igatahes
+igati
+iial
+iialgi
+ikka
+ikkagi
+ilmaski
+iseenda
+iseenese
+iseenesest
+isegi
+j
+jah
+ju
+juba
+juhul
+just
+järelikult
+k
+ka
+kah
+kas
+kasvõi
+keda
+kestahes
+kogu
+koguni
+kohati
+kokku
+kuhu
+kuhugi
+kuidagi
+kuidas
+kunagi
+kus
+kusagil
+kusjuures
+kuskil
+kust
+kõigepealt
+küll
+l
+liiga
+lisaks
+m
+miks
+mil
+millal
+millalgi
+mispärast
+mistahes
+mistõttu
+mitte
+muide
+muidu
+muidugi
+muist
+mujal
+mujale
+mujalt
+mõlemad
+mõnda
+mõne
+mõnikord
+n
+nii
+niikaua
+niimoodi
+niipaljuke
+niisama
+niisiis
+niivõrd
+nõnda
+nüüd
+o
+omaette
+omakorda
+omavahel
+ometi
+p
+palju
+paljuke
+palju-palju
+peaaegu
+peagi
+peamiselt
+pigem
+pisut
+praegu
+päris
+r
+rohkem
+s
+samas
+samuti
+seal
+sealt
+sedakorda
+sedapuhku
+seega
+seejuures
+seejärel
+seekord
+seepärast
+seetõttu
+sellepärast
+seni
+sestap
+siia
+siiani
+siin
+siinkohal
+siis
+siiski
+siit
+sinna
+suht
+z
+t
+teel
+teineteise
+tõesti
+täiesti
+u
+umbes
+v
+w
+veel
+veelgi
+vist
+võibolla
+võib-olla
+väga
+vähemalt
+välja
+väljas
+väljast
+ära
+ühtlasi
+üksi
+ükskõik
+ülal
+ülale
+ülalt
+üles
+ülesse
+üleval
+ülevalt
+ülimalt
+üsna
+x
+y
+aga
+ega
+ehk
+ehkki
+elik
+ellik
+enge
+ennegu
+ent
+et
+ja
+justkui
+kui
+kuid
+kuigi
+kuivõrd
+kuna
+kuni
+kut
+mistab
+muudkui
+nagu
+nigu
+ning
+olgugi
+otsekui
+otsenagu
+selmet
+sest
+sestab
+vaid
+või
+aa
+adaa
+adjöö
+ae
+ah
+ahaa
+ahah
+ah-ah-ah
+ah-haa
+ahoi
+ai
+aidaa
+aidu-raidu
+aih
+aijeh
+aituma
+aitäh
+aitüma
+ammuu
+amps
+ampsti
+aptsih
+ass
+at
+ata
+at-at-at
+atsih
+atsihh
+auh
+bai-bai
+bingo
+braavo
+brr
+ee
+eeh
+eh
+ehee
+eheh
+eh-eh-hee
+eh-eh-ee
+ehei
+ehh
+ehhee
+einoh
+ena
+ennäe
+ennäh
+fuh
+fui
+fuih
+haa
+hah
+hahaa
+hah-hah-hah
+halleluuja
+hallo
+halloo
+hass
+hee
+heh
+he-he-hee
+hei
+heldeke(ne)
+heureka
+hihii
+hip-hip-hurraa
+hmh
+hmjah
+hoh-hoh-hoo
+hohoo
+hoi
+hollallaa
+hoo
+hoplaa
+hopp
+hops
+hopsassaa
+hopsti
+hosianna
+huh
+huidii
+huist
+hurjah
+hurjeh
+hurjoh
+hurjuh
+hurraa
+huu
+hõhõh
+hõi
+hõissa
+hõissassa
+hõk
+hõkk
+häh
+hä-hä-hää
+hüvasti
+ih-ah-haa
+ih-ih-hii
+ii-ha-ha
+issake
+issakene
+isver
+jaa-ah
+ja-ah
+jaah
+janäe
+jeeh
+jeerum
+jeever
+jessas
+jestas
+juhhei
+jumalaga
+jumalime
+jumaluke
+jumalukene
+jutas
+kaaps
+kaapsti
+kaasike
+kae
+kalps
+kalpsti
+kannäe
+kanäe
+kappadi
+kaps
+kapsti
+karkõmm
+karkäuh
+karkääks
+karkääksti
+karmauh
+karmauhti
+karnaps
+karnapsti
+karniuhti
+karpartsaki
+karpauh
+karpauhti
+karplauh
+karplauhti
+karprauh
+karprauhti
+karsumdi
+karsumm
+kartsumdi
+kartsumm
+karviuh
+karviuhti
+kaske
+kassa
+kauh
+kauhti
+keh
+keksti
+kepsti
+khe
+khm
+kih
+kiiks
+kiiksti
+kiis
+kiiss
+kikerii
+kikerikii
+kili
+kilk
+kilk-kõlk
+kilks
+kilks-kolks
+kilks-kõlks
+kill
+killadi
+killadi|-kolladi
+killadi-kõlladi
+killa-kolla
+killa-kõlla
+kill-kõll
+kimps-komps
+kipp
+kips-kõps
+kiriküüt
+kirra-kõrra
+kirr-kõrr
+kirts
+klaps
+klapsti
+klirdi
+klirr
+klonks
+klops
+klopsti
+kluk
+klu-kluu
+klõks
+klõksti
+klõmdi
+klõmm
+klõmpsti
+klõnks
+klõnksti
+klõps
+klõpsti
+kläu
+kohva-kohva
+kok
+koks
+koksti
+kolaki
+kolk
+kolks
+kolksti
+koll
+kolladi
+komp
+komps
+kompsti
+kop
+kopp
+koppadi
+kops
+kopsti
+kossu
+kotsu
+kraa
+kraak
+kraaks
+kraaps
+kraapsti
+krahh
+kraks
+kraksti
+kraps
+krapsti
+krauh
+krauhti
+kriiks
+kriiksti
+kriips
+kriips-kraaps
+kripa-krõpa
+krips-kraps
+kriuh
+kriuks
+kriuksti
+kromps
+kronk
+kronks
+krooks
+kruu
+krõks
+krõksti
+krõpa
+krõps
+krõpsti
+krõuh
+kräu
+kräuh
+kräuhti
+kräuks
+kss
+kukeleegu
+kukku
+kuku
+kulu
+kurluu
+kurnäu
+kuss
+kussu
+kõks
+kõksti
+kõldi
+kõlks
+kõlksti
+kõll
+kõmaki
+kõmdi
+kõmm
+kõmps
+kõpp
+kõps
+kõpsadi
+kõpsat
+kõpsti
+kõrr
+kõrra-kõrra
+kõss
+kõtt
+kõõksti
+kärr
+kärts
+kärtsti
+käuks
+käuksti
+kääga
+kääks
+kääksti
+köh
+köki-möki
+köksti
+laks
+laksti
+lampsti
+larts
+lartsti
+lats
+latsti
+leelo
+legoo
+lehva
+liiri-lõõri
+lika-lõka
+likat-lõkat
+limpsti
+lips
+lipsti
+lirts
+lirtsaki
+lirtsti
+lonksti
+lops
+lopsti
+lorts
+lortsti
+luks
+lups
+lupsti
+lurts
+lurtsti
+lõks
+lõksti
+lõmps
+lõmpsti
+lõnks
+lõnksti
+lärts
+lärtsti
+läts
+lätsti
+lörts
+lörtsti
+lötsti
+lööps
+lööpsti
+marss
+mats
+matsti
+mauh
+mauhti
+mh
+mhh
+mhmh
+miau
+mjaa
+mkm
+m-mh
+mnjaa
+mnjah
+moens
+mulks
+mulksti
+mull-mull
+mull-mull-mull
+muu
+muuh
+mõh
+mõmm
+mäh
+mäts
+mäu
+mää
+möh
+möh-öh-ää
+möö
+müh-müh
+mühüh
+müks
+müksti
+müraki
+mürr
+mürts
+mürtsaki
+mürtsti
+mütaku
+müta-mäta
+müta-müta
+müt-müt
+müt-müt-müt
+müts
+mütsti
+mütt
+naa
+naah
+nah
+naks
+naksti
+nanuu
+naps
+napsti
+nilpsti
+nipsti
+nirr
+niuh
+niuh-näuh
+niuhti
+noh
+noksti
+nolpsti
+nonoh
+nonoo
+nonäh
+noo
+nooh
+nooks
+norr
+nurr
+nuuts
+nõh
+nõhh
+nõka-nõka
+nõks
+nõksat-nõksat
+nõks-nõks
+nõksti
+nõõ
+nõõh
+näeh
+näh
+nälpsti
+nämm-nämm
+näpsti
+näts
+nätsti
+näu
+näuh
+näuhti
+näuks
+näuksti
+nääh
+nääks
+nühkat-nühkat
+oeh
+oh
+ohh
+ohhh
+oh-hoi
+oh-hoo
+ohoh
+oh-oh-oo
+oh-oh-hoo
+ohoi
+ohoo
+oi
+oih
+oijee
+oijeh
+oo
+ooh
+oo-oh
+oo-ohh
+oot
+ossa
+ot
+paa
+pah
+pahh
+pakaa
+pamm
+pantsti
+pardon
+pardonks
+parlartsti
+parts
+partsti
+partsumdi
+partsumm
+pastoi
+pats
+patst
+patsti
+pau
+pauh
+pauhti
+pele
+pfui
+phuh
+phuuh
+phäh
+phähh
+piiks
+piip
+piiri-pääri
+pimm
+pimm-pamm
+pimm-pomm
+pimm-põmm
+piraki
+piuks
+piu-pau
+plaks
+plaksti
+plarts
+plartsti
+plats
+platsti
+plauh
+plauhh
+plauhti
+pliks
+pliks-plaks
+plinn
+pliraki
+plirts
+plirtsti
+pliu
+pliuh
+ploks
+plotsti
+plumps
+plumpsti
+plõks
+plõksti
+plõmdi
+plõmm
+plõnn
+plärr
+plärts
+plärtsat
+plärtsti
+pläu
+pläuh
+plää
+plörtsat
+pomm
+popp
+pops
+popsti
+ports
+pot
+pots
+potsti
+pott
+praks
+praksti
+prants
+prantsaki
+prantsti
+prassai
+prauh
+prauhh
+prauhti
+priks
+priuh
+priuhh
+priuh-prauh
+proosit
+proost
+prr
+prrr
+prõks
+prõksti
+prõmdi
+prõmm
+prõntsti
+prääk
+prääks
+pst
+psst
+ptrr
+ptruu
+ptüi
+puh
+puhh
+puksti
+pumm
+pumps
+pup-pup-pup
+purts
+puuh
+põks
+põksti
+põmdi
+põmm
+põmmadi
+põnks
+põnn
+põnnadi
+põnt
+põnts
+põntsti
+põraki
+põrr
+põrra-põrra
+päh
+pähh
+päntsti
+pää
+pöörd
+püh
+raks
+raksti
+raps
+rapsti
+ratataa
+rauh
+riips
+riipsti
+riks
+riks-raks
+rips-raps
+rivitult
+robaki
+rops
+ropsaki
+ropsti
+ruik
+räntsti
+räts
+röh
+röhh
+sah
+sahh
+sahkat
+saps
+sapsti
+sauh
+sauhti
+servus
+sihkadi-sahkadi
+sihka-sahka
+sihkat-sahkat
+silks
+silk-solk
+sips
+sipsti
+sirr
+sirr-sorr
+sirts
+sirtsti
+siu
+siuh
+siuh-sauh
+siuh-säuh
+siuhti
+siuks
+siuts
+skool
+so
+soh
+solks
+solksti
+solpsti
+soo
+sooh
+so-oh
+soo-oh
+sopp
+sops
+sopsti
+sorr
+sorts
+sortsti
+so-soo
+soss
+soss-soss
+ss
+sss
+sst
+stopp
+suhkat-sahkat
+sulk
+sulks
+sulksti
+sull
+sulla-sulla
+sulpa-sulpa
+sulps
+sulpsti
+sumaki
+sumdi
+summ
+summat-summat
+sups
+supsaku
+supsti
+surts
+surtsti
+suss
+susti
+suts
+sutsti
+säh
+sähke
+särts
+särtsti
+säu
+säuh
+säuhti
+taevake
+taevakene
+takk
+tere
+terekest
+tibi-tibi
+tikk-takk
+tiks
+tilk
+tilks
+till
+tilla-talla
+till-tall
+tilulii
+tinn
+tip
+tip-tap
+tirr
+tirtsti
+tiu
+tjaa
+tjah
+tohhoh
+tohhoo
+tohoh
+tohoo
+tok
+tokk
+toks
+toksti
+tonks
+tonksti
+tota
+totsti
+tot-tot
+tprr
+tpruu
+trah
+trahh
+trallallaa
+trill
+trillallaa
+trr
+trrr
+tsah
+tsahh
+tsilk
+tsilk-tsolk
+tsirr
+tsiuh
+tskae
+tsolk
+tss
+tst
+tsst
+tsuhh
+tsuk
+tsumm
+tsurr
+tsäuh
+tšao
+tšš
+tššš
+tuk
+tuks
+turts
+turtsti
+tutki
+tutkit
+tutu-lutu
+tutulutu
+tuut
+tuutu-luutu
+tõks
+tötsti
+tümps
+uh
+uhh
+uh-huu
+uhtsa
+uhtsaa
+uhuh
+uhuu
+ui
+uih
+uih-aih
+uijah
+uijeh
+uist
+uit
+uka
+upsti
+uraa
+urjah
+urjeh
+urjoh
+urjuh
+urr
+urraa
+ust
+utu
+uu
+uuh
+vaak
+vaat
+vae
+vaeh
+vai
+vat
+vau
+vhüüt
+vidiit
+viiks
+vilks
+vilksti
+vinki-vinki
+virdi
+virr
+viu
+viudi
+viuh
+viuhti
+voeh
+voh
+vohh
+volks
+volksti
+vooh
+vops
+vopsti
+vot
+vuh
+vuhti
+vuih
+vulks
+vulksti
+vull
+vulpsti
+vups
+vupsaki
+vupsaku
+vupsti
+vurdi
+vurr
+vurra-vurra
+vurts
+vurtsti
+vutt
+võe
+võeh
+või
+võih
+võrr
+võts
+võtt
+vääks
+õe
+õits
+õk
+õkk
+õrr
+õss
+õuh
+äh
+ähh
+ähhähhää
+äh-hää
+äh-äh-hää
+äiu
+äiu-ää
+äss
+ää
+ääh
+äähh
+öh
+öhh
+ök
+üh
+eelmine
+eikeegi
+eimiski
+emb-kumb
+enam
+enim
+iga
+igasugune
+igaüks
+ise
+isesugune
+järgmine
+keegi
+kes
+kumb
+kumbki
+kõik
+meiesugune
+meietaoline
+midagi
+mihuke
+mihukene
+milletaoline
+milline
+mina
+minake
+mingi
+mingisugune
+minusugune
+minutaoline
+mis
+miski
+miskisugune
+missugune
+misuke
+mitmes
+mitmesugune
+mitu
+mitu-mitu
+mitu-setu
+muu
+mõlema
+mõnesugune
+mõni
+mõningane
+mõningas
+mäherdune
+määrane
+naasugune
+need
+nemad
+nendesugune
+nendetaoline
+nihuke
+nihukene
+niimitu
+niisamasugune
+niisugune
+nisuke
+nisukene
+oma
+omaenese
+omasugune
+omataoline
+pool
+praegune
+sama
+samasugune
+samataoline
+see
+seesama
+seesamane
+seesamune
+seesinane
+seesugune
+selline
+sihuke
+sihukene
+sina
+sinusugune
+sinutaoline
+siuke
+siukene
+säherdune
+säärane
+taoline
+teiesugune
+teine
+teistsugune
+tema
+temake
+temakene
+temasugune
+temataoline
+too
+toosama
+toosamane
+üks
+üksteise
+hakkama
+minema
+olema
+pidama
+saama
+tegema
+tulema
+võima
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_eu.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_eu.txt
index 25f1db934..25f1db934 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_eu.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_eu.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fa.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fa.txt
index 723641c6d..723641c6d 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fa.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fa.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fi.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fi.txt
index 4372c9a05..4372c9a05 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fi.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fi.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fr.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fr.txt
index 749abae68..749abae68 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fr.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_fr.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ga.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ga.txt
index 9ff88d747..9ff88d747 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ga.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ga.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_gl.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_gl.txt
index d8760b12c..d8760b12c 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_gl.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_gl.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hi.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hi.txt
index 86286bb08..86286bb08 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hi.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hi.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hu.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hu.txt
index 37526da8a..37526da8a 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hu.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hu.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hy.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hy.txt
index 60c1c50fb..60c1c50fb 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hy.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_hy.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_id.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_id.txt
index 4617f83a5..4617f83a5 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_id.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_id.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_it.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_it.txt
index 1219cc773..1219cc773 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_it.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_it.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ja.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ja.txt
index d4321be6b..d4321be6b 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ja.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ja.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_lv.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_lv.txt
index e21a23c06..e21a23c06 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_lv.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_lv.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_nl.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_nl.txt
index 47a2aeacf..47a2aeacf 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_nl.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_nl.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_no.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_no.txt
index a7a2c28ba..a7a2c28ba 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_no.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_no.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_pt.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_pt.txt
index acfeb01af..acfeb01af 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_pt.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_pt.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ro.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ro.txt
index 4fdee90a5..4fdee90a5 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ro.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ro.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ru.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ru.txt
index 55271400c..55271400c 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ru.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_ru.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_sv.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_sv.txt
index 096f87f67..096f87f67 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_sv.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_sv.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_th.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_th.txt
index 07f0fabe6..07f0fabe6 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_th.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_th.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_tr.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_tr.txt
index 84d9408d4..84d9408d4 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_tr.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/stopwords_tr.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/userdict_ja.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/userdict_ja.txt
index 6f0368e4d..6f0368e4d 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/lang/userdict_ja.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/lang/userdict_ja.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/managed-schema b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/managed-schema
index b6d3d165d..69cf16d17 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/managed-schema
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/managed-schema
@@ -847,7 +847,17 @@
<!-- more aggressive: <filter class="solr.SnowballPorterFilterFactory" language="Spanish"/> -->
</analyzer>
</fieldType>
-
+
+ <!-- Estonian -->
+ <fieldType name="text_et" class="solr.TextField" positionIncrementGap="100">
+ <analyzer>
+ <tokenizer class="solr.StandardTokenizerFactory"/>
+ <filter class="solr.LowerCaseFilterFactory"/>
+ <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_et.txt" />
+ <filter class="solr.SnowballPorterFilterFactory" language="Estonian"/>
+ </analyzer>
+ </fieldType>
+
<!-- Basque -->
<fieldType name="text_eu" class="solr.TextField" positionIncrementGap="100">
<analyzer>
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-FoldToASCII.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-FoldToASCII.txt
index 9a84b6eac..9a84b6eac 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-FoldToASCII.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-FoldToASCII.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-ISOLatin1Accent.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-ISOLatin1Accent.txt
index ede774258..ede774258 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-ISOLatin1Accent.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/mapping-ISOLatin1Accent.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/params.json b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/params.json
index 4c0ac39c1..4c0ac39c1 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/params.json
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/params.json
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/protwords.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/protwords.txt
index 1dfc0abec..1dfc0abec 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/protwords.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/protwords.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
index 6038d5846..6c6112d78 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
@@ -35,7 +35,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>8.1.1</luceneMatchVersion>
+ <luceneMatchVersion>8.3.1</luceneMatchVersion>
<!-- <lib/> directives can be used to instruct Solr to load any Jars
identified and use them to resolve any "plugins" specified in
@@ -165,6 +165,15 @@
<!-- <ramBufferSizeMB>100</ramBufferSizeMB> -->
<!-- <maxBufferedDocs>1000</maxBufferedDocs> -->
+ <!-- Expert: ramPerThreadHardLimitMB sets the maximum amount of RAM that can be consumed
+ per thread before they are flushed. When limit is exceeded, this triggers a forced
+ flush even if ramBufferSizeMB has not been exceeded.
+ This is a safety limit to prevent Lucene's DocumentsWriterPerThread from address space
+ exhaustion due to its internal 32 bit signed integer based memory addressing.
+ The specified value should be greater than 0 and less than 2048MB. When not specified,
+ Solr uses Lucene's default value 1945. -->
+ <!-- <ramPerThreadHardLimitMB>1945</ramPerThreadHardLimitMB> -->
+
<!-- Expert: Merge Policy
The Merge Policy in Lucene controls how merging of segments is done.
The default since Solr/Lucene 3.3 is TieredMergePolicy.
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/spellings.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/spellings.txt
index 162a044d5..162a044d5 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/spellings.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/spellings.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/stopwords.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/stopwords.txt
index ae1e83eeb..ae1e83eeb 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/stopwords.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/stopwords.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/synonyms.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/synonyms.txt
index eab4ee875..eab4ee875 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/synonyms.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/synonyms.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js
index 49b07f9b7..49b07f9b7 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/update-script.js
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/README.txt b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/README.txt
index 5d560baec..5d560baec 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/README.txt
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/README.txt
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/VM_global_library.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/VM_global_library.vm
index 42dde8984..42dde8984 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/VM_global_library.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/VM_global_library.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/browse.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/browse.vm
index 10ecaeb8e..10ecaeb8e 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/browse.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/browse.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster.vm
index 09885f3e9..09885f3e9 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster_results.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster_results.vm
index 204480d5d..204480d5d 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster_results.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/cluster_results.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/debug.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/debug.vm
index 8f6d23280..8f6d23280 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/debug.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/debug.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/did_you_mean.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/did_you_mean.vm
index d0eb4f817..d0eb4f817 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/did_you_mean.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/did_you_mean.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/error.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/error.vm
index 80b581979..80b581979 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/error.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/error.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_fields.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_fields.vm
index 292681767..292681767 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_fields.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_fields.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_pivot.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_pivot.vm
index 7aa50da3f..7aa50da3f 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_pivot.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_pivot.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_queries.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_queries.vm
index 37489c7e0..37489c7e0 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_queries.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_queries.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_ranges.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_ranges.vm
index a76941547..a76941547 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_ranges.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facet_ranges.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facets.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facets.vm
index 55d40c9ab..55d40c9ab 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facets.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/facets.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/footer.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/footer.vm
index e7430d38f..e7430d38f 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/footer.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/footer.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/head.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/head.vm
index 15dc0e817..15dc0e817 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/head.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/head.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/header.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/header.vm
index a4084511b..a4084511b 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/header.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/header.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit.vm
index a9c11f411..a9c11f411 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_grouped.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_grouped.vm
index 5297f1e9a..5297f1e9a 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_grouped.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_grouped.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_plain.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_plain.vm
index 193439b59..193439b59 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_plain.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/hit_plain.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/join_doc.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/join_doc.vm
index 9956012b4..9956012b4 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/join_doc.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/join_doc.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css
index 97a62e0bb..97a62e0bb 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.css
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js
index 7ede3b8a3..7ede3b8a3 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/jquery.autocomplete.js
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/layout.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/layout.vm
index 50f4c1bc8..50f4c1bc8 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/layout.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/layout.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css
index 67278fb7b..67278fb7b 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/main.css
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/mime_type_lists.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/mime_type_lists.vm
index 1468bbdbf..1468bbdbf 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/mime_type_lists.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/mime_type_lists.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_bottom.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_bottom.vm
index 71b8bdf21..71b8bdf21 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_bottom.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_bottom.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_top.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_top.vm
index e0ac8ac89..e0ac8ac89 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_top.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/pagination_top.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/product_doc.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/product_doc.vm
index c878d8c13..c878d8c13 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/product_doc.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/product_doc.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query.vm
index ddbab3fcf..ddbab3fcf 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_form.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_form.vm
index 70a0af20f..70a0af20f 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_form.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_form.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_group.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_group.vm
index 42e54573e..42e54573e 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_group.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_group.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_spatial.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_spatial.vm
index 2bc204493..2bc204493 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_spatial.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/query_spatial.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/results_list.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/results_list.vm
index f73532b2d..f73532b2d 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/results_list.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/results_list.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/richtext_doc.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/richtext_doc.vm
index 74f1c0756..74f1c0756 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/richtext_doc.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/richtext_doc.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/suggest.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/suggest.vm
index dae6b830d..dae6b830d 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/suggest.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/suggest.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/tabs.vm b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/tabs.vm
index da19cbc0b..da19cbc0b 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/tabs.vm
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/velocity/tabs.vm
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl
index b89927008..b89927008 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example.xsl
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl
index b6c23151d..b6c23151d 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_atom.xsl
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl
index c8ab5bfb1..c8ab5bfb1 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/example_rss.xsl
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl
index 05fb5bfee..05fb5bfee 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/luke.xsl
diff --git a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl
index a96e1d024..a96e1d024 100644
--- a/solr-8.1.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl
+++ b/solr-8.3.1/server/solr/configsets/sample_techproducts_configs/conf/xslt/updateXml.xsl
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/contractions_ca.txt b/solr-8.3.1/server/solr/dash/conf/lang/contractions_ca.txt
index 307a85f91..307a85f91 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/contractions_ca.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/contractions_ca.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/contractions_fr.txt b/solr-8.3.1/server/solr/dash/conf/lang/contractions_fr.txt
index f1bba51b2..f1bba51b2 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/contractions_fr.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/contractions_fr.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/contractions_ga.txt b/solr-8.3.1/server/solr/dash/conf/lang/contractions_ga.txt
index 9ebe7fa34..9ebe7fa34 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/contractions_ga.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/contractions_ga.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/contractions_it.txt b/solr-8.3.1/server/solr/dash/conf/lang/contractions_it.txt
index cac040953..cac040953 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/contractions_it.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/contractions_it.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/hyphenations_ga.txt b/solr-8.3.1/server/solr/dash/conf/lang/hyphenations_ga.txt
index 4d2642cc5..4d2642cc5 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/hyphenations_ga.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/hyphenations_ga.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stemdict_nl.txt b/solr-8.3.1/server/solr/dash/conf/lang/stemdict_nl.txt
index 441072971..441072971 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stemdict_nl.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stemdict_nl.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stoptags_ja.txt b/solr-8.3.1/server/solr/dash/conf/lang/stoptags_ja.txt
index 71b750845..71b750845 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stoptags_ja.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stoptags_ja.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ar.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ar.txt
index 046829db6..046829db6 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ar.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ar.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_bg.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_bg.txt
index 1ae4ba2ae..1ae4ba2ae 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_bg.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_bg.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ca.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ca.txt
index 3da65deaf..3da65deaf 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ca.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ca.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_cz.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_cz.txt
index 53c6097da..53c6097da 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_cz.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_cz.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_da.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_da.txt
index 42e6145b9..42e6145b9 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_da.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_da.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_de.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_de.txt
index 86525e7ae..86525e7ae 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_de.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_de.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_el.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_el.txt
index 232681f5b..232681f5b 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_el.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_el.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_en.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_en.txt
index 2c164c0b2..2c164c0b2 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_en.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_en.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_es.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_es.txt
index 487d78c8d..487d78c8d 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_es.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_es.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_eu.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_eu.txt
index 25f1db934..25f1db934 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_eu.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_eu.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_fa.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_fa.txt
index 723641c6d..723641c6d 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_fa.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_fa.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_fi.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_fi.txt
index 4372c9a05..4372c9a05 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_fi.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_fi.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_fr.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_fr.txt
index 749abae68..749abae68 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_fr.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_fr.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ga.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ga.txt
index 9ff88d747..9ff88d747 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ga.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ga.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_gl.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_gl.txt
index d8760b12c..d8760b12c 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_gl.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_gl.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_hi.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_hi.txt
index 86286bb08..86286bb08 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_hi.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_hi.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_hu.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_hu.txt
index 37526da8a..37526da8a 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_hu.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_hu.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_hy.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_hy.txt
index 60c1c50fb..60c1c50fb 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_hy.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_hy.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_id.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_id.txt
index 4617f83a5..4617f83a5 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_id.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_id.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_it.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_it.txt
index 1219cc773..1219cc773 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_it.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_it.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ja.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ja.txt
index d4321be6b..d4321be6b 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ja.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ja.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_lv.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_lv.txt
index e21a23c06..e21a23c06 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_lv.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_lv.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_nl.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_nl.txt
index 47a2aeacf..47a2aeacf 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_nl.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_nl.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_no.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_no.txt
index a7a2c28ba..a7a2c28ba 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_no.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_no.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_pt.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_pt.txt
index acfeb01af..acfeb01af 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_pt.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_pt.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ro.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ro.txt
index 4fdee90a5..4fdee90a5 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ro.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ro.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ru.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ru.txt
index 55271400c..55271400c 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_ru.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_ru.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_sv.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_sv.txt
index 096f87f67..096f87f67 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_sv.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_sv.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_th.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_th.txt
index 07f0fabe6..07f0fabe6 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_th.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_th.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_tr.txt b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_tr.txt
index 84d9408d4..84d9408d4 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/stopwords_tr.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/stopwords_tr.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/lang/userdict_ja.txt b/solr-8.3.1/server/solr/dash/conf/lang/userdict_ja.txt
index 6f0368e4d..6f0368e4d 100644
--- a/solr-8.1.1/server/solr/dash/conf/lang/userdict_ja.txt
+++ b/solr-8.3.1/server/solr/dash/conf/lang/userdict_ja.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/params.json b/solr-8.3.1/server/solr/dash/conf/params.json
index 06114ef25..06114ef25 100644
--- a/solr-8.1.1/server/solr/dash/conf/params.json
+++ b/solr-8.3.1/server/solr/dash/conf/params.json
diff --git a/solr-8.1.1/server/solr/dash/conf/protwords.txt b/solr-8.3.1/server/solr/dash/conf/protwords.txt
index 1dfc0abec..1dfc0abec 100644
--- a/solr-8.1.1/server/solr/dash/conf/protwords.txt
+++ b/solr-8.3.1/server/solr/dash/conf/protwords.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/schema.xml b/solr-8.3.1/server/solr/dash/conf/schema.xml
index c0a4bab07..c0a4bab07 100644
--- a/solr-8.1.1/server/solr/dash/conf/schema.xml
+++ b/solr-8.3.1/server/solr/dash/conf/schema.xml
diff --git a/solr-8.1.1/server/solr/dash/conf/schema.xml~ b/solr-8.3.1/server/solr/dash/conf/schema.xml~
index 3b2addf78..3b2addf78 100644
--- a/solr-8.1.1/server/solr/dash/conf/schema.xml~
+++ b/solr-8.3.1/server/solr/dash/conf/schema.xml~
diff --git a/solr-8.1.1/server/solr/dash/conf/solrconfig.xml b/solr-8.3.1/server/solr/dash/conf/solrconfig.xml
index 60f06f57f..60f06f57f 100644
--- a/solr-8.1.1/server/solr/dash/conf/solrconfig.xml
+++ b/solr-8.3.1/server/solr/dash/conf/solrconfig.xml
diff --git a/solr-8.1.1/server/solr/dash/conf/solrconfig.xml~ b/solr-8.3.1/server/solr/dash/conf/solrconfig.xml~
index 5854cf2d9..5854cf2d9 100644
--- a/solr-8.1.1/server/solr/dash/conf/solrconfig.xml~
+++ b/solr-8.3.1/server/solr/dash/conf/solrconfig.xml~
diff --git a/solr-8.1.1/server/solr/dash/conf/stopwords.txt b/solr-8.3.1/server/solr/dash/conf/stopwords.txt
index ae1e83eeb..ae1e83eeb 100644
--- a/solr-8.1.1/server/solr/dash/conf/stopwords.txt
+++ b/solr-8.3.1/server/solr/dash/conf/stopwords.txt
diff --git a/solr-8.1.1/server/solr/dash/conf/synonyms.txt b/solr-8.3.1/server/solr/dash/conf/synonyms.txt
index eab4ee875..eab4ee875 100644
--- a/solr-8.1.1/server/solr/dash/conf/synonyms.txt
+++ b/solr-8.3.1/server/solr/dash/conf/synonyms.txt
diff --git a/solr-8.1.1/server/solr/dash/core.properties b/solr-8.3.1/server/solr/dash/core.properties
index 1735a8626..70081ebc6 100644
--- a/solr-8.1.1/server/solr/dash/core.properties
+++ b/solr-8.3.1/server/solr/dash/core.properties
@@ -1,5 +1,5 @@
#Written by CorePropertiesLocator
-#Thu Jun 13 15:10:39 UTC 2019
+#Wed Jan 29 14:30:24 UTC 2020
name=dash
config=solrconfig.xml
schema=schema.xml
diff --git a/solr-8.1.1/server/solr/dash/data/index/write.lock b/solr-8.3.1/server/solr/dash/data/index/write.lock
index e69de29bb..e69de29bb 100644
--- a/solr-8.1.1/server/solr/dash/data/index/write.lock
+++ b/solr-8.3.1/server/solr/dash/data/index/write.lock
diff --git a/solr-8.1.1/server/solr/solr.xml b/solr-8.3.1/server/solr/solr.xml
index 932f2a707..932f2a707 100644
--- a/solr-8.1.1/server/solr/solr.xml
+++ b/solr-8.3.1/server/solr/solr.xml
diff --git a/solr-8.1.1/server/solr/zoo.cfg b/solr-8.3.1/server/solr/zoo.cfg
index 7e42d8c84..7e42d8c84 100644
--- a/solr-8.1.1/server/solr/zoo.cfg
+++ b/solr-8.3.1/server/solr/zoo.cfg
diff --git a/solr-8.1.1/server/start.jar b/solr-8.3.1/server/start.jar
index 82ee8baef..184cb05f5 100644
--- a/solr-8.1.1/server/start.jar
+++ b/solr-8.3.1/server/start.jar
Binary files differ
diff --git a/solr-8.3.1/server/tmp/start_1935456665153398890.properties b/solr-8.3.1/server/tmp/start_1935456665153398890.properties
new file mode 100644
index 000000000..a694ae90a
--- /dev/null
+++ b/solr-8.3.1/server/tmp/start_1935456665153398890.properties
@@ -0,0 +1,11 @@
+#start.jar properties
+#Thu Jan 09 14:51:58 UTC 2020
+java.version.platform=8
+java.version=1.8.0_211
+java.version.micro=0
+jetty.home=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server
+java.version.minor=8
+jetty.home.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server
+jetty.base=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server
+java.version.major=1
+jetty.base.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server
diff --git a/solr-8.3.1/server/tmp/start_5098042466590842962.properties b/solr-8.3.1/server/tmp/start_5098042466590842962.properties
new file mode 100644
index 000000000..194d8ff5c
--- /dev/null
+++ b/solr-8.3.1/server/tmp/start_5098042466590842962.properties
@@ -0,0 +1,11 @@
+#start.jar properties
+#Thu Jan 09 23:36:29 UTC 2020
+java.version.platform=8
+java.version=1.8.0_131
+java.version.micro=0
+jetty.home=C\:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\solr-8.3.1\\server
+java.version.minor=8
+jetty.home.uri=file\:///C\:/Users/avd/Desktop/Sam/Dash-Web/solr-8.3.1/server
+jetty.base=C\:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\solr-8.3.1\\server
+java.version.major=1
+jetty.base.uri=file\:///C\:/Users/avd/Desktop/Sam/Dash-Web/solr-8.3.1/server
diff --git a/solr-8.3.1/server/tmp/start_5201032335657884982.properties b/solr-8.3.1/server/tmp/start_5201032335657884982.properties
new file mode 100644
index 000000000..e3a72dc76
--- /dev/null
+++ b/solr-8.3.1/server/tmp/start_5201032335657884982.properties
@@ -0,0 +1,11 @@
+#start.jar properties
+#Wed Jan 08 17:27:07 UTC 2020
+java.version.platform=8
+java.version=1.8.0_131
+java.version.micro=0
+jetty.home=C\:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\solr-8.3.1\\server
+java.version.minor=8
+jetty.home.uri=file\:///C\:/Users/avd/Desktop/Sam/Dash-Web/solr-8.3.1/server
+jetty.base=C\:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\solr-8.3.1\\server
+java.version.major=1
+jetty.base.uri=file\:///C\:/Users/avd/Desktop/Sam/Dash-Web/solr-8.3.1/server
diff --git a/solr-8.3.1/server/tmp/start_5906520416860122978.properties b/solr-8.3.1/server/tmp/start_5906520416860122978.properties
new file mode 100644
index 000000000..4177968f4
--- /dev/null
+++ b/solr-8.3.1/server/tmp/start_5906520416860122978.properties
@@ -0,0 +1,11 @@
+#start.jar properties
+#Wed Jan 08 14:30:05 UTC 2020
+java.version.platform=8
+java.version=1.8.0_211
+java.version.micro=0
+jetty.home=c\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server
+java.version.minor=8
+jetty.home.uri=file\:///c\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server
+jetty.base=c\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server
+java.version.major=1
+jetty.base.uri=file\:///c\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server
diff --git a/solr-8.3.1/server/tmp/start_5982280610074344638.properties b/solr-8.3.1/server/tmp/start_5982280610074344638.properties
new file mode 100644
index 000000000..840417082
--- /dev/null
+++ b/solr-8.3.1/server/tmp/start_5982280610074344638.properties
@@ -0,0 +1,11 @@
+#start.jar properties
+#Fri Dec 13 19:19:27 UTC 2019
+java.version.platform=8
+java.version=1.8.0_131
+java.version.micro=0
+jetty.home=C\:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\solr-8.3.1\\server
+java.version.minor=8
+jetty.home.uri=file\:///C\:/Users/avd/Desktop/Sam/Dash-Web/solr-8.3.1/server
+jetty.base=C\:\\Users\\avd\\Desktop\\Sam\\Dash-Web\\solr-8.3.1\\server
+java.version.major=1
+jetty.base.uri=file\:///C\:/Users/avd/Desktop/Sam/Dash-Web/solr-8.3.1/server
diff --git a/solr-8.3.1/server/tmp/start_8210707001248201939.properties b/solr-8.3.1/server/tmp/start_8210707001248201939.properties
new file mode 100644
index 000000000..aebc17bdc
--- /dev/null
+++ b/solr-8.3.1/server/tmp/start_8210707001248201939.properties
@@ -0,0 +1,11 @@
+#start.jar properties
+#Thu Jan 16 20:33:22 UTC 2020
+java.version.platform=8
+java.version=1.8.0_211
+java.version.micro=0
+jetty.home=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server
+java.version.minor=8
+jetty.home.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server
+jetty.base=C\:\\gitstuff\\GitCode\\Dash-Web\\solr-8.3.1\\server
+java.version.major=1
+jetty.base.uri=file\:///C\:/gitstuff/GitCode/Dash-Web/solr-8.3.1/server
diff --git a/solr/conf/lang/contractions_ca.txt b/solr/conf/lang/contractions_ca.txt
deleted file mode 100644
index 307a85f91..000000000
--- a/solr/conf/lang/contractions_ca.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# Set of Catalan contractions for ElisionFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-d
-l
-m
-n
-s
-t
diff --git a/solr/conf/lang/contractions_fr.txt b/solr/conf/lang/contractions_fr.txt
deleted file mode 100644
index f1bba51b2..000000000
--- a/solr/conf/lang/contractions_fr.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-# Set of French contractions for ElisionFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-l
-m
-t
-qu
-n
-s
-j
-d
-c
-jusqu
-quoiqu
-lorsqu
-puisqu
diff --git a/solr/conf/lang/contractions_ga.txt b/solr/conf/lang/contractions_ga.txt
deleted file mode 100644
index 9ebe7fa34..000000000
--- a/solr/conf/lang/contractions_ga.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# Set of Irish contractions for ElisionFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-d
-m
-b
diff --git a/solr/conf/lang/contractions_it.txt b/solr/conf/lang/contractions_it.txt
deleted file mode 100644
index cac040953..000000000
--- a/solr/conf/lang/contractions_it.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-# Set of Italian contractions for ElisionFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-c
-l
-all
-dall
-dell
-nell
-sull
-coll
-pell
-gl
-agl
-dagl
-degl
-negl
-sugl
-un
-m
-t
-s
-v
-d
diff --git a/solr/conf/lang/hyphenations_ga.txt b/solr/conf/lang/hyphenations_ga.txt
deleted file mode 100644
index 4d2642cc5..000000000
--- a/solr/conf/lang/hyphenations_ga.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# Set of Irish hyphenations for StopFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-h
-n
-t
diff --git a/solr/conf/lang/stemdict_nl.txt b/solr/conf/lang/stemdict_nl.txt
deleted file mode 100644
index 441072971..000000000
--- a/solr/conf/lang/stemdict_nl.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-# Set of overrides for the dutch stemmer
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-fiets fiets
-bromfiets bromfiets
-ei eier
-kind kinder
diff --git a/solr/conf/lang/stoptags_ja.txt b/solr/conf/lang/stoptags_ja.txt
deleted file mode 100644
index 71b750845..000000000
--- a/solr/conf/lang/stoptags_ja.txt
+++ /dev/null
@@ -1,420 +0,0 @@
-#
-# This file defines a Japanese stoptag set for JapanesePartOfSpeechStopFilter.
-#
-# Any token with a part-of-speech tag that exactly matches those defined in this
-# file are removed from the token stream.
-#
-# Set your own stoptags by uncommenting the lines below. Note that comments are
-# not allowed on the same line as a stoptag. See LUCENE-3745 for frequency lists,
-# etc. that can be useful for building you own stoptag set.
-#
-# The entire possible tagset is provided below for convenience.
-#
-#####
-# noun: unclassified nouns
-#名詞
-#
-# noun-common: Common nouns or nouns where the sub-classification is undefined
-#名詞-一般
-#
-# noun-proper: Proper nouns where the sub-classification is undefined
-#名詞-固有名詞
-#
-# noun-proper-misc: miscellaneous proper nouns
-#名詞-固有名詞-一般
-#
-# noun-proper-person: Personal names where the sub-classification is undefined
-#名詞-固有名詞-人名
-#
-# noun-proper-person-misc: names that cannot be divided into surname and
-# given name; foreign names; names where the surname or given name is unknown.
-# e.g. お市の方
-#名詞-固有名詞-人名-一般
-#
-# noun-proper-person-surname: Mainly Japanese surnames.
-# e.g. 山田
-#名詞-固有名詞-人名-姓
-#
-# noun-proper-person-given_name: Mainly Japanese given names.
-# e.g. 太郎
-#名詞-固有名詞-人名-名
-#
-# noun-proper-organization: Names representing organizations.
-# e.g. 通産省, NHK
-#名詞-固有名詞-組織
-#
-# noun-proper-place: Place names where the sub-classification is undefined
-#名詞-固有名詞-地域
-#
-# noun-proper-place-misc: Place names excluding countries.
-# e.g. アジア, バルセロナ, 京都
-#名詞-固有名詞-地域-一般
-#
-# noun-proper-place-country: Country names.
-# e.g. 日本, オーストラリア
-#名詞-固有名詞-地域-国
-#
-# noun-pronoun: Pronouns where the sub-classification is undefined
-#名詞-代名詞
-#
-# noun-pronoun-misc: miscellaneous pronouns:
-# e.g. それ, ここ, あいつ, あなた, あちこち, いくつ, どこか, なに, みなさん, みんな, わたくし, われわれ
-#名詞-代名詞-一般
-#
-# noun-pronoun-contraction: Spoken language contraction made by combining a
-# pronoun and the particle 'wa'.
-# e.g. ありゃ, こりゃ, こりゃあ, そりゃ, そりゃあ
-#名詞-代名詞-縮約
-#
-# noun-adverbial: Temporal nouns such as names of days or months that behave
-# like adverbs. Nouns that represent amount or ratios and can be used adverbially,
-# e.g. 金曜, 一月, 午後, 少量
-#名詞-副詞可能
-#
-# noun-verbal: Nouns that take arguments with case and can appear followed by
-# 'suru' and related verbs (する, できる, なさる, くださる)
-# e.g. インプット, 愛着, 悪化, 悪戦苦闘, 一安心, 下取り
-#名詞-サ変接続
-#
-# noun-adjective-base: The base form of adjectives, words that appear before な ("na")
-# e.g. 健康, 安易, 駄目, だめ
-#名詞-形容動詞語幹
-#
-# noun-numeric: Arabic numbers, Chinese numerals, and counters like 何 (回), 数.
-# e.g. 0, 1, 2, 何, 数, 幾
-#名詞-数
-#
-# noun-affix: noun affixes where the sub-classification is undefined
-#名詞-非自立
-#
-# noun-affix-misc: Of adnominalizers, the case-marker の ("no"), and words that
-# attach to the base form of inflectional words, words that cannot be classified
-# into any of the other categories below. This category includes indefinite nouns.
-# e.g. あかつき, 暁, かい, 甲斐, 気, きらい, 嫌い, くせ, 癖, こと, 事, ごと, 毎, しだい, 次第,
-# 順, せい, 所為, ついで, 序で, つもり, 積もり, 点, どころ, の, はず, 筈, はずみ, 弾み,
-# 拍子, ふう, ふり, 振り, ほう, 方, 旨, もの, 物, 者, ゆえ, 故, ゆえん, 所以, わけ, 訳,
-# わり, 割り, 割, ん-口語/, もん-口語/
-#名詞-非自立-一般
-#
-# noun-affix-adverbial: noun affixes that that can behave as adverbs.
-# e.g. あいだ, 間, あげく, 挙げ句, あと, 後, 余り, 以外, 以降, 以後, 以上, 以前, 一方, うえ,
-# 上, うち, 内, おり, 折り, かぎり, 限り, きり, っきり, 結果, ころ, 頃, さい, 際, 最中, さなか,
-# 最中, じたい, 自体, たび, 度, ため, 為, つど, 都度, とおり, 通り, とき, 時, ところ, 所,
-# とたん, 途端, なか, 中, のち, 後, ばあい, 場合, 日, ぶん, 分, ほか, 他, まえ, 前, まま,
-# 儘, 侭, みぎり, 矢先
-#名詞-非自立-副詞可能
-#
-# noun-affix-aux: noun affixes treated as 助動詞 ("auxiliary verb") in school grammars
-# with the stem よう(だ) ("you(da)").
-# e.g. よう, やう, 様 (よう)
-#名詞-非自立-助動詞語幹
-#
-# noun-affix-adjective-base: noun affixes that can connect to the indeclinable
-# connection form な (aux "da").
-# e.g. みたい, ふう
-#名詞-非自立-形容動詞語幹
-#
-# noun-special: special nouns where the sub-classification is undefined.
-#名詞-特殊
-#
-# noun-special-aux: The そうだ ("souda") stem form that is used for reporting news, is
-# treated as 助動詞 ("auxiliary verb") in school grammars, and attach to the base
-# form of inflectional words.
-# e.g. そう
-#名詞-特殊-助動詞語幹
-#
-# noun-suffix: noun suffixes where the sub-classification is undefined.
-#名詞-接尾
-#
-# noun-suffix-misc: Of the nouns or stem forms of other parts of speech that connect
-# to ガル or タイ and can combine into compound nouns, words that cannot be classified into
-# any of the other categories below. In general, this category is more inclusive than
-# 接尾語 ("suffix") and is usually the last element in a compound noun.
-# e.g. おき, かた, 方, 甲斐 (がい), がかり, ぎみ, 気味, ぐるみ, (~した) さ, 次第, 済 (ず) み,
-# よう, (でき)っこ, 感, 観, 性, 学, 類, 面, 用
-#名詞-接尾-一般
-#
-# noun-suffix-person: Suffixes that form nouns and attach to person names more often
-# than other nouns.
-# e.g. 君, 様, 著
-#名詞-接尾-人名
-#
-# noun-suffix-place: Suffixes that form nouns and attach to place names more often
-# than other nouns.
-# e.g. 町, 市, 県
-#名詞-接尾-地域
-#
-# noun-suffix-verbal: Of the suffixes that attach to nouns and form nouns, those that
-# can appear before スル ("suru").
-# e.g. 化, 視, 分け, 入り, 落ち, 買い
-#名詞-接尾-サ変接続
-#
-# noun-suffix-aux: The stem form of そうだ (様態) that is used to indicate conditions,
-# is treated as 助動詞 ("auxiliary verb") in school grammars, and attach to the
-# conjunctive form of inflectional words.
-# e.g. そう
-#名詞-接尾-助動詞語幹
-#
-# noun-suffix-adjective-base: Suffixes that attach to other nouns or the conjunctive
-# form of inflectional words and appear before the copula だ ("da").
-# e.g. 的, げ, がち
-#名詞-接尾-形容動詞語幹
-#
-# noun-suffix-adverbial: Suffixes that attach to other nouns and can behave as adverbs.
-# e.g. 後 (ご), 以後, 以降, 以前, 前後, 中, 末, 上, 時 (じ)
-#名詞-接尾-副詞可能
-#
-# noun-suffix-classifier: Suffixes that attach to numbers and form nouns. This category
-# is more inclusive than 助数詞 ("classifier") and includes common nouns that attach
-# to numbers.
-# e.g. 個, つ, 本, 冊, パーセント, cm, kg, カ月, か国, 区画, 時間, 時半
-#名詞-接尾-助数詞
-#
-# noun-suffix-special: Special suffixes that mainly attach to inflecting words.
-# e.g. (楽し) さ, (考え) 方
-#名詞-接尾-特殊
-#
-# noun-suffix-conjunctive: Nouns that behave like conjunctions and join two words
-# together.
-# e.g. (日本) 対 (アメリカ), 対 (アメリカ), (3) 対 (5), (女優) 兼 (主婦)
-#名詞-接続詞的
-#
-# noun-verbal_aux: Nouns that attach to the conjunctive particle て ("te") and are
-# semantically verb-like.
-# e.g. ごらん, ご覧, 御覧, 頂戴
-#名詞-動詞非自立的
-#
-# noun-quotation: text that cannot be segmented into words, proverbs, Chinese poetry,
-# dialects, English, etc. Currently, the only entry for 名詞 引用文字列 ("noun quotation")
-# is いわく ("iwaku").
-#名詞-引用文字列
-#
-# noun-nai_adjective: Words that appear before the auxiliary verb ない ("nai") and
-# behave like an adjective.
-# e.g. 申し訳, 仕方, とんでも, 違い
-#名詞-ナイ形容詞語幹
-#
-#####
-# prefix: unclassified prefixes
-#接頭詞
-#
-# prefix-nominal: Prefixes that attach to nouns (including adjective stem forms)
-# excluding numerical expressions.
-# e.g. お (水), 某 (氏), 同 (社), 故 (~氏), 高 (品質), お (見事), ご (立派)
-#接頭詞-名詞接続
-#
-# prefix-verbal: Prefixes that attach to the imperative form of a verb or a verb
-# in conjunctive form followed by なる/なさる/くださる.
-# e.g. お (読みなさい), お (座り)
-#接頭詞-動詞接続
-#
-# prefix-adjectival: Prefixes that attach to adjectives.
-# e.g. お (寒いですねえ), バカ (でかい)
-#接頭詞-形容詞接続
-#
-# prefix-numerical: Prefixes that attach to numerical expressions.
-# e.g. 約, およそ, 毎時
-#接頭詞-数接続
-#
-#####
-# verb: unclassified verbs
-#動詞
-#
-# verb-main:
-#動詞-自立
-#
-# verb-auxiliary:
-#動詞-非自立
-#
-# verb-suffix:
-#動詞-接尾
-#
-#####
-# adjective: unclassified adjectives
-#形容詞
-#
-# adjective-main:
-#形容詞-自立
-#
-# adjective-auxiliary:
-#形容詞-非自立
-#
-# adjective-suffix:
-#形容詞-接尾
-#
-#####
-# adverb: unclassified adverbs
-#副詞
-#
-# adverb-misc: Words that can be segmented into one unit and where adnominal
-# modification is not possible.
-# e.g. あいかわらず, 多分
-#副詞-一般
-#
-# adverb-particle_conjunction: Adverbs that can be followed by の, は, に,
-# な, する, だ, etc.
-# e.g. こんなに, そんなに, あんなに, なにか, なんでも
-#副詞-助詞類接続
-#
-#####
-# adnominal: Words that only have noun-modifying forms.
-# e.g. この, その, あの, どの, いわゆる, なんらかの, 何らかの, いろんな, こういう, そういう, ああいう,
-# どういう, こんな, そんな, あんな, どんな, 大きな, 小さな, おかしな, ほんの, たいした,
-# 「(, も) さる (ことながら)」, 微々たる, 堂々たる, 単なる, いかなる, 我が」「同じ, 亡き
-#連体詞
-#
-#####
-# conjunction: Conjunctions that can occur independently.
-# e.g. が, けれども, そして, じゃあ, それどころか
-接続詞
-#
-#####
-# particle: unclassified particles.
-助詞
-#
-# particle-case: case particles where the subclassification is undefined.
-助詞-格助詞
-#
-# particle-case-misc: Case particles.
-# e.g. から, が, で, と, に, へ, より, を, の, にて
-助詞-格助詞-一般
-#
-# particle-case-quote: the "to" that appears after nouns, a person’s speech,
-# quotation marks, expressions of decisions from a meeting, reasons, judgements,
-# conjectures, etc.
-# e.g. ( だ) と (述べた.), ( である) と (して執行猶予...)
-助詞-格助詞-引用
-#
-# particle-case-compound: Compounds of particles and verbs that mainly behave
-# like case particles.
-# e.g. という, といった, とかいう, として, とともに, と共に, でもって, にあたって, に当たって, に当って,
-# にあたり, に当たり, に当り, に当たる, にあたる, において, に於いて,に於て, における, に於ける,
-# にかけ, にかけて, にかんし, に関し, にかんして, に関して, にかんする, に関する, に際し,
-# に際して, にしたがい, に従い, に従う, にしたがって, に従って, にたいし, に対し, にたいして,
-# に対して, にたいする, に対する, について, につき, につけ, につけて, につれ, につれて, にとって,
-# にとり, にまつわる, によって, に依って, に因って, により, に依り, に因り, による, に依る, に因る,
-# にわたって, にわたる, をもって, を以って, を通じ, を通じて, を通して, をめぐって, をめぐり, をめぐる,
-# って-口語/, ちゅう-関西弁「という」/, (何) ていう (人)-口語/, っていう-口語/, といふ, とかいふ
-助詞-格助詞-連語
-#
-# particle-conjunctive:
-# e.g. から, からには, が, けれど, けれども, けど, し, つつ, て, で, と, ところが, どころか, とも, ども,
-# ながら, なり, ので, のに, ば, ものの, や ( した), やいなや, (ころん) じゃ(いけない)-口語/,
-# (行っ) ちゃ(いけない)-口語/, (言っ) たって (しかたがない)-口語/, (それがなく)ったって (平気)-口語/
-助詞-接続助詞
-#
-# particle-dependency:
-# e.g. こそ, さえ, しか, すら, は, も, ぞ
-助詞-係助詞
-#
-# particle-adverbial:
-# e.g. がてら, かも, くらい, 位, ぐらい, しも, (学校) じゃ(これが流行っている)-口語/,
-# (それ)じゃあ (よくない)-口語/, ずつ, (私) なぞ, など, (私) なり (に), (先生) なんか (大嫌い)-口語/,
-# (私) なんぞ, (先生) なんて (大嫌い)-口語/, のみ, だけ, (私) だって-口語/, だに,
-# (彼)ったら-口語/, (お茶) でも (いかが), 等 (とう), (今後) とも, ばかり, ばっか-口語/, ばっかり-口語/,
-# ほど, 程, まで, 迄, (誰) も (が)([助詞-格助詞] および [助詞-係助詞] の前に位置する「も」)
-助詞-副助詞
-#
-# particle-interjective: particles with interjective grammatical roles.
-# e.g. (松島) や
-助詞-間投助詞
-#
-# particle-coordinate:
-# e.g. と, たり, だの, だり, とか, なり, や, やら
-助詞-並立助詞
-#
-# particle-final:
-# e.g. かい, かしら, さ, ぜ, (だ)っけ-口語/, (とまってる) で-方言/, な, ナ, なあ-口語/, ぞ, ね, ネ,
-# ねぇ-口語/, ねえ-口語/, ねん-方言/, の, のう-口語/, や, よ, ヨ, よぉ-口語/, わ, わい-口語/
-助詞-終助詞
-#
-# particle-adverbial/conjunctive/final: The particle "ka" when unknown whether it is
-# adverbial, conjunctive, or sentence final. For example:
-# (a) 「A か B か」. Ex:「(国内で運用する) か,(海外で運用する) か (.)」
-# (b) Inside an adverb phrase. Ex:「(幸いという) か (, 死者はいなかった.)」
-# 「(祈りが届いたせい) か (, 試験に合格した.)」
-# (c) 「かのように」. Ex:「(何もなかった) か (のように振る舞った.)」
-# e.g. か
-助詞-副助詞/並立助詞/終助詞
-#
-# particle-adnominalizer: The "no" that attaches to nouns and modifies
-# non-inflectional words.
-助詞-連体化
-#
-# particle-adnominalizer: The "ni" and "to" that appear following nouns and adverbs
-# that are giongo, giseigo, or gitaigo.
-# e.g. に, と
-助詞-副詞化
-#
-# particle-special: A particle that does not fit into one of the above classifications.
-# This includes particles that are used in Tanka, Haiku, and other poetry.
-# e.g. かな, けむ, ( しただろう) に, (あんた) にゃ(わからん), (俺) ん (家)
-助詞-特殊
-#
-#####
-# auxiliary-verb:
-助動詞
-#
-#####
-# interjection: Greetings and other exclamations.
-# e.g. おはよう, おはようございます, こんにちは, こんばんは, ありがとう, どうもありがとう, ありがとうございます,
-# いただきます, ごちそうさま, さよなら, さようなら, はい, いいえ, ごめん, ごめんなさい
-#感動詞
-#
-#####
-# symbol: unclassified Symbols.
-記号
-#
-# symbol-misc: A general symbol not in one of the categories below.
-# e.g. [○◎@$〒→+]
-記号-一般
-#
-# symbol-comma: Commas
-# e.g. [,、]
-記号-読点
-#
-# symbol-period: Periods and full stops.
-# e.g. [..。]
-記号-句点
-#
-# symbol-space: Full-width whitespace.
-記号-空白
-#
-# symbol-open_bracket:
-# e.g. [({‘“『【]
-記号-括弧開
-#
-# symbol-close_bracket:
-# e.g. [)}’”』」】]
-記号-括弧閉
-#
-# symbol-alphabetic:
-#記号-アルファベット
-#
-#####
-# other: unclassified other
-#その他
-#
-# other-interjection: Words that are hard to classify as noun-suffixes or
-# sentence-final particles.
-# e.g. (だ)ァ
-その他-間投
-#
-#####
-# filler: Aizuchi that occurs during a conversation or sounds inserted as filler.
-# e.g. あの, うんと, えと
-フィラー
-#
-#####
-# non-verbal: non-verbal sound.
-非言語音
-#
-#####
-# fragment:
-#語断片
-#
-#####
-# unknown: unknown part of speech.
-#未知語
-#
-##### End of file
diff --git a/solr/conf/lang/stopwords_ar.txt b/solr/conf/lang/stopwords_ar.txt
deleted file mode 100644
index 046829db6..000000000
--- a/solr/conf/lang/stopwords_ar.txt
+++ /dev/null
@@ -1,125 +0,0 @@
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# Also see http://www.opensource.org/licenses/bsd-license.html
-# Cleaned on October 11, 2009 (not normalized, so use before normalization)
-# This means that when modifying this list, you might need to add some
-# redundant entries, for example containing forms with both أ and ا
-من
-ومن
-منها
-منه
-في
-وفي
-فيها
-فيه
-ثم
-او
-أو
-بها
-به
-اى
-اي
-أي
-أى
-لا
-ولا
-الا
-ألا
-إلا
-لكن
-ما
-وما
-كما
-فما
-عن
-مع
-اذا
-إذا
-ان
-أن
-إن
-انها
-أنها
-إنها
-انه
-أنه
-إنه
-بان
-بأن
-فان
-فأن
-وان
-وأن
-وإن
-التى
-التي
-الذى
-الذي
-الذين
-الى
-الي
-إلى
-إلي
-على
-عليها
-عليه
-اما
-أما
-إما
-ايضا
-أيضا
-كل
-وكل
-لم
-ولم
-لن
-ولن
-هى
-هي
-هو
-وهى
-وهي
-وهو
-فهى
-فهي
-فهو
-انت
-أنت
-لك
-لها
-له
-هذه
-هذا
-تلك
-ذلك
-هناك
-كانت
-كان
-يكون
-تكون
-وكانت
-وكان
-غير
-بعض
-قد
-نحو
-بين
-بينما
-منذ
-ضمن
-حيث
-الان
-الآن
-خلال
-بعد
-قبل
-حتى
-عند
-عندما
-لدى
-جميع
diff --git a/solr/conf/lang/stopwords_bg.txt b/solr/conf/lang/stopwords_bg.txt
deleted file mode 100644
index 1ae4ba2ae..000000000
--- a/solr/conf/lang/stopwords_bg.txt
+++ /dev/null
@@ -1,193 +0,0 @@
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# Also see http://www.opensource.org/licenses/bsd-license.html
-аз
-ако
-ала
-бе
-без
-беше
-би
-бил
-била
-били
-било
-близо
-бъдат
-бъде
-бяха
-вас
-ваш
-ваша
-вероятно
-вече
-взема
-ви
-вие
-винаги
-все
-всеки
-всички
-всичко
-всяка
-във
-въпреки
-върху
-ги
-главно
-го
-да
-дали
-до
-докато
-докога
-дори
-досега
-доста
-едва
-един
-ето
-за
-зад
-заедно
-заради
-засега
-затова
-защо
-защото
-из
-или
-им
-има
-имат
-иска
-каза
-как
-каква
-какво
-както
-какъв
-като
-кога
-когато
-което
-които
-кой
-който
-колко
-която
-къде
-където
-към
-ли
-ме
-между
-мен
-ми
-мнозина
-мога
-могат
-може
-моля
-момента
-му
-на
-над
-назад
-най
-направи
-напред
-например
-нас
-не
-него
-нея
-ни
-ние
-никой
-нито
-но
-някои
-някой
-няма
-обаче
-около
-освен
-особено
-от
-отгоре
-отново
-още
-пак
-по
-повече
-повечето
-под
-поне
-поради
-после
-почти
-прави
-пред
-преди
-през
-при
-пък
-първо
-са
-само
-се
-сега
-си
-скоро
-след
-сме
-според
-сред
-срещу
-сте
-съм
-със
-също
-тази
-така
-такива
-такъв
-там
-твой
-те
-тези
-ти
-тн
-то
-това
-тогава
-този
-той
-толкова
-точно
-трябва
-тук
-тъй
-тя
-тях
-харесва
-че
-често
-чрез
-ще
-щом
diff --git a/solr/conf/lang/stopwords_ca.txt b/solr/conf/lang/stopwords_ca.txt
deleted file mode 100644
index 3da65deaf..000000000
--- a/solr/conf/lang/stopwords_ca.txt
+++ /dev/null
@@ -1,220 +0,0 @@
-# Catalan stopwords from http://github.com/vcl/cue.language (Apache 2 Licensed)
-a
-abans
-ací
-ah
-així
-això
-al
-als
-aleshores
-algun
-alguna
-algunes
-alguns
-alhora
-allà
-allí
-allò
-altra
-altre
-altres
-amb
-ambdós
-ambdues
-apa
-aquell
-aquella
-aquelles
-aquells
-aquest
-aquesta
-aquestes
-aquests
-aquí
-baix
-cada
-cadascú
-cadascuna
-cadascunes
-cadascuns
-com
-contra
-d'un
-d'una
-d'unes
-d'uns
-dalt
-de
-del
-dels
-des
-després
-dins
-dintre
-donat
-doncs
-durant
-e
-eh
-el
-els
-em
-en
-encara
-ens
-entre
-érem
-eren
-éreu
-es
-és
-esta
-està
-estàvem
-estaven
-estàveu
-esteu
-et
-etc
-ets
-fins
-fora
-gairebé
-ha
-han
-has
-havia
-he
-hem
-heu
-hi
-ho
-i
-igual
-iguals
-ja
-l'hi
-la
-les
-li
-li'n
-llavors
-m'he
-ma
-mal
-malgrat
-mateix
-mateixa
-mateixes
-mateixos
-me
-mentre
-més
-meu
-meus
-meva
-meves
-molt
-molta
-moltes
-molts
-mon
-mons
-n'he
-n'hi
-ne
-ni
-no
-nogensmenys
-només
-nosaltres
-nostra
-nostre
-nostres
-o
-oh
-oi
-on
-pas
-pel
-pels
-per
-però
-perquè
-poc
-poca
-pocs
-poques
-potser
-propi
-qual
-quals
-quan
-quant
-que
-què
-quelcom
-qui
-quin
-quina
-quines
-quins
-s'ha
-s'han
-sa
-semblant
-semblants
-ses
-seu
-seus
-seva
-seva
-seves
-si
-sobre
-sobretot
-sóc
-solament
-sols
-son
-són
-sons
-sota
-sou
-t'ha
-t'han
-t'he
-ta
-tal
-també
-tampoc
-tan
-tant
-tanta
-tantes
-teu
-teus
-teva
-teves
-ton
-tons
-tot
-tota
-totes
-tots
-un
-una
-unes
-uns
-us
-va
-vaig
-vam
-van
-vas
-veu
-vosaltres
-vostra
-vostre
-vostres
diff --git a/solr/conf/lang/stopwords_cz.txt b/solr/conf/lang/stopwords_cz.txt
deleted file mode 100644
index 53c6097da..000000000
--- a/solr/conf/lang/stopwords_cz.txt
+++ /dev/null
@@ -1,172 +0,0 @@
-a
-s
-k
-o
-i
-u
-v
-z
-dnes
-cz
-tímto
-budeš
-budem
-byli
-jseš
-můj
-svým
-ta
-tomto
-tohle
-tuto
-tyto
-jej
-zda
-proč
-máte
-tato
-kam
-tohoto
-kdo
-kteří
-mi
-nám
-tom
-tomuto
-mít
-nic
-proto
-kterou
-byla
-toho
-protože
-asi
-ho
-naši
-napište
-re
-což
-tím
-takže
-svých
-její
-svými
-jste
-aj
-tu
-tedy
-teto
-bylo
-kde
-ke
-pravé
-ji
-nad
-nejsou
-či
-pod
-téma
-mezi
-přes
-ty
-pak
-vám
-ani
-když
-však
-neg
-jsem
-tento
-článku
-články
-aby
-jsme
-před
-pta
-jejich
-byl
-ještě
-až
-bez
-také
-pouze
-první
-vaše
-která
-nás
-nový
-tipy
-pokud
-může
-strana
-jeho
-své
-jiné
-zprávy
-nové
-není
-vás
-jen
-podle
-zde
-už
-být
-více
-bude
-již
-než
-který
-by
-které
-co
-nebo
-ten
-tak
-má
-při
-od
-po
-jsou
-jak
-další
-ale
-si
-se
-ve
-to
-jako
-za
-zpět
-ze
-do
-pro
-je
-na
-atd
-atp
-jakmile
-přičemž
-já
-on
-ona
-ono
-oni
-ony
-my
-vy
-jí
-ji
-mě
-mne
-jemu
-tomu
-těm
-těmu
-němu
-němuž
-jehož
-jíž
-jelikož
-jež
-jakož
-načež
diff --git a/solr/conf/lang/stopwords_da.txt b/solr/conf/lang/stopwords_da.txt
deleted file mode 100644
index 42e6145b9..000000000
--- a/solr/conf/lang/stopwords_da.txt
+++ /dev/null
@@ -1,110 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/danish/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | A Danish stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | This is a ranked list (commonest to rarest) of stopwords derived from
- | a large text sample.
-
-
-og | and
-i | in
-jeg | I
-det | that (dem. pronoun)/it (pers. pronoun)
-at | that (in front of a sentence)/to (with infinitive)
-en | a/an
-den | it (pers. pronoun)/that (dem. pronoun)
-til | to/at/for/until/against/by/of/into, more
-er | present tense of "to be"
-som | who, as
-på | on/upon/in/on/at/to/after/of/with/for, on
-de | they
-med | with/by/in, along
-han | he
-af | of/by/from/off/for/in/with/on, off
-for | at/for/to/from/by/of/ago, in front/before, because
-ikke | not
-der | who/which, there/those
-var | past tense of "to be"
-mig | me/myself
-sig | oneself/himself/herself/itself/themselves
-men | but
-et | a/an/one, one (number), someone/somebody/one
-har | present tense of "to have"
-om | round/about/for/in/a, about/around/down, if
-vi | we
-min | my
-havde | past tense of "to have"
-ham | him
-hun | she
-nu | now
-over | over/above/across/by/beyond/past/on/about, over/past
-da | then, when/as/since
-fra | from/off/since, off, since
-du | you
-ud | out
-sin | his/her/its/one's
-dem | them
-os | us/ourselves
-op | up
-man | you/one
-hans | his
-hvor | where
-eller | or
-hvad | what
-skal | must/shall etc.
-selv | myself/youself/herself/ourselves etc., even
-her | here
-alle | all/everyone/everybody etc.
-vil | will (verb)
-blev | past tense of "to stay/to remain/to get/to become"
-kunne | could
-ind | in
-når | when
-være | present tense of "to be"
-dog | however/yet/after all
-noget | something
-ville | would
-jo | you know/you see (adv), yes
-deres | their/theirs
-efter | after/behind/according to/for/by/from, later/afterwards
-ned | down
-skulle | should
-denne | this
-end | than
-dette | this
-mit | my/mine
-også | also
-under | under/beneath/below/during, below/underneath
-have | have
-dig | you
-anden | other
-hende | her
-mine | my
-alt | everything
-meget | much/very, plenty of
-sit | his, her, its, one's
-sine | his, her, its, one's
-vor | our
-mod | against
-disse | these
-hvis | if
-din | your/yours
-nogle | some
-hos | by/at
-blive | be/become
-mange | many
-ad | by/through
-bliver | present tense of "to be/to become"
-hendes | her/hers
-været | be
-thi | for (conj)
-jer | you
-sådan | such, like this/like that
diff --git a/solr/conf/lang/stopwords_de.txt b/solr/conf/lang/stopwords_de.txt
deleted file mode 100644
index 86525e7ae..000000000
--- a/solr/conf/lang/stopwords_de.txt
+++ /dev/null
@@ -1,294 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/german/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | A German stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | The number of forms in this list is reduced significantly by passing it
- | through the German stemmer.
-
-
-aber | but
-
-alle | all
-allem
-allen
-aller
-alles
-
-als | than, as
-also | so
-am | an + dem
-an | at
-
-ander | other
-andere
-anderem
-anderen
-anderer
-anderes
-anderm
-andern
-anderr
-anders
-
-auch | also
-auf | on
-aus | out of
-bei | by
-bin | am
-bis | until
-bist | art
-da | there
-damit | with it
-dann | then
-
-der | the
-den
-des
-dem
-die
-das
-
-daß | that
-
-derselbe | the same
-derselben
-denselben
-desselben
-demselben
-dieselbe
-dieselben
-dasselbe
-
-dazu | to that
-
-dein | thy
-deine
-deinem
-deinen
-deiner
-deines
-
-denn | because
-
-derer | of those
-dessen | of him
-
-dich | thee
-dir | to thee
-du | thou
-
-dies | this
-diese
-diesem
-diesen
-dieser
-dieses
-
-
-doch | (several meanings)
-dort | (over) there
-
-
-durch | through
-
-ein | a
-eine
-einem
-einen
-einer
-eines
-
-einig | some
-einige
-einigem
-einigen
-einiger
-einiges
-
-einmal | once
-
-er | he
-ihn | him
-ihm | to him
-
-es | it
-etwas | something
-
-euer | your
-eure
-eurem
-euren
-eurer
-eures
-
-für | for
-gegen | towards
-gewesen | p.p. of sein
-hab | have
-habe | have
-haben | have
-hat | has
-hatte | had
-hatten | had
-hier | here
-hin | there
-hinter | behind
-
-ich | I
-mich | me
-mir | to me
-
-
-ihr | you, to her
-ihre
-ihrem
-ihren
-ihrer
-ihres
-euch | to you
-
-im | in + dem
-in | in
-indem | while
-ins | in + das
-ist | is
-
-jede | each, every
-jedem
-jeden
-jeder
-jedes
-
-jene | that
-jenem
-jenen
-jener
-jenes
-
-jetzt | now
-kann | can
-
-kein | no
-keine
-keinem
-keinen
-keiner
-keines
-
-können | can
-könnte | could
-machen | do
-man | one
-
-manche | some, many a
-manchem
-manchen
-mancher
-manches
-
-mein | my
-meine
-meinem
-meinen
-meiner
-meines
-
-mit | with
-muss | must
-musste | had to
-nach | to(wards)
-nicht | not
-nichts | nothing
-noch | still, yet
-nun | now
-nur | only
-ob | whether
-oder | or
-ohne | without
-sehr | very
-
-sein | his
-seine
-seinem
-seinen
-seiner
-seines
-
-selbst | self
-sich | herself
-
-sie | they, she
-ihnen | to them
-
-sind | are
-so | so
-
-solche | such
-solchem
-solchen
-solcher
-solches
-
-soll | shall
-sollte | should
-sondern | but
-sonst | else
-über | over
-um | about, around
-und | and
-
-uns | us
-unse
-unsem
-unsen
-unser
-unses
-
-unter | under
-viel | much
-vom | von + dem
-von | from
-vor | before
-während | while
-war | was
-waren | were
-warst | wast
-was | what
-weg | away, off
-weil | because
-weiter | further
-
-welche | which
-welchem
-welchen
-welcher
-welches
-
-wenn | when
-werde | will
-werden | will
-wie | how
-wieder | again
-will | want
-wir | we
-wird | will
-wirst | willst
-wo | where
-wollen | want
-wollte | wanted
-würde | would
-würden | would
-zu | to
-zum | zu + dem
-zur | zu + der
-zwar | indeed
-zwischen | between
-
diff --git a/solr/conf/lang/stopwords_el.txt b/solr/conf/lang/stopwords_el.txt
deleted file mode 100644
index 232681f5b..000000000
--- a/solr/conf/lang/stopwords_el.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-# Lucene Greek Stopwords list
-# Note: by default this file is used after GreekLowerCaseFilter,
-# so when modifying this file use 'σ' instead of 'ς'
-ο
-το
-οι
-τα
-του
-τησ
-των
-τον
-την
-και
-κι
-ειμαι
-εισαι
-ειναι
-ειμαστε
-ειστε
-στο
-στον
-στη
-στην
-μα
-αλλα
-απο
-για
-προσ
-με
-σε
-ωσ
-παρα
-αντι
-κατα
-μετα
-θα
-να
-δε
-δεν
-μη
-μην
-επι
-ενω
-εαν
-αν
-τοτε
-που
-πωσ
-ποιοσ
-ποια
-ποιο
-ποιοι
-ποιεσ
-ποιων
-ποιουσ
-αυτοσ
-αυτη
-αυτο
-αυτοι
-αυτων
-αυτουσ
-αυτεσ
-αυτα
-εκεινοσ
-εκεινη
-εκεινο
-εκεινοι
-εκεινεσ
-εκεινα
-εκεινων
-εκεινουσ
-οπωσ
-ομωσ
-ισωσ
-οσο
-οτι
diff --git a/solr/conf/lang/stopwords_en.txt b/solr/conf/lang/stopwords_en.txt
deleted file mode 100644
index 2c164c0b2..000000000
--- a/solr/conf/lang/stopwords_en.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# a couple of test stopwords to test that the words are really being
-# configured from this file:
-stopworda
-stopwordb
-
-# Standard english stop words taken from Lucene's StopAnalyzer
-a
-an
-and
-are
-as
-at
-be
-but
-by
-for
-if
-in
-into
-is
-it
-no
-not
-of
-on
-or
-such
-that
-the
-their
-then
-there
-these
-they
-this
-to
-was
-will
-with
diff --git a/solr/conf/lang/stopwords_es.txt b/solr/conf/lang/stopwords_es.txt
deleted file mode 100644
index 487d78c8d..000000000
--- a/solr/conf/lang/stopwords_es.txt
+++ /dev/null
@@ -1,356 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/spanish/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | A Spanish stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
-
- | The following is a ranked list (commonest to rarest) of stopwords
- | deriving from a large sample of text.
-
- | Extra words have been added at the end.
-
-de | from, of
-la | the, her
-que | who, that
-el | the
-en | in
-y | and
-a | to
-los | the, them
-del | de + el
-se | himself, from him etc
-las | the, them
-por | for, by, etc
-un | a
-para | for
-con | with
-no | no
-una | a
-su | his, her
-al | a + el
- | es from SER
-lo | him
-como | how
-más | more
-pero | pero
-sus | su plural
-le | to him, her
-ya | already
-o | or
- | fue from SER
-este | this
- | ha from HABER
-sí | himself etc
-porque | because
-esta | this
- | son from SER
-entre | between
- | está from ESTAR
-cuando | when
-muy | very
-sin | without
-sobre | on
- | ser from SER
- | tiene from TENER
-también | also
-me | me
-hasta | until
-hay | there is/are
-donde | where
- | han from HABER
-quien | whom, that
- | están from ESTAR
- | estado from ESTAR
-desde | from
-todo | all
-nos | us
-durante | during
- | estados from ESTAR
-todos | all
-uno | a
-les | to them
-ni | nor
-contra | against
-otros | other
- | fueron from SER
-ese | that
-eso | that
- | había from HABER
-ante | before
-ellos | they
-e | and (variant of y)
-esto | this
-mí | me
-antes | before
-algunos | some
-qué | what?
-unos | a
-yo | I
-otro | other
-otras | other
-otra | other
-él | he
-tanto | so much, many
-esa | that
-estos | these
-mucho | much, many
-quienes | who
-nada | nothing
-muchos | many
-cual | who
- | sea from SER
-poco | few
-ella | she
-estar | to be
- | haber from HABER
-estas | these
- | estaba from ESTAR
- | estamos from ESTAR
-algunas | some
-algo | something
-nosotros | we
-
- | other forms
-
-mi | me
-mis | mi plural
-tú | thou
-te | thee
-ti | thee
-tu | thy
-tus | tu plural
-ellas | they
-nosotras | we
-vosotros | you
-vosotras | you
-os | you
-mío | mine
-mía |
-míos |
-mías |
-tuyo | thine
-tuya |
-tuyos |
-tuyas |
-suyo | his, hers, theirs
-suya |
-suyos |
-suyas |
-nuestro | ours
-nuestra |
-nuestros |
-nuestras |
-vuestro | yours
-vuestra |
-vuestros |
-vuestras |
-esos | those
-esas | those
-
- | forms of estar, to be (not including the infinitive):
-estoy
-estás
-está
-estamos
-estáis
-están
-esté
-estés
-estemos
-estéis
-estén
-estaré
-estarás
-estará
-estaremos
-estaréis
-estarán
-estaría
-estarías
-estaríamos
-estaríais
-estarían
-estaba
-estabas
-estábamos
-estabais
-estaban
-estuve
-estuviste
-estuvo
-estuvimos
-estuvisteis
-estuvieron
-estuviera
-estuvieras
-estuviéramos
-estuvierais
-estuvieran
-estuviese
-estuvieses
-estuviésemos
-estuvieseis
-estuviesen
-estando
-estado
-estada
-estados
-estadas
-estad
-
- | forms of haber, to have (not including the infinitive):
-he
-has
-ha
-hemos
-habéis
-han
-haya
-hayas
-hayamos
-hayáis
-hayan
-habré
-habrás
-habrá
-habremos
-habréis
-habrán
-habría
-habrías
-habríamos
-habríais
-habrían
-había
-habías
-habíamos
-habíais
-habían
-hube
-hubiste
-hubo
-hubimos
-hubisteis
-hubieron
-hubiera
-hubieras
-hubiéramos
-hubierais
-hubieran
-hubiese
-hubieses
-hubiésemos
-hubieseis
-hubiesen
-habiendo
-habido
-habida
-habidos
-habidas
-
- | forms of ser, to be (not including the infinitive):
-soy
-eres
-es
-somos
-sois
-son
-sea
-seas
-seamos
-seáis
-sean
-seré
-serás
-será
-seremos
-seréis
-serán
-sería
-serías
-seríamos
-seríais
-serían
-era
-eras
-éramos
-erais
-eran
-fui
-fuiste
-fue
-fuimos
-fuisteis
-fueron
-fuera
-fueras
-fuéramos
-fuerais
-fueran
-fuese
-fueses
-fuésemos
-fueseis
-fuesen
-siendo
-sido
- | sed also means 'thirst'
-
- | forms of tener, to have (not including the infinitive):
-tengo
-tienes
-tiene
-tenemos
-tenéis
-tienen
-tenga
-tengas
-tengamos
-tengáis
-tengan
-tendré
-tendrás
-tendrá
-tendremos
-tendréis
-tendrán
-tendría
-tendrías
-tendríamos
-tendríais
-tendrían
-tenía
-tenías
-teníamos
-teníais
-tenían
-tuve
-tuviste
-tuvo
-tuvimos
-tuvisteis
-tuvieron
-tuviera
-tuvieras
-tuviéramos
-tuvierais
-tuvieran
-tuviese
-tuvieses
-tuviésemos
-tuvieseis
-tuviesen
-teniendo
-tenido
-tenida
-tenidos
-tenidas
-tened
-
diff --git a/solr/conf/lang/stopwords_eu.txt b/solr/conf/lang/stopwords_eu.txt
deleted file mode 100644
index 25f1db934..000000000
--- a/solr/conf/lang/stopwords_eu.txt
+++ /dev/null
@@ -1,99 +0,0 @@
-# example set of basque stopwords
-al
-anitz
-arabera
-asko
-baina
-bat
-batean
-batek
-bati
-batzuei
-batzuek
-batzuetan
-batzuk
-bera
-beraiek
-berau
-berauek
-bere
-berori
-beroriek
-beste
-bezala
-da
-dago
-dira
-ditu
-du
-dute
-edo
-egin
-ere
-eta
-eurak
-ez
-gainera
-gu
-gutxi
-guzti
-haiei
-haiek
-haietan
-hainbeste
-hala
-han
-handik
-hango
-hara
-hari
-hark
-hartan
-hau
-hauei
-hauek
-hauetan
-hemen
-hemendik
-hemengo
-hi
-hona
-honek
-honela
-honetan
-honi
-hor
-hori
-horiei
-horiek
-horietan
-horko
-horra
-horrek
-horrela
-horretan
-horri
-hortik
-hura
-izan
-ni
-noiz
-nola
-non
-nondik
-nongo
-nor
-nora
-ze
-zein
-zen
-zenbait
-zenbat
-zer
-zergatik
-ziren
-zituen
-zu
-zuek
-zuen
-zuten
diff --git a/solr/conf/lang/stopwords_fa.txt b/solr/conf/lang/stopwords_fa.txt
deleted file mode 100644
index 723641c6d..000000000
--- a/solr/conf/lang/stopwords_fa.txt
+++ /dev/null
@@ -1,313 +0,0 @@
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# Also see http://www.opensource.org/licenses/bsd-license.html
-# Note: by default this file is used after normalization, so when adding entries
-# to this file, use the arabic 'ي' instead of 'ی'
-انان
-نداشته
-سراسر
-خياه
-ايشان
-وي
-تاكنون
-بيشتري
-دوم
-پس
-ناشي
-وگو
-يا
-داشتند
-سپس
-هنگام
-هرگز
-پنج
-نشان
-امسال
-ديگر
-گروهي
-شدند
-چطور
-ده
-دو
-نخستين
-ولي
-چرا
-چه
-وسط
-كدام
-قابل
-يك
-رفت
-هفت
-همچنين
-در
-هزار
-بله
-بلي
-شايد
-اما
-شناسي
-گرفته
-دهد
-داشته
-دانست
-داشتن
-خواهيم
-ميليارد
-وقتيكه
-امد
-خواهد
-جز
-اورده
-شده
-بلكه
-خدمات
-شدن
-برخي
-نبود
-بسياري
-جلوگيري
-حق
-كردند
-نوعي
-بعري
-نكرده
-نظير
-نبايد
-بوده
-بودن
-داد
-اورد
-هست
-جايي
-شود
-دنبال
-داده
-بايد
-سابق
-هيچ
-همان
-انجا
-كمتر
-كجاست
-گردد
-كسي
-تر
-مردم
-تان
-دادن
-بودند
-سري
-جدا
-ندارند
-مگر
-يكديگر
-دارد
-دهند
-بنابراين
-هنگامي
-سمت
-جا
-انچه
-خود
-دادند
-زياد
-دارند
-اثر
-بدون
-بهترين
-بيشتر
-البته
-به
-براساس
-بيرون
-كرد
-بعضي
-گرفت
-توي
-اي
-ميليون
-او
-جريان
-تول
-بر
-مانند
-برابر
-باشيم
-مدتي
-گويند
-اكنون
-تا
-تنها
-جديد
-چند
-بي
-نشده
-كردن
-كردم
-گويد
-كرده
-كنيم
-نمي
-نزد
-روي
-قصد
-فقط
-بالاي
-ديگران
-اين
-ديروز
-توسط
-سوم
-ايم
-دانند
-سوي
-استفاده
-شما
-كنار
-داريم
-ساخته
-طور
-امده
-رفته
-نخست
-بيست
-نزديك
-طي
-كنيد
-از
-انها
-تمامي
-داشت
-يكي
-طريق
-اش
-چيست
-روب
-نمايد
-گفت
-چندين
-چيزي
-تواند
-ام
-ايا
-با
-ان
-ايد
-ترين
-اينكه
-ديگري
-راه
-هايي
-بروز
-همچنان
-پاعين
-كس
-حدود
-مختلف
-مقابل
-چيز
-گيرد
-ندارد
-ضد
-همچون
-سازي
-شان
-مورد
-باره
-مرسي
-خويش
-برخوردار
-چون
-خارج
-شش
-هنوز
-تحت
-ضمن
-هستيم
-گفته
-فكر
-بسيار
-پيش
-براي
-روزهاي
-انكه
-نخواهد
-بالا
-كل
-وقتي
-كي
-چنين
-كه
-گيري
-نيست
-است
-كجا
-كند
-نيز
-يابد
-بندي
-حتي
-توانند
-عقب
-خواست
-كنند
-بين
-تمام
-همه
-ما
-باشند
-مثل
-شد
-اري
-باشد
-اره
-طبق
-بعد
-اگر
-صورت
-غير
-جاي
-بيش
-ريزي
-اند
-زيرا
-چگونه
-بار
-لطفا
-مي
-درباره
-من
-ديده
-همين
-گذاري
-برداري
-علت
-گذاشته
-هم
-فوق
-نه
-ها
-شوند
-اباد
-همواره
-هر
-اول
-خواهند
-چهار
-نام
-امروز
-مان
-هاي
-قبل
-كنم
-سعي
-تازه
-را
-هستند
-زير
-جلوي
-عنوان
-بود
diff --git a/solr/conf/lang/stopwords_fi.txt b/solr/conf/lang/stopwords_fi.txt
deleted file mode 100644
index 4372c9a05..000000000
--- a/solr/conf/lang/stopwords_fi.txt
+++ /dev/null
@@ -1,97 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/finnish/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
-| forms of BE
-
-olla
-olen
-olet
-on
-olemme
-olette
-ovat
-ole | negative form
-
-oli
-olisi
-olisit
-olisin
-olisimme
-olisitte
-olisivat
-olit
-olin
-olimme
-olitte
-olivat
-ollut
-olleet
-
-en | negation
-et
-ei
-emme
-ette
-eivät
-
-|Nom Gen Acc Part Iness Elat Illat Adess Ablat Allat Ess Trans
-minä minun minut minua minussa minusta minuun minulla minulta minulle | I
-sinä sinun sinut sinua sinussa sinusta sinuun sinulla sinulta sinulle | you
-hän hänen hänet häntä hänessä hänestä häneen hänellä häneltä hänelle | he she
-me meidän meidät meitä meissä meistä meihin meillä meiltä meille | we
-te teidän teidät teitä teissä teistä teihin teillä teiltä teille | you
-he heidän heidät heitä heissä heistä heihin heillä heiltä heille | they
-
-tämä tämän tätä tässä tästä tähän tallä tältä tälle tänä täksi | this
-tuo tuon tuotä tuossa tuosta tuohon tuolla tuolta tuolle tuona tuoksi | that
-se sen sitä siinä siitä siihen sillä siltä sille sinä siksi | it
-nämä näiden näitä näissä näistä näihin näillä näiltä näille näinä näiksi | these
-nuo noiden noita noissa noista noihin noilla noilta noille noina noiksi | those
-ne niiden niitä niissä niistä niihin niillä niiltä niille niinä niiksi | they
-
-kuka kenen kenet ketä kenessä kenestä keneen kenellä keneltä kenelle kenenä keneksi| who
-ketkä keiden ketkä keitä keissä keistä keihin keillä keiltä keille keinä keiksi | (pl)
-mikä minkä minkä mitä missä mistä mihin millä miltä mille minä miksi | which what
-mitkä | (pl)
-
-joka jonka jota jossa josta johon jolla jolta jolle jona joksi | who which
-jotka joiden joita joissa joista joihin joilla joilta joille joina joiksi | (pl)
-
-| conjunctions
-
-että | that
-ja | and
-jos | if
-koska | because
-kuin | than
-mutta | but
-niin | so
-sekä | and
-sillä | for
-tai | or
-vaan | but
-vai | or
-vaikka | although
-
-
-| prepositions
-
-kanssa | with
-mukaan | according to
-noin | about
-poikki | across
-yli | over, across
-
-| other
-
-kun | when
-niin | so
-nyt | now
-itse | self
-
diff --git a/solr/conf/lang/stopwords_fr.txt b/solr/conf/lang/stopwords_fr.txt
deleted file mode 100644
index 749abae68..000000000
--- a/solr/conf/lang/stopwords_fr.txt
+++ /dev/null
@@ -1,186 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/french/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | A French stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
-au | a + le
-aux | a + les
-avec | with
-ce | this
-ces | these
-dans | with
-de | of
-des | de + les
-du | de + le
-elle | she
-en | `of them' etc
-et | and
-eux | them
-il | he
-je | I
-la | the
-le | the
-leur | their
-lui | him
-ma | my (fem)
-mais | but
-me | me
-même | same; as in moi-même (myself) etc
-mes | me (pl)
-moi | me
-mon | my (masc)
-ne | not
-nos | our (pl)
-notre | our
-nous | we
-on | one
-ou | where
-par | by
-pas | not
-pour | for
-qu | que before vowel
-que | that
-qui | who
-sa | his, her (fem)
-se | oneself
-ses | his (pl)
-son | his, her (masc)
-sur | on
-ta | thy (fem)
-te | thee
-tes | thy (pl)
-toi | thee
-ton | thy (masc)
-tu | thou
-un | a
-une | a
-vos | your (pl)
-votre | your
-vous | you
-
- | single letter forms
-
-c | c'
-d | d'
-j | j'
-l | l'
-à | to, at
-m | m'
-n | n'
-s | s'
-t | t'
-y | there
-
- | forms of être (not including the infinitive):
-été
-étée
-étées
-étés
-étant
-suis
-es
-est
-sommes
-êtes
-sont
-serai
-seras
-sera
-serons
-serez
-seront
-serais
-serait
-serions
-seriez
-seraient
-étais
-était
-étions
-étiez
-étaient
-fus
-fut
-fûmes
-fûtes
-furent
-sois
-soit
-soyons
-soyez
-soient
-fusse
-fusses
-fût
-fussions
-fussiez
-fussent
-
- | forms of avoir (not including the infinitive):
-ayant
-eu
-eue
-eues
-eus
-ai
-as
-avons
-avez
-ont
-aurai
-auras
-aura
-aurons
-aurez
-auront
-aurais
-aurait
-aurions
-auriez
-auraient
-avais
-avait
-avions
-aviez
-avaient
-eut
-eûmes
-eûtes
-eurent
-aie
-aies
-ait
-ayons
-ayez
-aient
-eusse
-eusses
-eût
-eussions
-eussiez
-eussent
-
- | Later additions (from Jean-Christophe Deschamps)
-ceci | this
-cela | that
-celà | that
-cet | this
-cette | this
-ici | here
-ils | they
-les | the (pl)
-leurs | their (pl)
-quel | which
-quels | which
-quelle | which
-quelles | which
-sans | without
-soi | oneself
-
diff --git a/solr/conf/lang/stopwords_ga.txt b/solr/conf/lang/stopwords_ga.txt
deleted file mode 100644
index 9ff88d747..000000000
--- a/solr/conf/lang/stopwords_ga.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-
-a
-ach
-ag
-agus
-an
-aon
-ar
-arna
-as
-b'
-ba
-beirt
-bhúr
-caoga
-ceathair
-ceathrar
-chomh
-chtó
-chuig
-chun
-cois
-céad
-cúig
-cúigear
-d'
-daichead
-dar
-de
-deich
-deichniúr
-den
-dhá
-do
-don
-dtí
-dá
-dár
-dó
-faoi
-faoin
-faoina
-faoinár
-fara
-fiche
-gach
-gan
-go
-gur
-haon
-hocht
-i
-iad
-idir
-in
-ina
-ins
-inár
-is
-le
-leis
-lena
-lenár
-m'
-mar
-mo
-mé
-na
-nach
-naoi
-naonúr
-ná
-ní
-níor
-nó
-nócha
-ocht
-ochtar
-os
-roimh
-sa
-seacht
-seachtar
-seachtó
-seasca
-seisear
-siad
-sibh
-sinn
-sna
-sé
-sí
-tar
-thar
-thú
-triúr
-trí
-trína
-trínár
-tríocha
-tú
-um
-ár
-éis
-ón
-óna
-ónár
diff --git a/solr/conf/lang/stopwords_gl.txt b/solr/conf/lang/stopwords_gl.txt
deleted file mode 100644
index d8760b12c..000000000
--- a/solr/conf/lang/stopwords_gl.txt
+++ /dev/null
@@ -1,161 +0,0 @@
-# galican stopwords
-a
-aínda
-alí
-aquel
-aquela
-aquelas
-aqueles
-aquilo
-aquí
-ao
-aos
-as
-así
-ben
-cando
-che
-co
-coa
-comigo
-con
-connosco
-contigo
-convosco
-coas
-cos
-cun
-cuns
-cunha
-cunhas
-da
-dalgunha
-dalgunhas
-dalgún
-dalgúns
-das
-de
-del
-dela
-delas
-deles
-desde
-deste
-do
-dos
-dun
-duns
-dunha
-dunhas
-e
-el
-ela
-elas
-eles
-en
-era
-eran
-esa
-esas
-ese
-eses
-esta
-estar
-estaba
-está
-están
-este
-estes
-estiven
-estou
-eu
-facer
-foi
-foron
-fun
-había
-hai
-iso
-isto
-la
-las
-lle
-lles
-lo
-los
-mais
-me
-meu
-meus
-min
-miña
-miñas
-moi
-na
-nas
-neste
-nin
-no
-non
-nos
-nosa
-nosas
-noso
-nosos
-nós
-nun
-nunha
-nuns
-nunhas
-o
-os
-ou
-ós
-para
-pero
-pode
-pois
-pola
-polas
-polo
-polos
-por
-que
-se
-senón
-ser
-seu
-seus
-sexa
-sido
-sobre
-súa
-súas
-tamén
-tan
-te
-ten
-teñen
-teño
-ter
-teu
-teus
-ti
-tido
-tiña
-tiven
-túa
-túas
-un
-unha
-unhas
-uns
-vos
-vosa
-vosas
-voso
-vosos
-vós
diff --git a/solr/conf/lang/stopwords_hi.txt b/solr/conf/lang/stopwords_hi.txt
deleted file mode 100644
index 86286bb08..000000000
--- a/solr/conf/lang/stopwords_hi.txt
+++ /dev/null
@@ -1,235 +0,0 @@
-# Also see http://www.opensource.org/licenses/bsd-license.html
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# Note: by default this file also contains forms normalized by HindiNormalizer
-# for spelling variation (see section below), such that it can be used whether or
-# not you enable that feature. When adding additional entries to this list,
-# please add the normalized form as well.
-अंदर
-अत
-अपना
-अपनी
-अपने
-अभी
-आदि
-आप
-इत्यादि
-इन
-इनका
-इन्हीं
-इन्हें
-इन्हों
-इस
-इसका
-इसकी
-इसके
-इसमें
-इसी
-इसे
-उन
-उनका
-उनकी
-उनके
-उनको
-उन्हीं
-उन्हें
-उन्हों
-उस
-उसके
-उसी
-उसे
-एक
-एवं
-एस
-ऐसे
-और
-कई
-कर
-करता
-करते
-करना
-करने
-करें
-कहते
-कहा
-का
-काफ़ी
-कि
-कितना
-किन्हें
-किन्हों
-किया
-किर
-किस
-किसी
-किसे
-की
-कुछ
-कुल
-के
-को
-कोई
-कौन
-कौनसा
-गया
-घर
-जब
-जहाँ
-जा
-जितना
-जिन
-जिन्हें
-जिन्हों
-जिस
-जिसे
-जीधर
-जैसा
-जैसे
-जो
-तक
-तब
-तरह
-तिन
-तिन्हें
-तिन्हों
-तिस
-तिसे
-तो
-था
-थी
-थे
-दबारा
-दिया
-दुसरा
-दूसरे
-दो
-द्वारा
-न
-नहीं
-ना
-निहायत
-नीचे
-ने
-पर
-पर
-पहले
-पूरा
-पे
-फिर
-बनी
-बही
-बहुत
-बाद
-बाला
-बिलकुल
-भी
-भीतर
-मगर
-मानो
-मे
-में
-यदि
-यह
-यहाँ
-यही
-या
-यिह
-ये
-रखें
-रहा
-रहे
-ऱ्वासा
-लिए
-लिये
-लेकिन
-व
-वर्ग
-वह
-वह
-वहाँ
-वहीं
-वाले
-वुह
-वे
-वग़ैरह
-संग
-सकता
-सकते
-सबसे
-सभी
-साथ
-साबुत
-साभ
-सारा
-से
-सो
-ही
-हुआ
-हुई
-हुए
-है
-हैं
-हो
-होता
-होती
-होते
-होना
-होने
-# additional normalized forms of the above
-अपनि
-जेसे
-होति
-सभि
-तिंहों
-इंहों
-दवारा
-इसि
-किंहें
-थि
-उंहों
-ओर
-जिंहें
-वहिं
-अभि
-बनि
-हि
-उंहिं
-उंहें
-हें
-वगेरह
-एसे
-रवासा
-कोन
-निचे
-काफि
-उसि
-पुरा
-भितर
-हे
-बहि
-वहां
-कोइ
-यहां
-जिंहों
-तिंहें
-किसि
-कइ
-यहि
-इंहिं
-जिधर
-इंहें
-अदि
-इतयादि
-हुइ
-कोनसा
-इसकि
-दुसरे
-जहां
-अप
-किंहों
-उनकि
-भि
-वरग
-हुअ
-जेसा
-नहिं
diff --git a/solr/conf/lang/stopwords_hu.txt b/solr/conf/lang/stopwords_hu.txt
deleted file mode 100644
index 37526da8a..000000000
--- a/solr/conf/lang/stopwords_hu.txt
+++ /dev/null
@@ -1,211 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/hungarian/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
-| Hungarian stop word list
-| prepared by Anna Tordai
-
-a
-ahogy
-ahol
-aki
-akik
-akkor
-alatt
-által
-általában
-amely
-amelyek
-amelyekben
-amelyeket
-amelyet
-amelynek
-ami
-amit
-amolyan
-amíg
-amikor
-át
-abban
-ahhoz
-annak
-arra
-arról
-az
-azok
-azon
-azt
-azzal
-azért
-aztán
-azután
-azonban
-bár
-be
-belül
-benne
-cikk
-cikkek
-cikkeket
-csak
-de
-e
-eddig
-egész
-egy
-egyes
-egyetlen
-egyéb
-egyik
-egyre
-ekkor
-el
-elég
-ellen
-elő
-először
-előtt
-első
-én
-éppen
-ebben
-ehhez
-emilyen
-ennek
-erre
-ez
-ezt
-ezek
-ezen
-ezzel
-ezért
-és
-fel
-felé
-hanem
-hiszen
-hogy
-hogyan
-igen
-így
-illetve
-ill.
-ill
-ilyen
-ilyenkor
-ison
-ismét
-itt
-jó
-jól
-jobban
-kell
-kellett
-keresztül
-keressünk
-ki
-kívül
-között
-közül
-legalább
-lehet
-lehetett
-legyen
-lenne
-lenni
-lesz
-lett
-maga
-magát
-majd
-majd
-már
-más
-másik
-meg
-még
-mellett
-mert
-mely
-melyek
-mi
-mit
-míg
-miért
-milyen
-mikor
-minden
-mindent
-mindenki
-mindig
-mint
-mintha
-mivel
-most
-nagy
-nagyobb
-nagyon
-ne
-néha
-nekem
-neki
-nem
-néhány
-nélkül
-nincs
-olyan
-ott
-össze
-ők
-őket
-pedig
-persze
-rá
-s
-saját
-sem
-semmi
-sok
-sokat
-sokkal
-számára
-szemben
-szerint
-szinte
-talán
-tehát
-teljes
-tovább
-továbbá
-több
-úgy
-ugyanis
-új
-újabb
-újra
-után
-utána
-utolsó
-vagy
-vagyis
-valaki
-valami
-valamint
-való
-vagyok
-van
-vannak
-volt
-voltam
-voltak
-voltunk
-vissza
-vele
-viszont
-volna
diff --git a/solr/conf/lang/stopwords_hy.txt b/solr/conf/lang/stopwords_hy.txt
deleted file mode 100644
index 60c1c50fb..000000000
--- a/solr/conf/lang/stopwords_hy.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-# example set of Armenian stopwords.
-այդ
-այլ
-այն
-այս
-դու
-դուք
-եմ
-են
-ենք
-ես
-եք
-էի
-էին
-էինք
-էիր
-էիք
-էր
-ըստ
-ին
-իսկ
-իր
-կամ
-համար
-հետ
-հետո
-մենք
-մեջ
-մի
-նա
-նաև
-նրա
-նրանք
-որ
-որը
-որոնք
-որպես
-ու
-ում
-պիտի
-վրա
diff --git a/solr/conf/lang/stopwords_id.txt b/solr/conf/lang/stopwords_id.txt
deleted file mode 100644
index 4617f83a5..000000000
--- a/solr/conf/lang/stopwords_id.txt
+++ /dev/null
@@ -1,359 +0,0 @@
-# from appendix D of: A Study of Stemming Effects on Information
-# Retrieval in Bahasa Indonesia
-ada
-adanya
-adalah
-adapun
-agak
-agaknya
-agar
-akan
-akankah
-akhirnya
-aku
-akulah
-amat
-amatlah
-anda
-andalah
-antar
-diantaranya
-antara
-antaranya
-diantara
-apa
-apaan
-mengapa
-apabila
-apakah
-apalagi
-apatah
-atau
-ataukah
-ataupun
-bagai
-bagaikan
-sebagai
-sebagainya
-bagaimana
-bagaimanapun
-sebagaimana
-bagaimanakah
-bagi
-bahkan
-bahwa
-bahwasanya
-sebaliknya
-banyak
-sebanyak
-beberapa
-seberapa
-begini
-beginian
-beginikah
-beginilah
-sebegini
-begitu
-begitukah
-begitulah
-begitupun
-sebegitu
-belum
-belumlah
-sebelum
-sebelumnya
-sebenarnya
-berapa
-berapakah
-berapalah
-berapapun
-betulkah
-sebetulnya
-biasa
-biasanya
-bila
-bilakah
-bisa
-bisakah
-sebisanya
-boleh
-bolehkah
-bolehlah
-buat
-bukan
-bukankah
-bukanlah
-bukannya
-cuma
-percuma
-dahulu
-dalam
-dan
-dapat
-dari
-daripada
-dekat
-demi
-demikian
-demikianlah
-sedemikian
-dengan
-depan
-di
-dia
-dialah
-dini
-diri
-dirinya
-terdiri
-dong
-dulu
-enggak
-enggaknya
-entah
-entahlah
-terhadap
-terhadapnya
-hal
-hampir
-hanya
-hanyalah
-harus
-haruslah
-harusnya
-seharusnya
-hendak
-hendaklah
-hendaknya
-hingga
-sehingga
-ia
-ialah
-ibarat
-ingin
-inginkah
-inginkan
-ini
-inikah
-inilah
-itu
-itukah
-itulah
-jangan
-jangankan
-janganlah
-jika
-jikalau
-juga
-justru
-kala
-kalau
-kalaulah
-kalaupun
-kalian
-kami
-kamilah
-kamu
-kamulah
-kan
-kapan
-kapankah
-kapanpun
-dikarenakan
-karena
-karenanya
-ke
-kecil
-kemudian
-kenapa
-kepada
-kepadanya
-ketika
-seketika
-khususnya
-kini
-kinilah
-kiranya
-sekiranya
-kita
-kitalah
-kok
-lagi
-lagian
-selagi
-lah
-lain
-lainnya
-melainkan
-selaku
-lalu
-melalui
-terlalu
-lama
-lamanya
-selama
-selama
-selamanya
-lebih
-terlebih
-bermacam
-macam
-semacam
-maka
-makanya
-makin
-malah
-malahan
-mampu
-mampukah
-mana
-manakala
-manalagi
-masih
-masihkah
-semasih
-masing
-mau
-maupun
-semaunya
-memang
-mereka
-merekalah
-meski
-meskipun
-semula
-mungkin
-mungkinkah
-nah
-namun
-nanti
-nantinya
-nyaris
-oleh
-olehnya
-seorang
-seseorang
-pada
-padanya
-padahal
-paling
-sepanjang
-pantas
-sepantasnya
-sepantasnyalah
-para
-pasti
-pastilah
-per
-pernah
-pula
-pun
-merupakan
-rupanya
-serupa
-saat
-saatnya
-sesaat
-saja
-sajalah
-saling
-bersama
-sama
-sesama
-sambil
-sampai
-sana
-sangat
-sangatlah
-saya
-sayalah
-se
-sebab
-sebabnya
-sebuah
-tersebut
-tersebutlah
-sedang
-sedangkan
-sedikit
-sedikitnya
-segala
-segalanya
-segera
-sesegera
-sejak
-sejenak
-sekali
-sekalian
-sekalipun
-sesekali
-sekaligus
-sekarang
-sekarang
-sekitar
-sekitarnya
-sela
-selain
-selalu
-seluruh
-seluruhnya
-semakin
-sementara
-sempat
-semua
-semuanya
-sendiri
-sendirinya
-seolah
-seperti
-sepertinya
-sering
-seringnya
-serta
-siapa
-siapakah
-siapapun
-disini
-disinilah
-sini
-sinilah
-sesuatu
-sesuatunya
-suatu
-sesudah
-sesudahnya
-sudah
-sudahkah
-sudahlah
-supaya
-tadi
-tadinya
-tak
-tanpa
-setelah
-telah
-tentang
-tentu
-tentulah
-tentunya
-tertentu
-seterusnya
-tapi
-tetapi
-setiap
-tiap
-setidaknya
-tidak
-tidakkah
-tidaklah
-toh
-waduh
-wah
-wahai
-sewaktu
-walau
-walaupun
-wong
-yaitu
-yakni
-yang
diff --git a/solr/conf/lang/stopwords_it.txt b/solr/conf/lang/stopwords_it.txt
deleted file mode 100644
index 1219cc773..000000000
--- a/solr/conf/lang/stopwords_it.txt
+++ /dev/null
@@ -1,303 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/italian/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | An Italian stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
-ad | a (to) before vowel
-al | a + il
-allo | a + lo
-ai | a + i
-agli | a + gli
-all | a + l'
-agl | a + gl'
-alla | a + la
-alle | a + le
-con | with
-col | con + il
-coi | con + i (forms collo, cogli etc are now very rare)
-da | from
-dal | da + il
-dallo | da + lo
-dai | da + i
-dagli | da + gli
-dall | da + l'
-dagl | da + gll'
-dalla | da + la
-dalle | da + le
-di | of
-del | di + il
-dello | di + lo
-dei | di + i
-degli | di + gli
-dell | di + l'
-degl | di + gl'
-della | di + la
-delle | di + le
-in | in
-nel | in + el
-nello | in + lo
-nei | in + i
-negli | in + gli
-nell | in + l'
-negl | in + gl'
-nella | in + la
-nelle | in + le
-su | on
-sul | su + il
-sullo | su + lo
-sui | su + i
-sugli | su + gli
-sull | su + l'
-sugl | su + gl'
-sulla | su + la
-sulle | su + le
-per | through, by
-tra | among
-contro | against
-io | I
-tu | thou
-lui | he
-lei | she
-noi | we
-voi | you
-loro | they
-mio | my
-mia |
-miei |
-mie |
-tuo |
-tua |
-tuoi | thy
-tue |
-suo |
-sua |
-suoi | his, her
-sue |
-nostro | our
-nostra |
-nostri |
-nostre |
-vostro | your
-vostra |
-vostri |
-vostre |
-mi | me
-ti | thee
-ci | us, there
-vi | you, there
-lo | him, the
-la | her, the
-li | them
-le | them, the
-gli | to him, the
-ne | from there etc
-il | the
-un | a
-uno | a
-una | a
-ma | but
-ed | and
-se | if
-perché | why, because
-anche | also
-come | how
-dov | where (as dov')
-dove | where
-che | who, that
-chi | who
-cui | whom
-non | not
-più | more
-quale | who, that
-quanto | how much
-quanti |
-quanta |
-quante |
-quello | that
-quelli |
-quella |
-quelle |
-questo | this
-questi |
-questa |
-queste |
-si | yes
-tutto | all
-tutti | all
-
- | single letter forms:
-
-a | at
-c | as c' for ce or ci
-e | and
-i | the
-l | as l'
-o | or
-
- | forms of avere, to have (not including the infinitive):
-
-ho
-hai
-ha
-abbiamo
-avete
-hanno
-abbia
-abbiate
-abbiano
-avrò
-avrai
-avrà
-avremo
-avrete
-avranno
-avrei
-avresti
-avrebbe
-avremmo
-avreste
-avrebbero
-avevo
-avevi
-aveva
-avevamo
-avevate
-avevano
-ebbi
-avesti
-ebbe
-avemmo
-aveste
-ebbero
-avessi
-avesse
-avessimo
-avessero
-avendo
-avuto
-avuta
-avuti
-avute
-
- | forms of essere, to be (not including the infinitive):
-sono
-sei
-siamo
-siete
-sia
-siate
-siano
-sarò
-sarai
-sarà
-saremo
-sarete
-saranno
-sarei
-saresti
-sarebbe
-saremmo
-sareste
-sarebbero
-ero
-eri
-era
-eravamo
-eravate
-erano
-fui
-fosti
-fu
-fummo
-foste
-furono
-fossi
-fosse
-fossimo
-fossero
-essendo
-
- | forms of fare, to do (not including the infinitive, fa, fat-):
-faccio
-fai
-facciamo
-fanno
-faccia
-facciate
-facciano
-farò
-farai
-farà
-faremo
-farete
-faranno
-farei
-faresti
-farebbe
-faremmo
-fareste
-farebbero
-facevo
-facevi
-faceva
-facevamo
-facevate
-facevano
-feci
-facesti
-fece
-facemmo
-faceste
-fecero
-facessi
-facesse
-facessimo
-facessero
-facendo
-
- | forms of stare, to be (not including the infinitive):
-sto
-stai
-sta
-stiamo
-stanno
-stia
-stiate
-stiano
-starò
-starai
-starà
-staremo
-starete
-staranno
-starei
-staresti
-starebbe
-staremmo
-stareste
-starebbero
-stavo
-stavi
-stava
-stavamo
-stavate
-stavano
-stetti
-stesti
-stette
-stemmo
-steste
-stettero
-stessi
-stesse
-stessimo
-stessero
-stando
diff --git a/solr/conf/lang/stopwords_ja.txt b/solr/conf/lang/stopwords_ja.txt
deleted file mode 100644
index d4321be6b..000000000
--- a/solr/conf/lang/stopwords_ja.txt
+++ /dev/null
@@ -1,127 +0,0 @@
-#
-# This file defines a stopword set for Japanese.
-#
-# This set is made up of hand-picked frequent terms from segmented Japanese Wikipedia.
-# Punctuation characters and frequent kanji have mostly been left out. See LUCENE-3745
-# for frequency lists, etc. that can be useful for making your own set (if desired)
-#
-# Note that there is an overlap between these stopwords and the terms stopped when used
-# in combination with the JapanesePartOfSpeechStopFilter. When editing this file, note
-# that comments are not allowed on the same line as stopwords.
-#
-# Also note that stopping is done in a case-insensitive manner. Change your StopFilter
-# configuration if you need case-sensitive stopping. Lastly, note that stopping is done
-# using the same character width as the entries in this file. Since this StopFilter is
-# normally done after a CJKWidthFilter in your chain, you would usually want your romaji
-# entries to be in half-width and your kana entries to be in full-width.
-#
-の
-に
-は
-を
-た
-が
-で
-て
-と
-し
-れ
-さ
-ある
-いる
-も
-する
-から
-な
-こと
-として
-い
-や
-れる
-など
-なっ
-ない
-この
-ため
-その
-あっ
-よう
-また
-もの
-という
-あり
-まで
-られ
-なる
-へ
-か
-だ
-これ
-によって
-により
-おり
-より
-による
-ず
-なり
-られる
-において
-ば
-なかっ
-なく
-しかし
-について
-せ
-だっ
-その後
-できる
-それ
-う
-ので
-なお
-のみ
-でき
-き
-つ
-における
-および
-いう
-さらに
-でも
-ら
-たり
-その他
-に関する
-たち
-ます
-ん
-なら
-に対して
-特に
-せる
-及び
-これら
-とき
-では
-にて
-ほか
-ながら
-うち
-そして
-とともに
-ただし
-かつて
-それぞれ
-または
-お
-ほど
-ものの
-に対する
-ほとんど
-と共に
-といった
-です
-とも
-ところ
-ここ
-##### End of file
diff --git a/solr/conf/lang/stopwords_lv.txt b/solr/conf/lang/stopwords_lv.txt
deleted file mode 100644
index e21a23c06..000000000
--- a/solr/conf/lang/stopwords_lv.txt
+++ /dev/null
@@ -1,172 +0,0 @@
-# Set of Latvian stopwords from A Stemming Algorithm for Latvian, Karlis Kreslins
-# the original list of over 800 forms was refined:
-# pronouns, adverbs, interjections were removed
-#
-# prepositions
-aiz
-ap
-ar
-apakš
-ārpus
-augšpus
-bez
-caur
-dēļ
-gar
-iekš
-iz
-kopš
-labad
-lejpus
-līdz
-no
-otrpus
-pa
-par
-pār
-pēc
-pie
-pirms
-pret
-priekš
-starp
-šaipus
-uz
-viņpus
-virs
-virspus
-zem
-apakšpus
-# Conjunctions
-un
-bet
-jo
-ja
-ka
-lai
-tomēr
-tikko
-turpretī
-arī
-kaut
-gan
-tādēļ
-tā
-ne
-tikvien
-vien
-kā
-ir
-te
-vai
-kamēr
-# Particles
-ar
-diezin
-droši
-diemžēl
-nebūt
-ik
-it
-taču
-nu
-pat
-tiklab
-iekšpus
-nedz
-tik
-nevis
-turpretim
-jeb
-iekam
-iekām
-iekāms
-kolīdz
-līdzko
-tiklīdz
-jebšu
-tālab
-tāpēc
-nekā
-itin
-jā
-jau
-jel
-nē
-nezin
-tad
-tikai
-vis
-tak
-iekams
-vien
-# modal verbs
-būt
-biju
-biji
-bija
-bijām
-bijāt
-esmu
-esi
-esam
-esat
-būšu
-būsi
-būs
-būsim
-būsiet
-tikt
-tiku
-tiki
-tika
-tikām
-tikāt
-tieku
-tiec
-tiek
-tiekam
-tiekat
-tikšu
-tiks
-tiksim
-tiksiet
-tapt
-tapi
-tapāt
-topat
-tapšu
-tapsi
-taps
-tapsim
-tapsiet
-kļūt
-kļuvu
-kļuvi
-kļuva
-kļuvām
-kļuvāt
-kļūstu
-kļūsti
-kļūst
-kļūstam
-kļūstat
-kļūšu
-kļūsi
-kļūs
-kļūsim
-kļūsiet
-# verbs
-varēt
-varēju
-varējām
-varēšu
-varēsim
-var
-varēji
-varējāt
-varēsi
-varēsiet
-varat
-varēja
-varēs
diff --git a/solr/conf/lang/stopwords_nl.txt b/solr/conf/lang/stopwords_nl.txt
deleted file mode 100644
index 47a2aeacf..000000000
--- a/solr/conf/lang/stopwords_nl.txt
+++ /dev/null
@@ -1,119 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/dutch/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | A Dutch stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | This is a ranked list (commonest to rarest) of stopwords derived from
- | a large sample of Dutch text.
-
- | Dutch stop words frequently exhibit homonym clashes. These are indicated
- | clearly below.
-
-de | the
-en | and
-van | of, from
-ik | I, the ego
-te | (1) chez, at etc, (2) to, (3) too
-dat | that, which
-die | that, those, who, which
-in | in, inside
-een | a, an, one
-hij | he
-het | the, it
-niet | not, nothing, naught
-zijn | (1) to be, being, (2) his, one's, its
-is | is
-was | (1) was, past tense of all persons sing. of 'zijn' (to be) (2) wax, (3) the washing, (4) rise of river
-op | on, upon, at, in, up, used up
-aan | on, upon, to (as dative)
-met | with, by
-als | like, such as, when
-voor | (1) before, in front of, (2) furrow
-had | had, past tense all persons sing. of 'hebben' (have)
-er | there
-maar | but, only
-om | round, about, for etc
-hem | him
-dan | then
-zou | should/would, past tense all persons sing. of 'zullen'
-of | or, whether, if
-wat | what, something, anything
-mijn | possessive and noun 'mine'
-men | people, 'one'
-dit | this
-zo | so, thus, in this way
-door | through by
-over | over, across
-ze | she, her, they, them
-zich | oneself
-bij | (1) a bee, (2) by, near, at
-ook | also, too
-tot | till, until
-je | you
-mij | me
-uit | out of, from
-der | Old Dutch form of 'van der' still found in surnames
-daar | (1) there, (2) because
-haar | (1) her, their, them, (2) hair
-naar | (1) unpleasant, unwell etc, (2) towards, (3) as
-heb | present first person sing. of 'to have'
-hoe | how, why
-heeft | present third person sing. of 'to have'
-hebben | 'to have' and various parts thereof
-deze | this
-u | you
-want | (1) for, (2) mitten, (3) rigging
-nog | yet, still
-zal | 'shall', first and third person sing. of verb 'zullen' (will)
-me | me
-zij | she, they
-nu | now
-ge | 'thou', still used in Belgium and south Netherlands
-geen | none
-omdat | because
-iets | something, somewhat
-worden | to become, grow, get
-toch | yet, still
-al | all, every, each
-waren | (1) 'were' (2) to wander, (3) wares, (3)
-veel | much, many
-meer | (1) more, (2) lake
-doen | to do, to make
-toen | then, when
-moet | noun 'spot/mote' and present form of 'to must'
-ben | (1) am, (2) 'are' in interrogative second person singular of 'to be'
-zonder | without
-kan | noun 'can' and present form of 'to be able'
-hun | their, them
-dus | so, consequently
-alles | all, everything, anything
-onder | under, beneath
-ja | yes, of course
-eens | once, one day
-hier | here
-wie | who
-werd | imperfect third person sing. of 'become'
-altijd | always
-doch | yet, but etc
-wordt | present third person sing. of 'become'
-wezen | (1) to be, (2) 'been' as in 'been fishing', (3) orphans
-kunnen | to be able
-ons | us/our
-zelf | self
-tegen | against, towards, at
-na | after, near
-reeds | already
-wil | (1) present tense of 'want', (2) 'will', noun, (3) fender
-kon | could; past tense of 'to be able'
-niets | nothing
-uw | your
-iemand | somebody
-geweest | been; past participle of 'be'
-andere | other
diff --git a/solr/conf/lang/stopwords_no.txt b/solr/conf/lang/stopwords_no.txt
deleted file mode 100644
index a7a2c28ba..000000000
--- a/solr/conf/lang/stopwords_no.txt
+++ /dev/null
@@ -1,194 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/norwegian/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | A Norwegian stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | This stop word list is for the dominant bokmål dialect. Words unique
- | to nynorsk are marked *.
-
- | Revised by Jan Bruusgaard <Jan.Bruusgaard@ssb.no>, Jan 2005
-
-og | and
-i | in
-jeg | I
-det | it/this/that
-at | to (w. inf.)
-en | a/an
-et | a/an
-den | it/this/that
-til | to
-er | is/am/are
-som | who/that
-på | on
-de | they / you(formal)
-med | with
-han | he
-av | of
-ikke | not
-ikkje | not *
-der | there
-så | so
-var | was/were
-meg | me
-seg | you
-men | but
-ett | one
-har | have
-om | about
-vi | we
-min | my
-mitt | my
-ha | have
-hadde | had
-hun | she
-nå | now
-over | over
-da | when/as
-ved | by/know
-fra | from
-du | you
-ut | out
-sin | your
-dem | them
-oss | us
-opp | up
-man | you/one
-kan | can
-hans | his
-hvor | where
-eller | or
-hva | what
-skal | shall/must
-selv | self (reflective)
-sjøl | self (reflective)
-her | here
-alle | all
-vil | will
-bli | become
-ble | became
-blei | became *
-blitt | have become
-kunne | could
-inn | in
-når | when
-være | be
-kom | come
-noen | some
-noe | some
-ville | would
-dere | you
-som | who/which/that
-deres | their/theirs
-kun | only/just
-ja | yes
-etter | after
-ned | down
-skulle | should
-denne | this
-for | for/because
-deg | you
-si | hers/his
-sine | hers/his
-sitt | hers/his
-mot | against
-å | to
-meget | much
-hvorfor | why
-dette | this
-disse | these/those
-uten | without
-hvordan | how
-ingen | none
-din | your
-ditt | your
-blir | become
-samme | same
-hvilken | which
-hvilke | which (plural)
-sånn | such a
-inni | inside/within
-mellom | between
-vår | our
-hver | each
-hvem | who
-vors | us/ours
-hvis | whose
-både | both
-bare | only/just
-enn | than
-fordi | as/because
-før | before
-mange | many
-også | also
-slik | just
-vært | been
-være | to be
-båe | both *
-begge | both
-siden | since
-dykk | your *
-dykkar | yours *
-dei | they *
-deira | them *
-deires | theirs *
-deim | them *
-di | your (fem.) *
-då | as/when *
-eg | I *
-ein | a/an *
-eit | a/an *
-eitt | a/an *
-elles | or *
-honom | he *
-hjå | at *
-ho | she *
-hoe | she *
-henne | her
-hennar | her/hers
-hennes | hers
-hoss | how *
-hossen | how *
-ikkje | not *
-ingi | noone *
-inkje | noone *
-korleis | how *
-korso | how *
-kva | what/which *
-kvar | where *
-kvarhelst | where *
-kven | who/whom *
-kvi | why *
-kvifor | why *
-me | we *
-medan | while *
-mi | my *
-mine | my *
-mykje | much *
-no | now *
-nokon | some (masc./neut.) *
-noka | some (fem.) *
-nokor | some *
-noko | some *
-nokre | some *
-si | his/hers *
-sia | since *
-sidan | since *
-so | so *
-somt | some *
-somme | some *
-um | about*
-upp | up *
-vere | be *
-vore | was *
-verte | become *
-vort | become *
-varte | became *
-vart | became *
-
diff --git a/solr/conf/lang/stopwords_pt.txt b/solr/conf/lang/stopwords_pt.txt
deleted file mode 100644
index acfeb01af..000000000
--- a/solr/conf/lang/stopwords_pt.txt
+++ /dev/null
@@ -1,253 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/portuguese/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | A Portuguese stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
-
- | The following is a ranked list (commonest to rarest) of stopwords
- | deriving from a large sample of text.
-
- | Extra words have been added at the end.
-
-de | of, from
-a | the; to, at; her
-o | the; him
-que | who, that
-e | and
-do | de + o
-da | de + a
-em | in
-um | a
-para | for
- | é from SER
-com | with
-não | not, no
-uma | a
-os | the; them
-no | em + o
-se | himself etc
-na | em + a
-por | for
-mais | more
-as | the; them
-dos | de + os
-como | as, like
-mas | but
- | foi from SER
-ao | a + o
-ele | he
-das | de + as
- | tem from TER
-à | a + a
-seu | his
-sua | her
-ou | or
- | ser from SER
-quando | when
-muito | much
- | há from HAV
-nos | em + os; us
-já | already, now
- | está from EST
-eu | I
-também | also
-só | only, just
-pelo | per + o
-pela | per + a
-até | up to
-isso | that
-ela | he
-entre | between
- | era from SER
-depois | after
-sem | without
-mesmo | same
-aos | a + os
- | ter from TER
-seus | his
-quem | whom
-nas | em + as
-me | me
-esse | that
-eles | they
- | estão from EST
-você | you
- | tinha from TER
- | foram from SER
-essa | that
-num | em + um
-nem | nor
-suas | her
-meu | my
-às | a + as
-minha | my
- | têm from TER
-numa | em + uma
-pelos | per + os
-elas | they
- | havia from HAV
- | seja from SER
-qual | which
- | será from SER
-nós | we
- | tenho from TER
-lhe | to him, her
-deles | of them
-essas | those
-esses | those
-pelas | per + as
-este | this
- | fosse from SER
-dele | of him
-
- | other words. There are many contractions such as naquele = em+aquele,
- | mo = me+o, but they are rare.
- | Indefinite article plural forms are also rare.
-
-tu | thou
-te | thee
-vocês | you (plural)
-vos | you
-lhes | to them
-meus | my
-minhas
-teu | thy
-tua
-teus
-tuas
-nosso | our
-nossa
-nossos
-nossas
-
-dela | of her
-delas | of them
-
-esta | this
-estes | these
-estas | these
-aquele | that
-aquela | that
-aqueles | those
-aquelas | those
-isto | this
-aquilo | that
-
- | forms of estar, to be (not including the infinitive):
-estou
-está
-estamos
-estão
-estive
-esteve
-estivemos
-estiveram
-estava
-estávamos
-estavam
-estivera
-estivéramos
-esteja
-estejamos
-estejam
-estivesse
-estivéssemos
-estivessem
-estiver
-estivermos
-estiverem
-
- | forms of haver, to have (not including the infinitive):
-hei
-há
-havemos
-hão
-houve
-houvemos
-houveram
-houvera
-houvéramos
-haja
-hajamos
-hajam
-houvesse
-houvéssemos
-houvessem
-houver
-houvermos
-houverem
-houverei
-houverá
-houveremos
-houverão
-houveria
-houveríamos
-houveriam
-
- | forms of ser, to be (not including the infinitive):
-sou
-somos
-são
-era
-éramos
-eram
-fui
-foi
-fomos
-foram
-fora
-fôramos
-seja
-sejamos
-sejam
-fosse
-fôssemos
-fossem
-for
-formos
-forem
-serei
-será
-seremos
-serão
-seria
-seríamos
-seriam
-
- | forms of ter, to have (not including the infinitive):
-tenho
-tem
-temos
-tém
-tinha
-tínhamos
-tinham
-tive
-teve
-tivemos
-tiveram
-tivera
-tivéramos
-tenha
-tenhamos
-tenham
-tivesse
-tivéssemos
-tivessem
-tiver
-tivermos
-tiverem
-terei
-terá
-teremos
-terão
-teria
-teríamos
-teriam
diff --git a/solr/conf/lang/stopwords_ro.txt b/solr/conf/lang/stopwords_ro.txt
deleted file mode 100644
index 4fdee90a5..000000000
--- a/solr/conf/lang/stopwords_ro.txt
+++ /dev/null
@@ -1,233 +0,0 @@
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# Also see http://www.opensource.org/licenses/bsd-license.html
-acea
-aceasta
-această
-aceea
-acei
-aceia
-acel
-acela
-acele
-acelea
-acest
-acesta
-aceste
-acestea
-aceşti
-aceştia
-acolo
-acum
-ai
-aia
-aibă
-aici
-al
-ăla
-ale
-alea
-ălea
-altceva
-altcineva
-am
-ar
-are
-aş
-aşadar
-asemenea
-asta
-ăsta
-astăzi
-astea
-ăstea
-ăştia
-asupra
-aţi
-au
-avea
-avem
-aveţi
-azi
-bine
-bucur
-bună
-ca
-că
-căci
-când
-care
-cărei
-căror
-cărui
-cât
-câte
-câţi
-către
-câtva
-ce
-cel
-ceva
-chiar
-cînd
-cine
-cineva
-cît
-cîte
-cîţi
-cîtva
-contra
-cu
-cum
-cumva
-curând
-curînd
-da
-dă
-dacă
-dar
-datorită
-de
-deci
-deja
-deoarece
-departe
-deşi
-din
-dinaintea
-dintr
-dintre
-drept
-după
-ea
-ei
-el
-ele
-eram
-este
-eşti
-eu
-face
-fără
-fi
-fie
-fiecare
-fii
-fim
-fiţi
-iar
-ieri
-îi
-îl
-îmi
-împotriva
-în
-înainte
-înaintea
-încât
-încît
-încotro
-între
-întrucât
-întrucît
-îţi
-la
-lângă
-le
-li
-lîngă
-lor
-lui
-mă
-mâine
-mea
-mei
-mele
-mereu
-meu
-mi
-mine
-mult
-multă
-mulţi
-ne
-nicăieri
-nici
-nimeni
-nişte
-noastră
-noastre
-noi
-noştri
-nostru
-nu
-ori
-oricând
-oricare
-oricât
-orice
-oricînd
-oricine
-oricît
-oricum
-oriunde
-până
-pe
-pentru
-peste
-pînă
-poate
-pot
-prea
-prima
-primul
-prin
-printr
-sa
-să
-săi
-sale
-sau
-său
-se
-şi
-sînt
-sîntem
-sînteţi
-spre
-sub
-sunt
-suntem
-sunteţi
-ta
-tăi
-tale
-tău
-te
-ţi
-ţie
-tine
-toată
-toate
-tot
-toţi
-totuşi
-tu
-un
-una
-unde
-undeva
-unei
-unele
-uneori
-unor
-vă
-vi
-voastră
-voastre
-voi
-voştri
-vostru
-vouă
-vreo
-vreun
diff --git a/solr/conf/lang/stopwords_ru.txt b/solr/conf/lang/stopwords_ru.txt
deleted file mode 100644
index 55271400c..000000000
--- a/solr/conf/lang/stopwords_ru.txt
+++ /dev/null
@@ -1,243 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/russian/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | a russian stop word list. comments begin with vertical bar. each stop
- | word is at the start of a line.
-
- | this is a ranked list (commonest to rarest) of stopwords derived from
- | a large text sample.
-
- | letter `ё' is translated to `е'.
-
-и | and
-в | in/into
-во | alternative form
-не | not
-что | what/that
-он | he
-на | on/onto
-я | i
-с | from
-со | alternative form
-как | how
-а | milder form of `no' (but)
-то | conjunction and form of `that'
-все | all
-она | she
-так | so, thus
-его | him
-но | but
-да | yes/and
-ты | thou
-к | towards, by
-у | around, chez
-же | intensifier particle
-вы | you
-за | beyond, behind
-бы | conditional/subj. particle
-по | up to, along
-только | only
-ее | her
-мне | to me
-было | it was
-вот | here is/are, particle
-от | away from
-меня | me
-еще | still, yet, more
-нет | no, there isnt/arent
-о | about
-из | out of
-ему | to him
-теперь | now
-когда | when
-даже | even
-ну | so, well
-вдруг | suddenly
-ли | interrogative particle
-если | if
-уже | already, but homonym of `narrower'
-или | or
-ни | neither
-быть | to be
-был | he was
-него | prepositional form of его
-до | up to
-вас | you accusative
-нибудь | indef. suffix preceded by hyphen
-опять | again
-уж | already, but homonym of `adder'
-вам | to you
-сказал | he said
-ведь | particle `after all'
-там | there
-потом | then
-себя | oneself
-ничего | nothing
-ей | to her
-может | usually with `быть' as `maybe'
-они | they
-тут | here
-где | where
-есть | there is/are
-надо | got to, must
-ней | prepositional form of ей
-для | for
-мы | we
-тебя | thee
-их | them, their
-чем | than
-была | she was
-сам | self
-чтоб | in order to
-без | without
-будто | as if
-человек | man, person, one
-чего | genitive form of `what'
-раз | once
-тоже | also
-себе | to oneself
-под | beneath
-жизнь | life
-будет | will be
-ж | short form of intensifer particle `же'
-тогда | then
-кто | who
-этот | this
-говорил | was saying
-того | genitive form of `that'
-потому | for that reason
-этого | genitive form of `this'
-какой | which
-совсем | altogether
-ним | prepositional form of `его', `они'
-здесь | here
-этом | prepositional form of `этот'
-один | one
-почти | almost
-мой | my
-тем | instrumental/dative plural of `тот', `то'
-чтобы | full form of `in order that'
-нее | her (acc.)
-кажется | it seems
-сейчас | now
-были | they were
-куда | where to
-зачем | why
-сказать | to say
-всех | all (acc., gen. preposn. plural)
-никогда | never
-сегодня | today
-можно | possible, one can
-при | by
-наконец | finally
-два | two
-об | alternative form of `о', about
-другой | another
-хоть | even
-после | after
-над | above
-больше | more
-тот | that one (masc.)
-через | across, in
-эти | these
-нас | us
-про | about
-всего | in all, only, of all
-них | prepositional form of `они' (they)
-какая | which, feminine
-много | lots
-разве | interrogative particle
-сказала | she said
-три | three
-эту | this, acc. fem. sing.
-моя | my, feminine
-впрочем | moreover, besides
-хорошо | good
-свою | ones own, acc. fem. sing.
-этой | oblique form of `эта', fem. `this'
-перед | in front of
-иногда | sometimes
-лучше | better
-чуть | a little
-том | preposn. form of `that one'
-нельзя | one must not
-такой | such a one
-им | to them
-более | more
-всегда | always
-конечно | of course
-всю | acc. fem. sing of `all'
-между | between
-
-
- | b: some paradigms
- |
- | personal pronouns
- |
- | я меня мне мной [мною]
- | ты тебя тебе тобой [тобою]
- | он его ему им [него, нему, ним]
- | она ее эи ею [нее, нэи, нею]
- | оно его ему им [него, нему, ним]
- |
- | мы нас нам нами
- | вы вас вам вами
- | они их им ими [них, ним, ними]
- |
- | себя себе собой [собою]
- |
- | demonstrative pronouns: этот (this), тот (that)
- |
- | этот эта это эти
- | этого эты это эти
- | этого этой этого этих
- | этому этой этому этим
- | этим этой этим [этою] этими
- | этом этой этом этих
- |
- | тот та то те
- | того ту то те
- | того той того тех
- | тому той тому тем
- | тем той тем [тою] теми
- | том той том тех
- |
- | determinative pronouns
- |
- | (a) весь (all)
- |
- | весь вся все все
- | всего всю все все
- | всего всей всего всех
- | всему всей всему всем
- | всем всей всем [всею] всеми
- | всем всей всем всех
- |
- | (b) сам (himself etc)
- |
- | сам сама само сами
- | самого саму само самих
- | самого самой самого самих
- | самому самой самому самим
- | самим самой самим [самою] самими
- | самом самой самом самих
- |
- | stems of verbs `to be', `to have', `to do' and modal
- |
- | быть бы буд быв есть суть
- | име
- | дел
- | мог мож мочь
- | уме
- | хоч хот
- | долж
- | можн
- | нужн
- | нельзя
-
diff --git a/solr/conf/lang/stopwords_sv.txt b/solr/conf/lang/stopwords_sv.txt
deleted file mode 100644
index 096f87f67..000000000
--- a/solr/conf/lang/stopwords_sv.txt
+++ /dev/null
@@ -1,133 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/swedish/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
- |
- | NOTE: To use this file with StopFilterFactory, you must specify format="snowball"
-
- | A Swedish stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | This is a ranked list (commonest to rarest) of stopwords derived from
- | a large text sample.
-
- | Swedish stop words occasionally exhibit homonym clashes. For example
- | så = so, but also seed. These are indicated clearly below.
-
-och | and
-det | it, this/that
-att | to (with infinitive)
-i | in, at
-en | a
-jag | I
-hon | she
-som | who, that
-han | he
-på | on
-den | it, this/that
-med | with
-var | where, each
-sig | him(self) etc
-för | for
-så | so (also: seed)
-till | to
-är | is
-men | but
-ett | a
-om | if; around, about
-hade | had
-de | they, these/those
-av | of
-icke | not, no
-mig | me
-du | you
-henne | her
-då | then, when
-sin | his
-nu | now
-har | have
-inte | inte någon = no one
-hans | his
-honom | him
-skulle | 'sake'
-hennes | her
-där | there
-min | my
-man | one (pronoun)
-ej | nor
-vid | at, by, on (also: vast)
-kunde | could
-något | some etc
-från | from, off
-ut | out
-när | when
-efter | after, behind
-upp | up
-vi | we
-dem | them
-vara | be
-vad | what
-över | over
-än | than
-dig | you
-kan | can
-sina | his
-här | here
-ha | have
-mot | towards
-alla | all
-under | under (also: wonder)
-någon | some etc
-eller | or (else)
-allt | all
-mycket | much
-sedan | since
-ju | why
-denna | this/that
-själv | myself, yourself etc
-detta | this/that
-åt | to
-utan | without
-varit | was
-hur | how
-ingen | no
-mitt | my
-ni | you
-bli | to be, become
-blev | from bli
-oss | us
-din | thy
-dessa | these/those
-några | some etc
-deras | their
-blir | from bli
-mina | my
-samma | (the) same
-vilken | who, that
-er | you, your
-sådan | such a
-vår | our
-blivit | from bli
-dess | its
-inom | within
-mellan | between
-sådant | such a
-varför | why
-varje | each
-vilka | who, that
-ditt | thy
-vem | who
-vilket | who, that
-sitta | his
-sådana | such a
-vart | each
-dina | thy
-vars | whose
-vårt | our
-våra | our
-ert | your
-era | your
-vilkas | whose
-
diff --git a/solr/conf/lang/stopwords_th.txt b/solr/conf/lang/stopwords_th.txt
deleted file mode 100644
index 07f0fabe6..000000000
--- a/solr/conf/lang/stopwords_th.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-# Thai stopwords from:
-# "Opinion Detection in Thai Political News Columns
-# Based on Subjectivity Analysis"
-# Khampol Sukhum, Supot Nitsuwat, and Choochart Haruechaiyasak
-ไว้
-ไม่
-ไป
-ได้
-ให้
-ใน
-โดย
-แห่ง
-แล้ว
-และ
-แรก
-แบบ
-แต่
-เอง
-เห็น
-เลย
-เริ่ม
-เรา
-เมื่อ
-เพื่อ
-เพราะ
-เป็นการ
-เป็น
-เปิดเผย
-เปิด
-เนื่องจาก
-เดียวกัน
-เดียว
-เช่น
-เฉพาะ
-เคย
-เข้า
-เขา
-อีก
-อาจ
-อะไร
-ออก
-อย่าง
-อยู่
-อยาก
-หาก
-หลาย
-หลังจาก
-หลัง
-หรือ
-หนึ่ง
-ส่วน
-ส่ง
-สุด
-สําหรับ
-ว่า
-วัน
-ลง
-ร่วม
-ราย
-รับ
-ระหว่าง
-รวม
-ยัง
-มี
-มาก
-มา
-พร้อม
-พบ
-ผ่าน
-ผล
-บาง
-น่า
-นี้
-นํา
-นั้น
-นัก
-นอกจาก
-ทุก
-ที่สุด
-ที่
-ทําให้
-ทํา
-ทาง
-ทั้งนี้
-ทั้ง
-ถ้า
-ถูก
-ถึง
-ต้อง
-ต่างๆ
-ต่าง
-ต่อ
-ตาม
-ตั้งแต่
-ตั้ง
-ด้าน
-ด้วย
-ดัง
-ซึ่ง
-ช่วง
-จึง
-จาก
-จัด
-จะ
-คือ
-ความ
-ครั้ง
-คง
-ขึ้น
-ของ
-ขอ
-ขณะ
-ก่อน
-ก็
-การ
-กับ
-กัน
-กว่า
-กล่าว
diff --git a/solr/conf/lang/stopwords_tr.txt b/solr/conf/lang/stopwords_tr.txt
deleted file mode 100644
index 84d9408d4..000000000
--- a/solr/conf/lang/stopwords_tr.txt
+++ /dev/null
@@ -1,212 +0,0 @@
-# Turkish stopwords from LUCENE-559
-# merged with the list from "Information Retrieval on Turkish Texts"
-# (http://www.users.muohio.edu/canf/papers/JASIST2008offPrint.pdf)
-acaba
-altmış
-altı
-ama
-ancak
-arada
-aslında
-ayrıca
-bana
-bazı
-belki
-ben
-benden
-beni
-benim
-beri
-beş
-bile
-bin
-bir
-birçok
-biri
-birkaç
-birkez
-birşey
-birşeyi
-biz
-bize
-bizden
-bizi
-bizim
-böyle
-böylece
-bu
-buna
-bunda
-bundan
-bunlar
-bunları
-bunların
-bunu
-bunun
-burada
-çok
-çünkü
-da
-daha
-dahi
-de
-defa
-değil
-diğer
-diye
-doksan
-dokuz
-dolayı
-dolayısıyla
-dört
-edecek
-eden
-ederek
-edilecek
-ediliyor
-edilmesi
-ediyor
-eğer
-elli
-en
-etmesi
-etti
-ettiği
-ettiğini
-gibi
-göre
-halen
-hangi
-hatta
-hem
-henüz
-hep
-hepsi
-her
-herhangi
-herkesin
-hiç
-hiçbir
-için
-iki
-ile
-ilgili
-ise
-işte
-itibaren
-itibariyle
-kadar
-karşın
-katrilyon
-kendi
-kendilerine
-kendini
-kendisi
-kendisine
-kendisini
-kez
-ki
-kim
-kimden
-kime
-kimi
-kimse
-kırk
-milyar
-milyon
-mu
-mü
-mı
-nasıl
-ne
-neden
-nedenle
-nerde
-nerede
-nereye
-niye
-niçin
-o
-olan
-olarak
-oldu
-olduğu
-olduğunu
-olduklarını
-olmadı
-olmadığı
-olmak
-olması
-olmayan
-olmaz
-olsa
-olsun
-olup
-olur
-olursa
-oluyor
-on
-ona
-ondan
-onlar
-onlardan
-onları
-onların
-onu
-onun
-otuz
-oysa
-öyle
-pek
-rağmen
-sadece
-sanki
-sekiz
-seksen
-sen
-senden
-seni
-senin
-siz
-sizden
-sizi
-sizin
-şey
-şeyden
-şeyi
-şeyler
-şöyle
-şu
-şuna
-şunda
-şundan
-şunları
-şunu
-tarafından
-trilyon
-tüm
-üç
-üzere
-var
-vardı
-ve
-veya
-ya
-yani
-yapacak
-yapılan
-yapılması
-yapıyor
-yapmak
-yaptı
-yaptığı
-yaptığını
-yaptıkları
-yedi
-yerine
-yetmiş
-yine
-yirmi
-yoksa
-yüz
-zaten
diff --git a/solr/conf/lang/userdict_ja.txt b/solr/conf/lang/userdict_ja.txt
deleted file mode 100644
index 6f0368e4d..000000000
--- a/solr/conf/lang/userdict_ja.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# This is a sample user dictionary for Kuromoji (JapaneseTokenizer)
-#
-# Add entries to this file in order to override the statistical model in terms
-# of segmentation, readings and part-of-speech tags. Notice that entries do
-# not have weights since they are always used when found. This is by-design
-# in order to maximize ease-of-use.
-#
-# Entries are defined using the following CSV format:
-# <text>,<token 1> ... <token n>,<reading 1> ... <reading n>,<part-of-speech tag>
-#
-# Notice that a single half-width space separates tokens and readings, and
-# that the number tokens and readings must match exactly.
-#
-# Also notice that multiple entries with the same <text> is undefined.
-#
-# Whitespace only lines are ignored. Comments are not allowed on entry lines.
-#
-
-# Custom segmentation for kanji compounds
-日本経済新聞,日本 経済 新聞,ニホン ケイザイ シンブン,カスタム名詞
-関西国際空港,関西 国際 空港,カンサイ コクサイ クウコウ,カスタム名詞
-
-# Custom segmentation for compound katakana
-トートバッグ,トート バッグ,トート バッグ,かずカナ名詞
-ショルダーバッグ,ショルダー バッグ,ショルダー バッグ,かずカナ名詞
-
-# Custom reading for former sumo wrestler
-朝青龍,朝青龍,アサショウリュウ,カスタム人名
diff --git a/solr/conf/params.json b/solr/conf/params.json
deleted file mode 100644
index 06114ef25..000000000
--- a/solr/conf/params.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{"params":{
- "query":{
- "defType":"edismax",
- "q.alt":"*:*",
- "rows":"10",
- "fl":"*,score",
- "":{"v":0}
- },
- "facets":{
- "facet":"on",
- "facet.mincount": "1",
- "":{"v":0}
- },
- "velocity":{
- "wt": "velocity",
- "v.template":"browse",
- "v.layout": "layout",
- "":{"v":0}
- }
-}} \ No newline at end of file
diff --git a/solr/conf/protwords.txt b/solr/conf/protwords.txt
deleted file mode 100644
index 1dfc0abec..000000000
--- a/solr/conf/protwords.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#-----------------------------------------------------------------------
-# Use a protected word file to protect against the stemmer reducing two
-# unrelated words to the same base word.
-
-# Some non-words that normally won't be encountered,
-# just to test that they won't be stemmed.
-dontstems
-zwhacky
-
diff --git a/solr/conf/schema.xml b/solr/conf/schema.xml
deleted file mode 100644
index 7a21794cb..000000000
--- a/solr/conf/schema.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema name="default-config" version="1.6">
- <uniqueKey>id</uniqueKey>
- <fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true"/>
- <fieldType name="text" class="solr.TextField">
- <analyzer type="index">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <filter class="solr.StopFilterFactory" words="stopwords.txt"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- <filter class="solr.PorterStemFilterFactory"/>
- <filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="12"/>
- </analyzer>
- <analyzer type="query">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <filter class="solr.StopFilterFactory" words="stopwords.txt"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- <filter class="solr.PorterStemFilterFactory"/>
- </analyzer>
- </fieldType>
- <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
- <analyzer type="index">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
- <!-- in this example, we will only use synonyms at query time
- <filter class="solr.SynonymGraphFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
- <filter class="solr.FlattenGraphFilterFactory"/>
- -->
- <filter class="solr.LowerCaseFilterFactory"/>
- </analyzer>
- <analyzer type="query">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
- <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- </analyzer>
- </fieldType>
-
- <fieldType name="plong" class="solr.LongPointField"/>
- <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
- <fieldType name="pdate" class="solr.DatePointField"/>
- <fieldType name="pdaterange" class="solr.DateRangeField"/>
- <fieldType name="pdouble" class="solr.DoublePointField"/>
-
- <field name="text" type="text" indexed="true" stored="false" uninvertible="false" multiValued="true"/>
- <field name="id" type="string" indexed="true" stored="true" uninvertible="false" required="true"/>
- <field name="_version_" type="plong" indexed="true" stored="true"/>
- <field name="deleted" type="boolean" indexed="true" stored="true" uninvertible="false" multiValued="false"/>
-
- <dynamicField name="*_t" type="text" indexed="true" stored="true" uninvertible="false" docValues="false"/>
- <dynamicField name="*_n" type="pdouble" indexed="true" stored="true" uninvertible="false" docValues="false"/>
- <dynamicField name="*_d" type="pdaterange" indexed="true" stored="true" uninvertible="false" docValues="false"/>
- <dynamicField name="*_l" type="string" indexed="true" stored="true" uninvertible="false" docValues="false" multiValued="true"/>
- <dynamicField name="*_i" type="string" indexed="true" stored="true" uninvertible="false" docValues="false"/>
- <dynamicField name="*_b" type="boolean" indexed="true" stored="true" uninvertible="false" docValues="false"/>
-
- <dynamicField name="*_a" type="text" indexed="true" stored="false" uninvertible="false" docValues="false"/>
-
- <copyField source="*_t" dest="text"/>
-
- <copyField source="*_t" dest="*_a"/>
- <copyField source="*_n" dest="*_a"/>
-</schema>
diff --git a/solr/conf/schema.xml~ b/solr/conf/schema.xml~
deleted file mode 100644
index 3b2addf78..000000000
--- a/solr/conf/schema.xml~
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema name="default-config" version="1.6">
- <uniqueKey>id</uniqueKey>
- <fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true"/>
- <fieldType name="text" class="solr.TextField">
- <analyzer type="index">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <filter class="solr.StopFilterFactory" words="stopwords.txt"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- <filter class="solr.PorterStemFilterFactory"/>
- <filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="12"/>
- </analyzer>
- <analyzer type="query">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <filter class="solr.StopFilterFactory" words="stopwords.txt"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- <filter class="solr.PorterStemFilterFactory"/>
- </analyzer>
- </fieldType>
- <field name="data" type="text" indexed="true" stored="true" uninvertible="false"/>
- <field name="id" type="string" indexed="true" stored="true" uninvertible="false" required="true"/>
- <field name="_version_" type="long" indexed="false" stored="false" multiValued="false"/>
-</schema>
diff --git a/solr/conf/solrconfig.xml b/solr/conf/solrconfig.xml
deleted file mode 100644
index 60f06f57f..000000000
--- a/solr/conf/solrconfig.xml
+++ /dev/null
@@ -1,1328 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!--
- For more details about configurations options that may appear in
- this file, see http://wiki.apache.org/solr/SolrConfigXml.
--->
-<config>
- <!-- In all configuration below, a prefix of "solr." for class names
- is an alias that causes solr to search appropriate packages,
- including org.apache.solr.(search|update|request|core|analysis)
-
- You may also specify a fully qualified Java classname if you
- have your own custom plugins.
- -->
-
- <!-- Controls what version of Lucene various components of Solr
- adhere to. Generally, you want to use the latest version to
- get all bug fixes and improvements. It is highly recommended
- that you fully re-index after changing this setting as it can
- affect both how text is indexed and queried.
- -->
- <luceneMatchVersion>8.0.0</luceneMatchVersion>
-
- <!-- <lib/> directives can be used to instruct Solr to load any Jars
- identified and use them to resolve any "plugins" specified in
- your solrconfig.xml or schema.xml (ie: Analyzers, Request
- Handlers, etc...).
-
- All directories and paths are resolved relative to the
- instanceDir.
-
- Please note that <lib/> directives are processed in the order
- that they appear in your solrconfig.xml file, and are "stacked"
- on top of each other when building a ClassLoader - so if you have
- plugin jars with dependencies on other jars, the "lower level"
- dependency jars should be loaded first.
-
- If a "./lib" directory exists in your instanceDir, all files
- found in it are included as if you had used the following
- syntax...
-
- <lib dir="./lib" />
- -->
-
- <!-- A 'dir' option by itself adds any files found in the directory
- to the classpath, this is useful for including all jars in a
- directory.
-
- When a 'regex' is specified in addition to a 'dir', only the
- files in that directory which completely match the regex
- (anchored on both ends) will be included.
-
- If a 'dir' option (with or without a regex) is used and nothing
- is found that matches, a warning will be logged.
-
- The examples below can be used to load some solr-contribs along
- with their external dependencies.
- -->
- <lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />
-
- <lib dir="${solr.install.dir:../../../..}/contrib/clustering/lib/" regex=".*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-clustering-\d.*\.jar" />
-
- <lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />
-
- <lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-ltr-\d.*\.jar" />
-
- <!-- an exact 'path' can be used instead of a 'dir' to specify a
- specific jar file. This will cause a serious error to be logged
- if it can't be loaded.
- -->
- <!--
- <lib path="../a-jar-that-does-not-exist.jar" />
- -->
-
- <!-- Data Directory
-
- Used to specify an alternate directory to hold all index data
- other than the default ./data under the Solr home. If
- replication is in use, this should match the replication
- configuration.
- -->
- <dataDir>${solr.data.dir:}</dataDir>
-
-
- <!-- The DirectoryFactory to use for indexes.
-
- solr.StandardDirectoryFactory is filesystem
- based and tries to pick the best implementation for the current
- JVM and platform. solr.NRTCachingDirectoryFactory, the default,
- wraps solr.StandardDirectoryFactory and caches small files in memory
- for better NRT performance.
-
- One can force a particular implementation via solr.MMapDirectoryFactory,
- solr.NIOFSDirectoryFactory, or solr.SimpleFSDirectoryFactory.
-
- solr.RAMDirectoryFactory is memory based and not persistent.
- -->
- <directoryFactory name="DirectoryFactory"
- class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
-
- <schemaFactory class="ClassicIndexSchemaFactory"/>
- <!-- The CodecFactory for defining the format of the inverted index.
- The default implementation is SchemaCodecFactory, which is the official Lucene
- index format, but hooks into the schema to provide per-field customization of
- the postings lists and per-document values in the fieldType element
- (postingsFormat/docValuesFormat). Note that most of the alternative implementations
- are experimental, so if you choose to customize the index format, it's a good
- idea to convert back to the official format e.g. via IndexWriter.addIndexes(IndexReader)
- before upgrading to a newer version to avoid unnecessary reindexing.
- A "compressionMode" string element can be added to <codecFactory> to choose
- between the existing compression modes in the default codec: "BEST_SPEED" (default)
- or "BEST_COMPRESSION".
- -->
- <codecFactory class="solr.SchemaCodecFactory"/>
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Index Config - These settings control low-level behavior of indexing
- Most example settings here show the default value, but are commented
- out, to more easily see where customizations have been made.
-
- Note: This replaces <indexDefaults> and <mainIndex> from older versions
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <indexConfig>
- <!-- maxFieldLength was removed in 4.0. To get similar behavior, include a
- LimitTokenCountFilterFactory in your fieldType definition. E.g.
- <filter class="solr.LimitTokenCountFilterFactory" maxTokenCount="10000"/>
- -->
- <!-- Maximum time to wait for a write lock (ms) for an IndexWriter. Default: 1000 -->
- <!-- <writeLockTimeout>1000</writeLockTimeout> -->
-
- <!-- Expert: Enabling compound file will use less files for the index,
- using fewer file descriptors on the expense of performance decrease.
- Default in Lucene is "true". Default in Solr is "false" (since 3.6) -->
- <!-- <useCompoundFile>false</useCompoundFile> -->
-
- <!-- ramBufferSizeMB sets the amount of RAM that may be used by Lucene
- indexing for buffering added documents and deletions before they are
- flushed to the Directory.
- maxBufferedDocs sets a limit on the number of documents buffered
- before flushing.
- If both ramBufferSizeMB and maxBufferedDocs is set, then
- Lucene will flush based on whichever limit is hit first. -->
- <!-- <ramBufferSizeMB>100</ramBufferSizeMB> -->
- <!-- <maxBufferedDocs>1000</maxBufferedDocs> -->
-
- <!-- Expert: Merge Policy
- The Merge Policy in Lucene controls how merging of segments is done.
- The default since Solr/Lucene 3.3 is TieredMergePolicy.
- The default since Lucene 2.3 was the LogByteSizeMergePolicy,
- Even older versions of Lucene used LogDocMergePolicy.
- -->
- <!--
- <mergePolicyFactory class="org.apache.solr.index.TieredMergePolicyFactory">
- <int name="maxMergeAtOnce">10</int>
- <int name="segmentsPerTier">10</int>
- <double name="noCFSRatio">0.1</double>
- </mergePolicyFactory>
- -->
-
- <!-- Expert: Merge Scheduler
- The Merge Scheduler in Lucene controls how merges are
- performed. The ConcurrentMergeScheduler (Lucene 2.3 default)
- can perform merges in the background using separate threads.
- The SerialMergeScheduler (Lucene 2.2 default) does not.
- -->
- <!--
- <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
- -->
-
- <!-- LockFactory
-
- This option specifies which Lucene LockFactory implementation
- to use.
-
- single = SingleInstanceLockFactory - suggested for a
- read-only index or when there is no possibility of
- another process trying to modify the index.
- native = NativeFSLockFactory - uses OS native file locking.
- Do not use when multiple solr webapps in the same
- JVM are attempting to share a single index.
- simple = SimpleFSLockFactory - uses a plain file for locking
-
- Defaults: 'native' is default for Solr3.6 and later, otherwise
- 'simple' is the default
-
- More details on the nuances of each LockFactory...
- http://wiki.apache.org/lucene-java/AvailableLockFactories
- -->
- <lockType>${solr.lock.type:native}</lockType>
-
- <!-- Commit Deletion Policy
- Custom deletion policies can be specified here. The class must
- implement org.apache.lucene.index.IndexDeletionPolicy.
-
- The default Solr IndexDeletionPolicy implementation supports
- deleting index commit points on number of commits, age of
- commit point and optimized status.
-
- The latest commit point should always be preserved regardless
- of the criteria.
- -->
- <!--
- <deletionPolicy class="solr.SolrDeletionPolicy">
- -->
- <!-- The number of commit points to be kept -->
- <!-- <str name="maxCommitsToKeep">1</str> -->
- <!-- The number of optimized commit points to be kept -->
- <!-- <str name="maxOptimizedCommitsToKeep">0</str> -->
- <!--
- Delete all commit points once they have reached the given age.
- Supports DateMathParser syntax e.g.
- -->
- <!--
- <str name="maxCommitAge">30MINUTES</str>
- <str name="maxCommitAge">1DAY</str>
- -->
- <!--
- </deletionPolicy>
- -->
-
- <!-- Lucene Infostream
-
- To aid in advanced debugging, Lucene provides an "InfoStream"
- of detailed information when indexing.
-
- Setting The value to true will instruct the underlying Lucene
- IndexWriter to write its debugging info the specified file
- -->
- <!-- <infoStream file="INFOSTREAM.txt">false</infoStream> -->
- </indexConfig>
-
-
- <!-- JMX
-
- This example enables JMX if and only if an existing MBeanServer
- is found, use this if you want to configure JMX through JVM
- parameters. Remove this to disable exposing Solr configuration
- and statistics to JMX.
-
- For more details see http://wiki.apache.org/solr/SolrJmx
- -->
- <jmx />
- <!-- If you want to connect to a particular server, specify the
- agentId
- -->
- <!-- <jmx agentId="myAgent" /> -->
- <!-- If you want to start a new MBeanServer, specify the serviceUrl -->
- <!-- <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
- -->
-
- <!-- The default high-performance update handler -->
- <updateHandler class="solr.DirectUpdateHandler2">
-
- <!-- Enables a transaction log, used for real-time get, durability, and
- and solr cloud replica recovery. The log can grow as big as
- uncommitted changes to the index, so use of a hard autoCommit
- is recommended (see below).
- "dir" - the target directory for transaction logs, defaults to the
- solr data directory.
- "numVersionBuckets" - sets the number of buckets used to keep
- track of max version values when checking for re-ordered
- updates; increase this value to reduce the cost of
- synchronizing access to version buckets during high-volume
- indexing, this requires 8 bytes (long) * numVersionBuckets
- of heap space per Solr core.
- -->
- <updateLog>
- <str name="dir">${solr.ulog.dir:}</str>
- <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int>
- </updateLog>
-
- <!-- AutoCommit
-
- Perform a hard commit automatically under certain conditions.
- Instead of enabling autoCommit, consider using "commitWithin"
- when adding documents.
-
- http://wiki.apache.org/solr/UpdateXmlMessages
-
- maxDocs - Maximum number of documents to add since the last
- commit before automatically triggering a new commit.
-
- maxTime - Maximum amount of time in ms that is allowed to pass
- since a document was added before automatically
- triggering a new commit.
- openSearcher - if false, the commit causes recent index changes
- to be flushed to stable storage, but does not cause a new
- searcher to be opened to make those changes visible.
-
- If the updateLog is enabled, then it's highly recommended to
- have some sort of hard autoCommit to limit the log size.
- -->
- <autoCommit>
- <maxTime>600000</maxTime>
- <openSearcher>false</openSearcher>
- </autoCommit>
-
- <!-- softAutoCommit is like autoCommit except it causes a
- 'soft' commit which only ensures that changes are visible
- but does not ensure that data is synced to disk. This is
- faster and more near-realtime friendly than a hard commit.
- -->
-
- <autoSoftCommit>
- <maxTime>1000</maxTime>
- </autoSoftCommit>
-
- <!-- Update Related Event Listeners
-
- Various IndexWriter related events can trigger Listeners to
- take actions.
-
- postCommit - fired after every commit or optimize command
- postOptimize - fired after every optimize command
- -->
-
- </updateHandler>
-
- <!-- IndexReaderFactory
-
- Use the following format to specify a custom IndexReaderFactory,
- which allows for alternate IndexReader implementations.
-
- ** Experimental Feature **
-
- Please note - Using a custom IndexReaderFactory may prevent
- certain other features from working. The API to
- IndexReaderFactory may change without warning or may even be
- removed from future releases if the problems cannot be
- resolved.
-
-
- ** Features that may not work with custom IndexReaderFactory **
-
- The ReplicationHandler assumes a disk-resident index. Using a
- custom IndexReader implementation may cause incompatibility
- with ReplicationHandler and may cause replication to not work
- correctly. See SOLR-1366 for details.
-
- -->
- <!--
- <indexReaderFactory name="IndexReaderFactory" class="package.class">
- <str name="someArg">Some Value</str>
- </indexReaderFactory >
- -->
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Query section - these settings control query time things like caches
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <query>
-
- <!-- Maximum number of clauses in each BooleanQuery, an exception
- is thrown if exceeded. It is safe to increase or remove this setting,
- since it is purely an arbitrary limit to try and catch user errors where
- large boolean queries may not be the best implementation choice.
- -->
- <maxBooleanClauses>${solr.max.booleanClauses:1024}</maxBooleanClauses>
-
- <!-- Solr Internal Query Caches
-
- There are two implementations of cache available for Solr,
- LRUCache, based on a synchronized LinkedHashMap, and
- FastLRUCache, based on a ConcurrentHashMap.
-
- FastLRUCache has faster gets and slower puts in single
- threaded operation and thus is generally faster than LRUCache
- when the hit ratio of the cache is high (> 75%), and may be
- faster under other scenarios on multi-cpu systems.
- -->
-
- <!-- Filter Cache
-
- Cache used by SolrIndexSearcher for filters (DocSets),
- unordered sets of *all* documents that match a query. When a
- new searcher is opened, its caches may be prepopulated or
- "autowarmed" using data from caches in the old searcher.
- autowarmCount is the number of items to prepopulate. For
- LRUCache, the autowarmed items will be the most recently
- accessed items.
-
- Parameters:
- class - the SolrCache implementation LRUCache or
- (LRUCache or FastLRUCache)
- size - the maximum number of entries in the cache
- initialSize - the initial capacity (number of entries) of
- the cache. (see java.util.HashMap)
- autowarmCount - the number of entries to prepopulate from
- and old cache.
- maxRamMB - the maximum amount of RAM (in MB) that this cache is allowed
- to occupy. Note that when this option is specified, the size
- and initialSize parameters are ignored.
- -->
- <filterCache class="solr.FastLRUCache"
- size="512"
- initialSize="512"
- autowarmCount="0"/>
-
- <!-- Query Result Cache
-
- Caches results of searches - ordered lists of document ids
- (DocList) based on a query, a sort, and the range of documents requested.
- Additional supported parameter by LRUCache:
- maxRamMB - the maximum amount of RAM (in MB) that this cache is allowed
- to occupy
- -->
- <queryResultCache class="solr.LRUCache"
- size="512"
- initialSize="512"
- autowarmCount="0"/>
-
- <!-- Document Cache
-
- Caches Lucene Document objects (the stored fields for each
- document). Since Lucene internal document ids are transient,
- this cache will not be autowarmed.
- -->
- <documentCache class="solr.LRUCache"
- size="512"
- initialSize="512"
- autowarmCount="0"/>
-
- <!-- custom cache currently used by block join -->
- <cache name="perSegFilter"
- class="solr.search.LRUCache"
- size="10"
- initialSize="0"
- autowarmCount="10"
- regenerator="solr.NoOpRegenerator" />
-
- <!-- Field Value Cache
-
- Cache used to hold field values that are quickly accessible
- by document id. The fieldValueCache is created by default
- even if not configured here.
- -->
- <!--
- <fieldValueCache class="solr.FastLRUCache"
- size="512"
- autowarmCount="128"
- showItems="32" />
- -->
-
- <!-- Custom Cache
-
- Example of a generic cache. These caches may be accessed by
- name through SolrIndexSearcher.getCache(),cacheLookup(), and
- cacheInsert(). The purpose is to enable easy caching of
- user/application level data. The regenerator argument should
- be specified as an implementation of solr.CacheRegenerator
- if autowarming is desired.
- -->
- <!--
- <cache name="myUserCache"
- class="solr.LRUCache"
- size="4096"
- initialSize="1024"
- autowarmCount="1024"
- regenerator="com.mycompany.MyRegenerator"
- />
- -->
-
-
- <!-- Lazy Field Loading
-
- If true, stored fields that are not requested will be loaded
- lazily. This can result in a significant speed improvement
- if the usual case is to not load all stored fields,
- especially if the skipped fields are large compressed text
- fields.
- -->
- <enableLazyFieldLoading>true</enableLazyFieldLoading>
-
- <!-- Use Filter For Sorted Query
-
- A possible optimization that attempts to use a filter to
- satisfy a search. If the requested sort does not include
- score, then the filterCache will be checked for a filter
- matching the query. If found, the filter will be used as the
- source of document ids, and then the sort will be applied to
- that.
-
- For most situations, this will not be useful unless you
- frequently get the same search repeatedly with different sort
- options, and none of them ever use "score"
- -->
- <!--
- <useFilterForSortedQuery>true</useFilterForSortedQuery>
- -->
-
- <!-- Result Window Size
-
- An optimization for use with the queryResultCache. When a search
- is requested, a superset of the requested number of document ids
- are collected. For example, if a search for a particular query
- requests matching documents 10 through 19, and queryWindowSize is 50,
- then documents 0 through 49 will be collected and cached. Any further
- requests in that range can be satisfied via the cache.
- -->
- <queryResultWindowSize>20</queryResultWindowSize>
-
- <!-- Maximum number of documents to cache for any entry in the
- queryResultCache.
- -->
- <queryResultMaxDocsCached>200</queryResultMaxDocsCached>
-
- <!-- Query Related Event Listeners
-
- Various IndexSearcher related events can trigger Listeners to
- take actions.
-
- newSearcher - fired whenever a new searcher is being prepared
- and there is a current searcher handling requests (aka
- registered). It can be used to prime certain caches to
- prevent long request times for certain requests.
-
- firstSearcher - fired whenever a new searcher is being
- prepared but there is no current registered searcher to handle
- requests or to gain autowarming data from.
-
-
- -->
- <!-- QuerySenderListener takes an array of NamedList and executes a
- local query request for each NamedList in sequence.
- -->
- <listener event="newSearcher" class="solr.QuerySenderListener">
- <arr name="queries">
- <!--
- <lst><str name="q">solr</str><str name="sort">price asc</str></lst>
- <lst><str name="q">rocks</str><str name="sort">weight asc</str></lst>
- -->
- </arr>
- </listener>
- <listener event="firstSearcher" class="solr.QuerySenderListener">
- <arr name="queries">
- <!--
- <lst>
- <str name="q">static firstSearcher warming in solrconfig.xml</str>
- </lst>
- -->
- </arr>
- </listener>
-
- <!-- Use Cold Searcher
-
- If a search request comes in and there is no current
- registered searcher, then immediately register the still
- warming searcher and use it. If "false" then all requests
- will block until the first searcher is done warming.
- -->
- <useColdSearcher>false</useColdSearcher>
-
- </query>
-
-
- <!-- Request Dispatcher
-
- This section contains instructions for how the SolrDispatchFilter
- should behave when processing requests for this SolrCore.
-
- -->
- <requestDispatcher>
- <!-- Request Parsing
-
- These settings indicate how Solr Requests may be parsed, and
- what restrictions may be placed on the ContentStreams from
- those requests
-
- enableRemoteStreaming - enables use of the stream.file
- and stream.url parameters for specifying remote streams.
-
- multipartUploadLimitInKB - specifies the max size (in KiB) of
- Multipart File Uploads that Solr will allow in a Request.
-
- formdataUploadLimitInKB - specifies the max size (in KiB) of
- form data (application/x-www-form-urlencoded) sent via
- POST. You can use POST to pass request parameters not
- fitting into the URL.
-
- addHttpRequestToContext - if set to true, it will instruct
- the requestParsers to include the original HttpServletRequest
- object in the context map of the SolrQueryRequest under the
- key "httpRequest". It will not be used by any of the existing
- Solr components, but may be useful when developing custom
- plugins.
-
- *** WARNING ***
- Before enabling remote streaming, you should make sure your
- system has authentication enabled.
-
- <requestParsers enableRemoteStreaming="false"
- multipartUploadLimitInKB="-1"
- formdataUploadLimitInKB="-1"
- addHttpRequestToContext="false"/>
- -->
-
- <!-- HTTP Caching
-
- Set HTTP caching related parameters (for proxy caches and clients).
-
- The options below instruct Solr not to output any HTTP Caching
- related headers
- -->
- <httpCaching never304="true" />
- <!-- If you include a <cacheControl> directive, it will be used to
- generate a Cache-Control header (as well as an Expires header
- if the value contains "max-age=")
-
- By default, no Cache-Control header is generated.
-
- You can use the <cacheControl> option even if you have set
- never304="true"
- -->
- <!--
- <httpCaching never304="true" >
- <cacheControl>max-age=30, public</cacheControl>
- </httpCaching>
- -->
- <!-- To enable Solr to respond with automatically generated HTTP
- Caching headers, and to response to Cache Validation requests
- correctly, set the value of never304="false"
-
- This will cause Solr to generate Last-Modified and ETag
- headers based on the properties of the Index.
-
- The following options can also be specified to affect the
- values of these headers...
-
- lastModFrom - the default value is "openTime" which means the
- Last-Modified value (and validation against If-Modified-Since
- requests) will all be relative to when the current Searcher
- was opened. You can change it to lastModFrom="dirLastMod" if
- you want the value to exactly correspond to when the physical
- index was last modified.
-
- etagSeed="..." is an option you can change to force the ETag
- header (and validation against If-None-Match requests) to be
- different even if the index has not changed (ie: when making
- significant changes to your config file)
-
- (lastModifiedFrom and etagSeed are both ignored if you use
- the never304="true" option)
- -->
- <!--
- <httpCaching lastModifiedFrom="openTime"
- etagSeed="Solr">
- <cacheControl>max-age=30, public</cacheControl>
- </httpCaching>
- -->
- </requestDispatcher>
-
- <!-- Request Handlers
-
- http://wiki.apache.org/solr/SolrRequestHandler
-
- Incoming queries will be dispatched to a specific handler by name
- based on the path specified in the request.
-
- If a Request Handler is declared with startup="lazy", then it will
- not be initialized until the first request that uses it.
-
- -->
- <!-- SearchHandler
-
- http://wiki.apache.org/solr/SearchHandler
-
- For processing Search Queries, the primary Request Handler
- provided with Solr is "SearchHandler" It delegates to a sequent
- of SearchComponents (see below) and supports distributed
- queries across multiple shards
- -->
- <requestHandler name="/select" class="solr.SearchHandler">
- <!-- default values for query parameters can be specified, these
- will be overridden by parameters in the request
- -->
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- <int name="rows">8</int>
- <str name="df">text</str>
- <!-- Default search field
- <str name="df">text</str>
- -->
- <!-- Change from JSON to XML format (the default prior to Solr 7.0)
- <str name="wt">xml</str>
- -->
- </lst>
- <!-- In addition to defaults, "appends" params can be specified
- to identify values which should be appended to the list of
- multi-val params from the query (or the existing "defaults").
- -->
- <!-- In this example, the param "fq=instock:true" would be appended to
- any query time fq params the user may specify, as a mechanism for
- partitioning the index, independent of any user selected filtering
- that may also be desired (perhaps as a result of faceted searching).
-
- NOTE: there is *absolutely* nothing a client can do to prevent these
- "appends" values from being used, so don't use this mechanism
- unless you are sure you always want it.
- -->
- <!--
- <lst name="appends">
- <str name="fq">inStock:true</str>
- </lst>
- -->
- <!-- "invariants" are a way of letting the Solr maintainer lock down
- the options available to Solr clients. Any params values
- specified here are used regardless of what values may be specified
- in either the query, the "defaults", or the "appends" params.
-
- In this example, the facet.field and facet.query params would
- be fixed, limiting the facets clients can use. Faceting is
- not turned on by default - but if the client does specify
- facet=true in the request, these are the only facets they
- will be able to see counts for; regardless of what other
- facet.field or facet.query params they may specify.
-
- NOTE: there is *absolutely* nothing a client can do to prevent these
- "invariants" values from being used, so don't use this mechanism
- unless you are sure you always want it.
- -->
- <!--
- <lst name="invariants">
- <str name="facet.field">cat</str>
- <str name="facet.field">manu_exact</str>
- <str name="facet.query">price:[* TO 500]</str>
- <str name="facet.query">price:[500 TO *]</str>
- </lst>
- -->
- <!-- If the default list of SearchComponents is not desired, that
- list can either be overridden completely, or components can be
- prepended or appended to the default list. (see below)
- -->
- <!--
- <arr name="components">
- <str>nameOfCustomComponent1</str>
- <str>nameOfCustomComponent2</str>
- </arr>
- -->
- </requestHandler>
-
- <!-- A request handler that returns indented JSON by default -->
- <requestHandler name="/query" class="solr.SearchHandler">
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- <str name="wt">json</str>
- <str name="indent">true</str>
- </lst>
- </requestHandler>
-
-
- <!-- A Robust Example
-
- This example SearchHandler declaration shows off usage of the
- SearchHandler with many defaults declared
-
- Note that multiple instances of the same Request Handler
- (SearchHandler) can be registered multiple times with different
- names (and different init parameters)
- -->
- <requestHandler name="/browse" class="solr.SearchHandler" useParams="query,facets,velocity,browse">
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- </lst>
- </requestHandler>
-
- <initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell,/browse">
- <lst name="defaults">
- <str name="df">_text_</str>
- </lst>
- </initParams>
-
- <!-- Solr Cell Update Request Handler
-
- http://wiki.apache.org/solr/ExtractingRequestHandler
-
- -->
- <requestHandler name="/update/extract"
- startup="lazy"
- class="solr.extraction.ExtractingRequestHandler" >
- <lst name="defaults">
- <str name="lowernames">true</str>
- <str name="fmap.content">_text_</str>
- </lst>
- </requestHandler>
-
- <!-- Search Components
-
- Search components are registered to SolrCore and used by
- instances of SearchHandler (which can access them by name)
-
- By default, the following components are available:
-
- <searchComponent name="query" class="solr.QueryComponent" />
- <searchComponent name="facet" class="solr.FacetComponent" />
- <searchComponent name="mlt" class="solr.MoreLikeThisComponent" />
- <searchComponent name="highlight" class="solr.HighlightComponent" />
- <searchComponent name="stats" class="solr.StatsComponent" />
- <searchComponent name="debug" class="solr.DebugComponent" />
-
- Default configuration in a requestHandler would look like:
-
- <arr name="components">
- <str>query</str>
- <str>facet</str>
- <str>mlt</str>
- <str>highlight</str>
- <str>stats</str>
- <str>debug</str>
- </arr>
-
- If you register a searchComponent to one of the standard names,
- that will be used instead of the default.
-
- To insert components before or after the 'standard' components, use:
-
- <arr name="first-components">
- <str>myFirstComponentName</str>
- </arr>
-
- <arr name="last-components">
- <str>myLastComponentName</str>
- </arr>
-
- NOTE: The component registered with the name "debug" will
- always be executed after the "last-components"
-
- -->
-
- <!-- Spell Check
-
- The spell check component can return a list of alternative spelling
- suggestions.
-
- http://wiki.apache.org/solr/SpellCheckComponent
- -->
- <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
-
- <str name="queryAnalyzerFieldType">text_general</str>
-
- <!-- Multiple "Spell Checkers" can be declared and used by this
- component
- -->
-
- <!-- a spellchecker built from a field of the main index -->
- <lst name="spellchecker">
- <str name="name">default</str>
- <str name="field">_text_</str>
- <str name="classname">solr.DirectSolrSpellChecker</str>
- <!-- the spellcheck distance measure used, the default is the internal levenshtein -->
- <str name="distanceMeasure">internal</str>
- <!-- minimum accuracy needed to be considered a valid spellcheck suggestion -->
- <float name="accuracy">0.5</float>
- <!-- the maximum #edits we consider when enumerating terms: can be 1 or 2 -->
- <int name="maxEdits">2</int>
- <!-- the minimum shared prefix when enumerating terms -->
- <int name="minPrefix">1</int>
- <!-- maximum number of inspections per result. -->
- <int name="maxInspections">5</int>
- <!-- minimum length of a query term to be considered for correction -->
- <int name="minQueryLength">4</int>
- <!-- maximum threshold of documents a query term can appear to be considered for correction -->
- <float name="maxQueryFrequency">0.01</float>
- <!-- uncomment this to require suggestions to occur in 1% of the documents
- <float name="thresholdTokenFrequency">.01</float>
- -->
- </lst>
-
- <!-- a spellchecker that can break or combine words. See "/spell" handler below for usage -->
- <!--
- <lst name="spellchecker">
- <str name="name">wordbreak</str>
- <str name="classname">solr.WordBreakSolrSpellChecker</str>
- <str name="field">name</str>
- <str name="combineWords">true</str>
- <str name="breakWords">true</str>
- <int name="maxChanges">10</int>
- </lst>
- -->
- </searchComponent>
-
- <!-- A request handler for demonstrating the spellcheck component.
-
- NOTE: This is purely as an example. The whole purpose of the
- SpellCheckComponent is to hook it into the request handler that
- handles your normal user queries so that a separate request is
- not needed to get suggestions.
-
- IN OTHER WORDS, THERE IS REALLY GOOD CHANCE THE SETUP BELOW IS
- NOT WHAT YOU WANT FOR YOUR PRODUCTION SYSTEM!
-
- See http://wiki.apache.org/solr/SpellCheckComponent for details
- on the request parameters.
- -->
- <requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <!-- Solr will use suggestions from both the 'default' spellchecker
- and from the 'wordbreak' spellchecker and combine them.
- collations (re-written queries) can include a combination of
- corrections from both spellcheckers -->
- <str name="spellcheck.dictionary">default</str>
- <str name="spellcheck">on</str>
- <str name="spellcheck.extendedResults">true</str>
- <str name="spellcheck.count">10</str>
- <str name="spellcheck.alternativeTermCount">5</str>
- <str name="spellcheck.maxResultsForSuggest">5</str>
- <str name="spellcheck.collate">true</str>
- <str name="spellcheck.collateExtendedResults">true</str>
- <str name="spellcheck.maxCollationTries">10</str>
- <str name="spellcheck.maxCollations">5</str>
- </lst>
- <arr name="last-components">
- <str>spellcheck</str>
- </arr>
- </requestHandler>
-
- <!-- Term Vector Component
-
- http://wiki.apache.org/solr/TermVectorComponent
- -->
- <searchComponent name="tvComponent" class="solr.TermVectorComponent"/>
-
- <!-- A request handler for demonstrating the term vector component
-
- This is purely as an example.
-
- In reality you will likely want to add the component to your
- already specified request handlers.
- -->
- <requestHandler name="/tvrh" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <bool name="tv">true</bool>
- </lst>
- <arr name="last-components">
- <str>tvComponent</str>
- </arr>
- </requestHandler>
-
- <!-- Clustering Component. (Omitted here. See the default Solr example for a typical configuration.) -->
-
- <!-- Terms Component
-
- http://wiki.apache.org/solr/TermsComponent
-
- A component to return terms and document frequency of those
- terms
- -->
- <searchComponent name="terms" class="solr.TermsComponent"/>
-
- <!-- A request handler for demonstrating the terms component -->
- <requestHandler name="/terms" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <bool name="terms">true</bool>
- <bool name="distrib">false</bool>
- </lst>
- <arr name="components">
- <str>terms</str>
- </arr>
- </requestHandler>
-
-
- <!-- Query Elevation Component
-
- http://wiki.apache.org/solr/QueryElevationComponent
-
- a search component that enables you to configure the top
- results for a given query regardless of the normal lucene
- scoring.
- -->
- <searchComponent name="elevator" class="solr.QueryElevationComponent" >
- <!-- pick a fieldType to analyze queries -->
- <str name="queryFieldType">string</str>
- </searchComponent>
-
- <!-- A request handler for demonstrating the elevator component -->
- <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- </lst>
- <arr name="last-components">
- <str>elevator</str>
- </arr>
- </requestHandler>
-
- <!-- Highlighting Component
-
- http://wiki.apache.org/solr/HighlightingParameters
- -->
- <searchComponent class="solr.HighlightComponent" name="highlight">
- <highlighting>
- <!-- Configure the standard fragmenter -->
- <!-- This could most likely be commented out in the "default" case -->
- <fragmenter name="gap"
- default="true"
- class="solr.highlight.GapFragmenter">
- <lst name="defaults">
- <int name="hl.fragsize">100</int>
- </lst>
- </fragmenter>
-
- <!-- A regular-expression-based fragmenter
- (for sentence extraction)
- -->
- <fragmenter name="regex"
- class="solr.highlight.RegexFragmenter">
- <lst name="defaults">
- <!-- slightly smaller fragsizes work better because of slop -->
- <int name="hl.fragsize">70</int>
- <!-- allow 50% slop on fragment sizes -->
- <float name="hl.regex.slop">0.5</float>
- <!-- a basic sentence pattern -->
- <str name="hl.regex.pattern">[-\w ,/\n\&quot;&apos;]{20,200}</str>
- </lst>
- </fragmenter>
-
- <!-- Configure the standard formatter -->
- <formatter name="html"
- default="true"
- class="solr.highlight.HtmlFormatter">
- <lst name="defaults">
- <str name="hl.simple.pre"><![CDATA[<em>]]></str>
- <str name="hl.simple.post"><![CDATA[</em>]]></str>
- </lst>
- </formatter>
-
- <!-- Configure the standard encoder -->
- <encoder name="html"
- class="solr.highlight.HtmlEncoder" />
-
- <!-- Configure the standard fragListBuilder -->
- <fragListBuilder name="simple"
- class="solr.highlight.SimpleFragListBuilder"/>
-
- <!-- Configure the single fragListBuilder -->
- <fragListBuilder name="single"
- class="solr.highlight.SingleFragListBuilder"/>
-
- <!-- Configure the weighted fragListBuilder -->
- <fragListBuilder name="weighted"
- default="true"
- class="solr.highlight.WeightedFragListBuilder"/>
-
- <!-- default tag FragmentsBuilder -->
- <fragmentsBuilder name="default"
- default="true"
- class="solr.highlight.ScoreOrderFragmentsBuilder">
- <!--
- <lst name="defaults">
- <str name="hl.multiValuedSeparatorChar">/</str>
- </lst>
- -->
- </fragmentsBuilder>
-
- <!-- multi-colored tag FragmentsBuilder -->
- <fragmentsBuilder name="colored"
- class="solr.highlight.ScoreOrderFragmentsBuilder">
- <lst name="defaults">
- <str name="hl.tag.pre"><![CDATA[
- <b style="background:yellow">,<b style="background:lawgreen">,
- <b style="background:aquamarine">,<b style="background:magenta">,
- <b style="background:palegreen">,<b style="background:coral">,
- <b style="background:wheat">,<b style="background:khaki">,
- <b style="background:lime">,<b style="background:deepskyblue">]]></str>
- <str name="hl.tag.post"><![CDATA[</b>]]></str>
- </lst>
- </fragmentsBuilder>
-
- <boundaryScanner name="default"
- default="true"
- class="solr.highlight.SimpleBoundaryScanner">
- <lst name="defaults">
- <str name="hl.bs.maxScan">10</str>
- <str name="hl.bs.chars">.,!? &#9;&#10;&#13;</str>
- </lst>
- </boundaryScanner>
-
- <boundaryScanner name="breakIterator"
- class="solr.highlight.BreakIteratorBoundaryScanner">
- <lst name="defaults">
- <!-- type should be one of CHARACTER, WORD(default), LINE and SENTENCE -->
- <str name="hl.bs.type">WORD</str>
- <!-- language and country are used when constructing Locale object. -->
- <!-- And the Locale object will be used when getting instance of BreakIterator -->
- <str name="hl.bs.language">en</str>
- <str name="hl.bs.country">US</str>
- </lst>
- </boundaryScanner>
- </highlighting>
- </searchComponent>
-
- <!-- Update Processors
-
- Chains of Update Processor Factories for dealing with Update
- Requests can be declared, and then used by name in Update
- Request Processors
-
- http://wiki.apache.org/solr/UpdateRequestProcessor
-
- -->
-
- <!-- Add unknown fields to the schema
-
- Field type guessing update processors that will
- attempt to parse string-typed field values as Booleans, Longs,
- Doubles, or Dates, and then add schema fields with the guessed
- field types. Text content will be indexed as "text_general" as
- well as a copy to a plain string version in *_str.
-
- These require that the schema is both managed and mutable, by
- declaring schemaFactory as ManagedIndexSchemaFactory, with
- mutable specified as true.
-
- See http://wiki.apache.org/solr/GuessingFieldTypes
- -->
- <updateProcessor class="solr.UUIDUpdateProcessorFactory" name="uuid"/>
- <updateProcessor class="solr.RemoveBlankFieldUpdateProcessorFactory" name="remove-blank"/>
- <updateProcessor class="solr.FieldNameMutatingUpdateProcessorFactory" name="field-name-mutating">
- <str name="pattern">[^\w-\.]</str>
- <str name="replacement">_</str>
- </updateProcessor>
- <updateProcessor class="solr.ParseBooleanFieldUpdateProcessorFactory" name="parse-boolean"/>
- <updateProcessor class="solr.ParseLongFieldUpdateProcessorFactory" name="parse-long"/>
- <updateProcessor class="solr.ParseDoubleFieldUpdateProcessorFactory" name="parse-double"/>
- <updateProcessor class="solr.ParseDateFieldUpdateProcessorFactory" name="parse-date">
- <arr name="format">
- <str>yyyy-MM-dd['T'[HH:mm[:ss[.SSS]][z</str>
- <str>yyyy-MM-dd['T'[HH:mm[:ss[,SSS]][z</str>
- <str>yyyy-MM-dd HH:mm[:ss[.SSS]][z</str>
- <str>yyyy-MM-dd HH:mm[:ss[,SSS]][z</str>
- <str>[EEE, ]dd MMM yyyy HH:mm[:ss] z</str>
- <str>EEEE, dd-MMM-yy HH:mm:ss z</str>
- <str>EEE MMM ppd HH:mm:ss [z ]yyyy</str>
- </arr>
- </updateProcessor>
-
- <!-- The update.autoCreateFields property can be turned to false to disable schemaless mode -->
- <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:false}"
- processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date">
- <processor class="solr.LogUpdateProcessorFactory"/>
- <processor class="solr.DistributedUpdateProcessorFactory"/>
- <processor class="solr.RunUpdateProcessorFactory"/>
- </updateRequestProcessorChain>
-
- <!-- Deduplication
-
- An example dedup update processor that creates the "id" field
- on the fly based on the hash code of some other fields. This
- example has overwriteDupes set to false since we are using the
- id field as the signatureField and Solr will maintain
- uniqueness based on that anyway.
-
- -->
- <!--
- <updateRequestProcessorChain name="dedupe">
- <processor class="solr.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">true</bool>
- <str name="signatureField">id</str>
- <bool name="overwriteDupes">false</bool>
- <str name="fields">name,features,cat</str>
- <str name="signatureClass">solr.processor.Lookup3Signature</str>
- </processor>
- <processor class="solr.LogUpdateProcessorFactory" />
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- -->
-
- <!-- Language identification
-
- This example update chain identifies the language of the incoming
- documents using the langid contrib. The detected language is
- written to field language_s. No field name mapping is done.
- The fields used for detection are text, title, subject and description,
- making this example suitable for detecting languages form full-text
- rich documents injected via ExtractingRequestHandler.
- See more about langId at http://wiki.apache.org/solr/LanguageDetection
- -->
- <!--
- <updateRequestProcessorChain name="langid">
- <processor class="org.apache.solr.update.processor.TikaLanguageIdentifierUpdateProcessorFactory">
- <str name="langid.fl">text,title,subject,description</str>
- <str name="langid.langField">language_s</str>
- <str name="langid.fallback">en</str>
- </processor>
- <processor class="solr.LogUpdateProcessorFactory" />
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- -->
-
- <!-- Script update processor
-
- This example hooks in an update processor implemented using JavaScript.
-
- See more about the script update processor at http://wiki.apache.org/solr/ScriptUpdateProcessor
- -->
- <!--
- <updateRequestProcessorChain name="script">
- <processor class="solr.StatelessScriptUpdateProcessorFactory">
- <str name="script">update-script.js</str>
- <lst name="params">
- <str name="config_param">example config parameter</str>
- </lst>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- -->
-
- <!-- Response Writers
-
- http://wiki.apache.org/solr/QueryResponseWriter
-
- Request responses will be written using the writer specified by
- the 'wt' request parameter matching the name of a registered
- writer.
-
- The "default" writer is the default and will be used if 'wt' is
- not specified in the request.
- -->
- <!-- The following response writers are implicitly configured unless
- overridden...
- -->
- <!--
- <queryResponseWriter name="xml"
- default="true"
- class="solr.XMLResponseWriter" />
- <queryResponseWriter name="json" class="solr.JSONResponseWriter"/>
- <queryResponseWriter name="python" class="solr.PythonResponseWriter"/>
- <queryResponseWriter name="ruby" class="solr.RubyResponseWriter"/>
- <queryResponseWriter name="php" class="solr.PHPResponseWriter"/>
- <queryResponseWriter name="phps" class="solr.PHPSerializedResponseWriter"/>
- <queryResponseWriter name="csv" class="solr.CSVResponseWriter"/>
- <queryResponseWriter name="schema.xml" class="solr.SchemaXmlResponseWriter"/>
- -->
-
- <queryResponseWriter name="json" class="solr.JSONResponseWriter">
- <!-- For the purposes of the tutorial, JSON responses are written as
- plain text so that they are easy to read in *any* browser.
- If you expect a MIME type of "application/json" just remove this override.
- -->
- <str name="content-type">text/plain; charset=UTF-8</str>
- </queryResponseWriter>
-
- <!--
- Custom response writers can be declared as needed...
- -->
- <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" startup="lazy">
- <str name="template.base.dir">${velocity.template.base.dir:}</str>
- <str name="solr.resource.loader.enabled">${velocity.solr.resource.loader.enabled:true}</str>
- <str name="params.resource.loader.enabled">${velocity.params.resource.loader.enabled:false}</str>
- </queryResponseWriter>
-
- <!-- XSLT response writer transforms the XML output by any xslt file found
- in Solr's conf/xslt directory. Changes to xslt files are checked for
- every xsltCacheLifetimeSeconds.
- -->
- <queryResponseWriter name="xslt" class="solr.XSLTResponseWriter">
- <int name="xsltCacheLifetimeSeconds">5</int>
- </queryResponseWriter>
-
- <!-- Query Parsers
-
- https://lucene.apache.org/solr/guide/query-syntax-and-parsing.html
-
- Multiple QParserPlugins can be registered by name, and then
- used in either the "defType" param for the QueryComponent (used
- by SearchHandler) or in LocalParams
- -->
- <!-- example of registering a query parser -->
- <!--
- <queryParser name="myparser" class="com.mycompany.MyQParserPlugin"/>
- -->
-
- <!-- Function Parsers
-
- http://wiki.apache.org/solr/FunctionQuery
-
- Multiple ValueSourceParsers can be registered by name, and then
- used as function names when using the "func" QParser.
- -->
- <!-- example of registering a custom function parser -->
- <!--
- <valueSourceParser name="myfunc"
- class="com.mycompany.MyValueSourceParser" />
- -->
-
-
- <!-- Document Transformers
- http://wiki.apache.org/solr/DocTransformers
- -->
- <!--
- Could be something like:
- <transformer name="db" class="com.mycompany.LoadFromDatabaseTransformer" >
- <int name="connection">jdbc://....</int>
- </transformer>
-
- To add a constant value to all docs, use:
- <transformer name="mytrans2" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
- <int name="value">5</int>
- </transformer>
-
- If you want the user to still be able to change it with _value:something_ use this:
- <transformer name="mytrans3" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
- <double name="defaultValue">5</double>
- </transformer>
-
- If you are using the QueryElevationComponent, you may wish to mark documents that get boosted. The
- EditorialMarkerFactory will do exactly that:
- <transformer name="qecBooster" class="org.apache.solr.response.transform.EditorialMarkerFactory" />
- -->
-</config>
diff --git a/solr/conf/solrconfig.xml~ b/solr/conf/solrconfig.xml~
deleted file mode 100644
index 5854cf2d9..000000000
--- a/solr/conf/solrconfig.xml~
+++ /dev/null
@@ -1,1358 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!--
- For more details about configurations options that may appear in
- this file, see http://wiki.apache.org/solr/SolrConfigXml.
--->
-<config>
- <!-- In all configuration below, a prefix of "solr." for class names
- is an alias that causes solr to search appropriate packages,
- including org.apache.solr.(search|update|request|core|analysis)
-
- You may also specify a fully qualified Java classname if you
- have your own custom plugins.
- -->
-
- <!-- Controls what version of Lucene various components of Solr
- adhere to. Generally, you want to use the latest version to
- get all bug fixes and improvements. It is highly recommended
- that you fully re-index after changing this setting as it can
- affect both how text is indexed and queried.
- -->
- <luceneMatchVersion>8.0.0</luceneMatchVersion>
-
- <!-- <lib/> directives can be used to instruct Solr to load any Jars
- identified and use them to resolve any "plugins" specified in
- your solrconfig.xml or schema.xml (ie: Analyzers, Request
- Handlers, etc...).
-
- All directories and paths are resolved relative to the
- instanceDir.
-
- Please note that <lib/> directives are processed in the order
- that they appear in your solrconfig.xml file, and are "stacked"
- on top of each other when building a ClassLoader - so if you have
- plugin jars with dependencies on other jars, the "lower level"
- dependency jars should be loaded first.
-
- If a "./lib" directory exists in your instanceDir, all files
- found in it are included as if you had used the following
- syntax...
-
- <lib dir="./lib" />
- -->
-
- <!-- A 'dir' option by itself adds any files found in the directory
- to the classpath, this is useful for including all jars in a
- directory.
-
- When a 'regex' is specified in addition to a 'dir', only the
- files in that directory which completely match the regex
- (anchored on both ends) will be included.
-
- If a 'dir' option (with or without a regex) is used and nothing
- is found that matches, a warning will be logged.
-
- The examples below can be used to load some solr-contribs along
- with their external dependencies.
- -->
- <lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />
-
- <lib dir="${solr.install.dir:../../../..}/contrib/clustering/lib/" regex=".*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-clustering-\d.*\.jar" />
-
- <lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />
-
- <lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-ltr-\d.*\.jar" />
-
- <!-- an exact 'path' can be used instead of a 'dir' to specify a
- specific jar file. This will cause a serious error to be logged
- if it can't be loaded.
- -->
- <!--
- <lib path="../a-jar-that-does-not-exist.jar" />
- -->
-
- <!-- Data Directory
-
- Used to specify an alternate directory to hold all index data
- other than the default ./data under the Solr home. If
- replication is in use, this should match the replication
- configuration.
- -->
- <dataDir>${solr.data.dir:}</dataDir>
-
-
- <!-- The DirectoryFactory to use for indexes.
-
- solr.StandardDirectoryFactory is filesystem
- based and tries to pick the best implementation for the current
- JVM and platform. solr.NRTCachingDirectoryFactory, the default,
- wraps solr.StandardDirectoryFactory and caches small files in memory
- for better NRT performance.
-
- One can force a particular implementation via solr.MMapDirectoryFactory,
- solr.NIOFSDirectoryFactory, or solr.SimpleFSDirectoryFactory.
-
- solr.RAMDirectoryFactory is memory based and not persistent.
- -->
- <directoryFactory name="DirectoryFactory"
- class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
-
- <schemaFactory class="ClassicIndexSchemaFactory"/>
- <!-- The CodecFactory for defining the format of the inverted index.
- The default implementation is SchemaCodecFactory, which is the official Lucene
- index format, but hooks into the schema to provide per-field customization of
- the postings lists and per-document values in the fieldType element
- (postingsFormat/docValuesFormat). Note that most of the alternative implementations
- are experimental, so if you choose to customize the index format, it's a good
- idea to convert back to the official format e.g. via IndexWriter.addIndexes(IndexReader)
- before upgrading to a newer version to avoid unnecessary reindexing.
- A "compressionMode" string element can be added to <codecFactory> to choose
- between the existing compression modes in the default codec: "BEST_SPEED" (default)
- or "BEST_COMPRESSION".
- -->
- <codecFactory class="solr.SchemaCodecFactory"/>
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Index Config - These settings control low-level behavior of indexing
- Most example settings here show the default value, but are commented
- out, to more easily see where customizations have been made.
-
- Note: This replaces <indexDefaults> and <mainIndex> from older versions
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <indexConfig>
- <!-- maxFieldLength was removed in 4.0. To get similar behavior, include a
- LimitTokenCountFilterFactory in your fieldType definition. E.g.
- <filter class="solr.LimitTokenCountFilterFactory" maxTokenCount="10000"/>
- -->
- <!-- Maximum time to wait for a write lock (ms) for an IndexWriter. Default: 1000 -->
- <!-- <writeLockTimeout>1000</writeLockTimeout> -->
-
- <!-- Expert: Enabling compound file will use less files for the index,
- using fewer file descriptors on the expense of performance decrease.
- Default in Lucene is "true". Default in Solr is "false" (since 3.6) -->
- <!-- <useCompoundFile>false</useCompoundFile> -->
-
- <!-- ramBufferSizeMB sets the amount of RAM that may be used by Lucene
- indexing for buffering added documents and deletions before they are
- flushed to the Directory.
- maxBufferedDocs sets a limit on the number of documents buffered
- before flushing.
- If both ramBufferSizeMB and maxBufferedDocs is set, then
- Lucene will flush based on whichever limit is hit first. -->
- <!-- <ramBufferSizeMB>100</ramBufferSizeMB> -->
- <!-- <maxBufferedDocs>1000</maxBufferedDocs> -->
-
- <!-- Expert: Merge Policy
- The Merge Policy in Lucene controls how merging of segments is done.
- The default since Solr/Lucene 3.3 is TieredMergePolicy.
- The default since Lucene 2.3 was the LogByteSizeMergePolicy,
- Even older versions of Lucene used LogDocMergePolicy.
- -->
- <!--
- <mergePolicyFactory class="org.apache.solr.index.TieredMergePolicyFactory">
- <int name="maxMergeAtOnce">10</int>
- <int name="segmentsPerTier">10</int>
- <double name="noCFSRatio">0.1</double>
- </mergePolicyFactory>
- -->
-
- <!-- Expert: Merge Scheduler
- The Merge Scheduler in Lucene controls how merges are
- performed. The ConcurrentMergeScheduler (Lucene 2.3 default)
- can perform merges in the background using separate threads.
- The SerialMergeScheduler (Lucene 2.2 default) does not.
- -->
- <!--
- <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
- -->
-
- <!-- LockFactory
-
- This option specifies which Lucene LockFactory implementation
- to use.
-
- single = SingleInstanceLockFactory - suggested for a
- read-only index or when there is no possibility of
- another process trying to modify the index.
- native = NativeFSLockFactory - uses OS native file locking.
- Do not use when multiple solr webapps in the same
- JVM are attempting to share a single index.
- simple = SimpleFSLockFactory - uses a plain file for locking
-
- Defaults: 'native' is default for Solr3.6 and later, otherwise
- 'simple' is the default
-
- More details on the nuances of each LockFactory...
- http://wiki.apache.org/lucene-java/AvailableLockFactories
- -->
- <lockType>${solr.lock.type:native}</lockType>
-
- <!-- Commit Deletion Policy
- Custom deletion policies can be specified here. The class must
- implement org.apache.lucene.index.IndexDeletionPolicy.
-
- The default Solr IndexDeletionPolicy implementation supports
- deleting index commit points on number of commits, age of
- commit point and optimized status.
-
- The latest commit point should always be preserved regardless
- of the criteria.
- -->
- <!--
- <deletionPolicy class="solr.SolrDeletionPolicy">
- -->
- <!-- The number of commit points to be kept -->
- <!-- <str name="maxCommitsToKeep">1</str> -->
- <!-- The number of optimized commit points to be kept -->
- <!-- <str name="maxOptimizedCommitsToKeep">0</str> -->
- <!--
- Delete all commit points once they have reached the given age.
- Supports DateMathParser syntax e.g.
- -->
- <!--
- <str name="maxCommitAge">30MINUTES</str>
- <str name="maxCommitAge">1DAY</str>
- -->
- <!--
- </deletionPolicy>
- -->
-
- <!-- Lucene Infostream
-
- To aid in advanced debugging, Lucene provides an "InfoStream"
- of detailed information when indexing.
-
- Setting The value to true will instruct the underlying Lucene
- IndexWriter to write its debugging info the specified file
- -->
- <!-- <infoStream file="INFOSTREAM.txt">false</infoStream> -->
- </indexConfig>
-
-
- <!-- JMX
-
- This example enables JMX if and only if an existing MBeanServer
- is found, use this if you want to configure JMX through JVM
- parameters. Remove this to disable exposing Solr configuration
- and statistics to JMX.
-
- For more details see http://wiki.apache.org/solr/SolrJmx
- -->
- <jmx />
- <!-- If you want to connect to a particular server, specify the
- agentId
- -->
- <!-- <jmx agentId="myAgent" /> -->
- <!-- If you want to start a new MBeanServer, specify the serviceUrl -->
- <!-- <jmx serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:9999/solr"/>
- -->
-
- <!-- The default high-performance update handler -->
- <updateHandler class="solr.DirectUpdateHandler2">
-
- <!-- Enables a transaction log, used for real-time get, durability, and
- and solr cloud replica recovery. The log can grow as big as
- uncommitted changes to the index, so use of a hard autoCommit
- is recommended (see below).
- "dir" - the target directory for transaction logs, defaults to the
- solr data directory.
- "numVersionBuckets" - sets the number of buckets used to keep
- track of max version values when checking for re-ordered
- updates; increase this value to reduce the cost of
- synchronizing access to version buckets during high-volume
- indexing, this requires 8 bytes (long) * numVersionBuckets
- of heap space per Solr core.
- -->
- <updateLog>
- <str name="dir">${solr.ulog.dir:}</str>
- <int name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int>
- </updateLog>
-
- <!-- AutoCommit
-
- Perform a hard commit automatically under certain conditions.
- Instead of enabling autoCommit, consider using "commitWithin"
- when adding documents.
-
- http://wiki.apache.org/solr/UpdateXmlMessages
-
- maxDocs - Maximum number of documents to add since the last
- commit before automatically triggering a new commit.
-
- maxTime - Maximum amount of time in ms that is allowed to pass
- since a document was added before automatically
- triggering a new commit.
- openSearcher - if false, the commit causes recent index changes
- to be flushed to stable storage, but does not cause a new
- searcher to be opened to make those changes visible.
-
- If the updateLog is enabled, then it's highly recommended to
- have some sort of hard autoCommit to limit the log size.
- -->
- <autoCommit>
- <maxTime>600000</maxTime>
- <openSearcher>false</openSearcher>
- </autoCommit>
-
- <!-- softAutoCommit is like autoCommit except it causes a
- 'soft' commit which only ensures that changes are visible
- but does not ensure that data is synced to disk. This is
- faster and more near-realtime friendly than a hard commit.
- -->
-
- <autoSoftCommit>
- <maxTime>1000</maxTime>
- </autoSoftCommit>
-
- <!-- Update Related Event Listeners
-
- Various IndexWriter related events can trigger Listeners to
- take actions.
-
- postCommit - fired after every commit or optimize command
- postOptimize - fired after every optimize command
- -->
-
- </updateHandler>
-
- <!-- IndexReaderFactory
-
- Use the following format to specify a custom IndexReaderFactory,
- which allows for alternate IndexReader implementations.
-
- ** Experimental Feature **
-
- Please note - Using a custom IndexReaderFactory may prevent
- certain other features from working. The API to
- IndexReaderFactory may change without warning or may even be
- removed from future releases if the problems cannot be
- resolved.
-
-
- ** Features that may not work with custom IndexReaderFactory **
-
- The ReplicationHandler assumes a disk-resident index. Using a
- custom IndexReader implementation may cause incompatibility
- with ReplicationHandler and may cause replication to not work
- correctly. See SOLR-1366 for details.
-
- -->
- <!--
- <indexReaderFactory name="IndexReaderFactory" class="package.class">
- <str name="someArg">Some Value</str>
- </indexReaderFactory >
- -->
-
- <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Query section - these settings control query time things like caches
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
- <query>
-
- <!-- Maximum number of clauses in each BooleanQuery, an exception
- is thrown if exceeded. It is safe to increase or remove this setting,
- since it is purely an arbitrary limit to try and catch user errors where
- large boolean queries may not be the best implementation choice.
- -->
- <maxBooleanClauses>${solr.max.booleanClauses:1024}</maxBooleanClauses>
-
- <!-- Solr Internal Query Caches
-
- There are two implementations of cache available for Solr,
- LRUCache, based on a synchronized LinkedHashMap, and
- FastLRUCache, based on a ConcurrentHashMap.
-
- FastLRUCache has faster gets and slower puts in single
- threaded operation and thus is generally faster than LRUCache
- when the hit ratio of the cache is high (> 75%), and may be
- faster under other scenarios on multi-cpu systems.
- -->
-
- <!-- Filter Cache
-
- Cache used by SolrIndexSearcher for filters (DocSets),
- unordered sets of *all* documents that match a query. When a
- new searcher is opened, its caches may be prepopulated or
- "autowarmed" using data from caches in the old searcher.
- autowarmCount is the number of items to prepopulate. For
- LRUCache, the autowarmed items will be the most recently
- accessed items.
-
- Parameters:
- class - the SolrCache implementation LRUCache or
- (LRUCache or FastLRUCache)
- size - the maximum number of entries in the cache
- initialSize - the initial capacity (number of entries) of
- the cache. (see java.util.HashMap)
- autowarmCount - the number of entries to prepopulate from
- and old cache.
- maxRamMB - the maximum amount of RAM (in MB) that this cache is allowed
- to occupy. Note that when this option is specified, the size
- and initialSize parameters are ignored.
- -->
- <filterCache class="solr.FastLRUCache"
- size="512"
- initialSize="512"
- autowarmCount="0"/>
-
- <!-- Query Result Cache
-
- Caches results of searches - ordered lists of document ids
- (DocList) based on a query, a sort, and the range of documents requested.
- Additional supported parameter by LRUCache:
- maxRamMB - the maximum amount of RAM (in MB) that this cache is allowed
- to occupy
- -->
- <queryResultCache class="solr.LRUCache"
- size="512"
- initialSize="512"
- autowarmCount="0"/>
-
- <!-- Document Cache
-
- Caches Lucene Document objects (the stored fields for each
- document). Since Lucene internal document ids are transient,
- this cache will not be autowarmed.
- -->
- <documentCache class="solr.LRUCache"
- size="512"
- initialSize="512"
- autowarmCount="0"/>
-
- <!-- custom cache currently used by block join -->
- <cache name="perSegFilter"
- class="solr.search.LRUCache"
- size="10"
- initialSize="0"
- autowarmCount="10"
- regenerator="solr.NoOpRegenerator" />
-
- <!-- Field Value Cache
-
- Cache used to hold field values that are quickly accessible
- by document id. The fieldValueCache is created by default
- even if not configured here.
- -->
- <!--
- <fieldValueCache class="solr.FastLRUCache"
- size="512"
- autowarmCount="128"
- showItems="32" />
- -->
-
- <!-- Custom Cache
-
- Example of a generic cache. These caches may be accessed by
- name through SolrIndexSearcher.getCache(),cacheLookup(), and
- cacheInsert(). The purpose is to enable easy caching of
- user/application level data. The regenerator argument should
- be specified as an implementation of solr.CacheRegenerator
- if autowarming is desired.
- -->
- <!--
- <cache name="myUserCache"
- class="solr.LRUCache"
- size="4096"
- initialSize="1024"
- autowarmCount="1024"
- regenerator="com.mycompany.MyRegenerator"
- />
- -->
-
-
- <!-- Lazy Field Loading
-
- If true, stored fields that are not requested will be loaded
- lazily. This can result in a significant speed improvement
- if the usual case is to not load all stored fields,
- especially if the skipped fields are large compressed text
- fields.
- -->
- <enableLazyFieldLoading>true</enableLazyFieldLoading>
-
- <!-- Use Filter For Sorted Query
-
- A possible optimization that attempts to use a filter to
- satisfy a search. If the requested sort does not include
- score, then the filterCache will be checked for a filter
- matching the query. If found, the filter will be used as the
- source of document ids, and then the sort will be applied to
- that.
-
- For most situations, this will not be useful unless you
- frequently get the same search repeatedly with different sort
- options, and none of them ever use "score"
- -->
- <!--
- <useFilterForSortedQuery>true</useFilterForSortedQuery>
- -->
-
- <!-- Result Window Size
-
- An optimization for use with the queryResultCache. When a search
- is requested, a superset of the requested number of document ids
- are collected. For example, if a search for a particular query
- requests matching documents 10 through 19, and queryWindowSize is 50,
- then documents 0 through 49 will be collected and cached. Any further
- requests in that range can be satisfied via the cache.
- -->
- <queryResultWindowSize>20</queryResultWindowSize>
-
- <!-- Maximum number of documents to cache for any entry in the
- queryResultCache.
- -->
- <queryResultMaxDocsCached>200</queryResultMaxDocsCached>
-
- <!-- Query Related Event Listeners
-
- Various IndexSearcher related events can trigger Listeners to
- take actions.
-
- newSearcher - fired whenever a new searcher is being prepared
- and there is a current searcher handling requests (aka
- registered). It can be used to prime certain caches to
- prevent long request times for certain requests.
-
- firstSearcher - fired whenever a new searcher is being
- prepared but there is no current registered searcher to handle
- requests or to gain autowarming data from.
-
-
- -->
- <!-- QuerySenderListener takes an array of NamedList and executes a
- local query request for each NamedList in sequence.
- -->
- <listener event="newSearcher" class="solr.QuerySenderListener">
- <arr name="queries">
- <!--
- <lst><str name="q">solr</str><str name="sort">price asc</str></lst>
- <lst><str name="q">rocks</str><str name="sort">weight asc</str></lst>
- -->
- </arr>
- </listener>
- <listener event="firstSearcher" class="solr.QuerySenderListener">
- <arr name="queries">
- <!--
- <lst>
- <str name="q">static firstSearcher warming in solrconfig.xml</str>
- </lst>
- -->
- </arr>
- </listener>
-
- <!-- Use Cold Searcher
-
- If a search request comes in and there is no current
- registered searcher, then immediately register the still
- warming searcher and use it. If "false" then all requests
- will block until the first searcher is done warming.
- -->
- <useColdSearcher>false</useColdSearcher>
-
- </query>
-
-
- <!-- Request Dispatcher
-
- This section contains instructions for how the SolrDispatchFilter
- should behave when processing requests for this SolrCore.
-
- -->
- <requestDispatcher>
- <!-- Request Parsing
-
- These settings indicate how Solr Requests may be parsed, and
- what restrictions may be placed on the ContentStreams from
- those requests
-
- enableRemoteStreaming - enables use of the stream.file
- and stream.url parameters for specifying remote streams.
-
- multipartUploadLimitInKB - specifies the max size (in KiB) of
- Multipart File Uploads that Solr will allow in a Request.
-
- formdataUploadLimitInKB - specifies the max size (in KiB) of
- form data (application/x-www-form-urlencoded) sent via
- POST. You can use POST to pass request parameters not
- fitting into the URL.
-
- addHttpRequestToContext - if set to true, it will instruct
- the requestParsers to include the original HttpServletRequest
- object in the context map of the SolrQueryRequest under the
- key "httpRequest". It will not be used by any of the existing
- Solr components, but may be useful when developing custom
- plugins.
-
- *** WARNING ***
- Before enabling remote streaming, you should make sure your
- system has authentication enabled.
-
- <requestParsers enableRemoteStreaming="false"
- multipartUploadLimitInKB="-1"
- formdataUploadLimitInKB="-1"
- addHttpRequestToContext="false"/>
- -->
-
- <!-- HTTP Caching
-
- Set HTTP caching related parameters (for proxy caches and clients).
-
- The options below instruct Solr not to output any HTTP Caching
- related headers
- -->
- <httpCaching never304="true" />
- <!-- If you include a <cacheControl> directive, it will be used to
- generate a Cache-Control header (as well as an Expires header
- if the value contains "max-age=")
-
- By default, no Cache-Control header is generated.
-
- You can use the <cacheControl> option even if you have set
- never304="true"
- -->
- <!--
- <httpCaching never304="true" >
- <cacheControl>max-age=30, public</cacheControl>
- </httpCaching>
- -->
- <!-- To enable Solr to respond with automatically generated HTTP
- Caching headers, and to response to Cache Validation requests
- correctly, set the value of never304="false"
-
- This will cause Solr to generate Last-Modified and ETag
- headers based on the properties of the Index.
-
- The following options can also be specified to affect the
- values of these headers...
-
- lastModFrom - the default value is "openTime" which means the
- Last-Modified value (and validation against If-Modified-Since
- requests) will all be relative to when the current Searcher
- was opened. You can change it to lastModFrom="dirLastMod" if
- you want the value to exactly correspond to when the physical
- index was last modified.
-
- etagSeed="..." is an option you can change to force the ETag
- header (and validation against If-None-Match requests) to be
- different even if the index has not changed (ie: when making
- significant changes to your config file)
-
- (lastModifiedFrom and etagSeed are both ignored if you use
- the never304="true" option)
- -->
- <!--
- <httpCaching lastModifiedFrom="openTime"
- etagSeed="Solr">
- <cacheControl>max-age=30, public</cacheControl>
- </httpCaching>
- -->
- </requestDispatcher>
-
- <!-- Request Handlers
-
- http://wiki.apache.org/solr/SolrRequestHandler
-
- Incoming queries will be dispatched to a specific handler by name
- based on the path specified in the request.
-
- If a Request Handler is declared with startup="lazy", then it will
- not be initialized until the first request that uses it.
-
- -->
- <!-- SearchHandler
-
- http://wiki.apache.org/solr/SearchHandler
-
- For processing Search Queries, the primary Request Handler
- provided with Solr is "SearchHandler" It delegates to a sequent
- of SearchComponents (see below) and supports distributed
- queries across multiple shards
- -->
- <requestHandler name="/select" class="solr.SearchHandler">
- <!-- default values for query parameters can be specified, these
- will be overridden by parameters in the request
- -->
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- <int name="rows">10</int>
- <str name="df">text</str>
- <!-- Default search field
- <str name="df">text</str>
- -->
- <!-- Change from JSON to XML format (the default prior to Solr 7.0)
- <str name="wt">xml</str>
- -->
- </lst>
- <!-- In addition to defaults, "appends" params can be specified
- to identify values which should be appended to the list of
- multi-val params from the query (or the existing "defaults").
- -->
- <!-- In this example, the param "fq=instock:true" would be appended to
- any query time fq params the user may specify, as a mechanism for
- partitioning the index, independent of any user selected filtering
- that may also be desired (perhaps as a result of faceted searching).
-
- NOTE: there is *absolutely* nothing a client can do to prevent these
- "appends" values from being used, so don't use this mechanism
- unless you are sure you always want it.
- -->
- <!--
- <lst name="appends">
- <str name="fq">inStock:true</str>
- </lst>
- -->
- <!-- "invariants" are a way of letting the Solr maintainer lock down
- the options available to Solr clients. Any params values
- specified here are used regardless of what values may be specified
- in either the query, the "defaults", or the "appends" params.
-
- In this example, the facet.field and facet.query params would
- be fixed, limiting the facets clients can use. Faceting is
- not turned on by default - but if the client does specify
- facet=true in the request, these are the only facets they
- will be able to see counts for; regardless of what other
- facet.field or facet.query params they may specify.
-
- NOTE: there is *absolutely* nothing a client can do to prevent these
- "invariants" values from being used, so don't use this mechanism
- unless you are sure you always want it.
- -->
- <!--
- <lst name="invariants">
- <str name="facet.field">cat</str>
- <str name="facet.field">manu_exact</str>
- <str name="facet.query">price:[* TO 500]</str>
- <str name="facet.query">price:[500 TO *]</str>
- </lst>
- -->
- <!-- If the default list of SearchComponents is not desired, that
- list can either be overridden completely, or components can be
- prepended or appended to the default list. (see below)
- -->
- <!--
- <arr name="components">
- <str>nameOfCustomComponent1</str>
- <str>nameOfCustomComponent2</str>
- </arr>
- -->
- </requestHandler>
-
- <!-- A request handler that returns indented JSON by default -->
- <requestHandler name="/query" class="solr.SearchHandler">
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- <str name="wt">json</str>
- <str name="indent">true</str>
- </lst>
- </requestHandler>
-
-
- <!-- A Robust Example
-
- This example SearchHandler declaration shows off usage of the
- SearchHandler with many defaults declared
-
- Note that multiple instances of the same Request Handler
- (SearchHandler) can be registered multiple times with different
- names (and different init parameters)
- -->
- <requestHandler name="/browse" class="solr.SearchHandler" useParams="query,facets,velocity,browse">
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- </lst>
- </requestHandler>
-
- <initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell,/browse">
- <lst name="defaults">
- <str name="df">_text_</str>
- </lst>
- </initParams>
-
- <!-- Solr Cell Update Request Handler
-
- http://wiki.apache.org/solr/ExtractingRequestHandler
-
- -->
- <requestHandler name="/update/extract"
- startup="lazy"
- class="solr.extraction.ExtractingRequestHandler" >
- <lst name="defaults">
- <str name="lowernames">true</str>
- <str name="fmap.content">_text_</str>
- </lst>
- </requestHandler>
-
- <!-- Search Components
-
- Search components are registered to SolrCore and used by
- instances of SearchHandler (which can access them by name)
-
- By default, the following components are available:
-
- <searchComponent name="query" class="solr.QueryComponent" />
- <searchComponent name="facet" class="solr.FacetComponent" />
- <searchComponent name="mlt" class="solr.MoreLikeThisComponent" />
- <searchComponent name="highlight" class="solr.HighlightComponent" />
- <searchComponent name="stats" class="solr.StatsComponent" />
- <searchComponent name="debug" class="solr.DebugComponent" />
-
- Default configuration in a requestHandler would look like:
-
- <arr name="components">
- <str>query</str>
- <str>facet</str>
- <str>mlt</str>
- <str>highlight</str>
- <str>stats</str>
- <str>debug</str>
- </arr>
-
- If you register a searchComponent to one of the standard names,
- that will be used instead of the default.
-
- To insert components before or after the 'standard' components, use:
-
- <arr name="first-components">
- <str>myFirstComponentName</str>
- </arr>
-
- <arr name="last-components">
- <str>myLastComponentName</str>
- </arr>
-
- NOTE: The component registered with the name "debug" will
- always be executed after the "last-components"
-
- -->
-
- <!-- Spell Check
-
- The spell check component can return a list of alternative spelling
- suggestions.
-
- http://wiki.apache.org/solr/SpellCheckComponent
- -->
- <!-- <searchComponent name="spellcheck" class="solr.SpellCheckComponent">
-
- <str name="queryAnalyzerFieldType">text_general</str>
-
- <!-- Multiple "Spell Checkers" can be declared and used by this
- component
- -->
-
- <!-- a spellchecker built from a field of the main index -->
- <lst name="spellchecker">
- <str name="name">default</str>
- <str name="field">_text_</str>
- <str name="classname">solr.DirectSolrSpellChecker</str>
- <!-- the spellcheck distance measure used, the default is the internal levenshtein -->
- <str name="distanceMeasure">internal</str>
- <!-- minimum accuracy needed to be considered a valid spellcheck suggestion -->
- <float name="accuracy">0.5</float>
- <!-- the maximum #edits we consider when enumerating terms: can be 1 or 2 -->
- <int name="maxEdits">2</int>
- <!-- the minimum shared prefix when enumerating terms -->
- <int name="minPrefix">1</int>
- <!-- maximum number of inspections per result. -->
- <int name="maxInspections">5</int>
- <!-- minimum length of a query term to be considered for correction -->
- <int name="minQueryLength">4</int>
- <!-- maximum threshold of documents a query term can appear to be considered for correction -->
- <float name="maxQueryFrequency">0.01</float>
- <!-- uncomment this to require suggestions to occur in 1% of the documents
- <float name="thresholdTokenFrequency">.01</float>
- -->
- </lst>
-
- <!-- a spellchecker that can break or combine words. See "/spell" handler below for usage -->
- <!--
- <lst name="spellchecker">
- <str name="name">wordbreak</str>
- <str name="classname">solr.WordBreakSolrSpellChecker</str>
- <str name="field">name</str>
- <str name="combineWords">true</str>
- <str name="breakWords">true</str>
- <int name="maxChanges">10</int>
- </lst>
- -->
- </searchComponent>
- -->
-
- <!-- A request handler for demonstrating the spellcheck component.
-
- NOTE: This is purely as an example. The whole purpose of the
- SpellCheckComponent is to hook it into the request handler that
- handles your normal user queries so that a separate request is
- not needed to get suggestions.
-
- IN OTHER WORDS, THERE IS REALLY GOOD CHANCE THE SETUP BELOW IS
- NOT WHAT YOU WANT FOR YOUR PRODUCTION SYSTEM!
-
- See http://wiki.apache.org/solr/SpellCheckComponent for details
- on the request parameters.
- -->
- <requestHandler name="/spell" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <!-- Solr will use suggestions from both the 'default' spellchecker
- and from the 'wordbreak' spellchecker and combine them.
- collations (re-written queries) can include a combination of
- corrections from both spellcheckers -->
- <str name="spellcheck.dictionary">default</str>
- <str name="spellcheck">on</str>
- <str name="spellcheck.extendedResults">true</str>
- <str name="spellcheck.count">10</str>
- <str name="spellcheck.alternativeTermCount">5</str>
- <str name="spellcheck.maxResultsForSuggest">5</str>
- <str name="spellcheck.collate">true</str>
- <str name="spellcheck.collateExtendedResults">true</str>
- <str name="spellcheck.maxCollationTries">10</str>
- <str name="spellcheck.maxCollations">5</str>
- </lst>
- <arr name="last-components">
- <str>spellcheck</str>
- </arr>
- </requestHandler>
-
- <!-- Term Vector Component
-
- http://wiki.apache.org/solr/TermVectorComponent
- -->
- <searchComponent name="tvComponent" class="solr.TermVectorComponent"/>
-
- <!-- A request handler for demonstrating the term vector component
-
- This is purely as an example.
-
- In reality you will likely want to add the component to your
- already specified request handlers.
- -->
- <requestHandler name="/tvrh" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <bool name="tv">true</bool>
- </lst>
- <arr name="last-components">
- <str>tvComponent</str>
- </arr>
- </requestHandler>
-
- <!-- Clustering Component. (Omitted here. See the default Solr example for a typical configuration.) -->
-
- <!-- Terms Component
-
- http://wiki.apache.org/solr/TermsComponent
-
- A component to return terms and document frequency of those
- terms
- -->
- <searchComponent name="terms" class="solr.TermsComponent"/>
-
- <!-- A request handler for demonstrating the terms component -->
- <requestHandler name="/terms" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <bool name="terms">true</bool>
- <bool name="distrib">false</bool>
- </lst>
- <arr name="components">
- <str>terms</str>
- </arr>
- </requestHandler>
-
-
- <!-- Query Elevation Component
-
- http://wiki.apache.org/solr/QueryElevationComponent
-
- a search component that enables you to configure the top
- results for a given query regardless of the normal lucene
- scoring.
- -->
- <searchComponent name="elevator" class="solr.QueryElevationComponent" >
- <!-- pick a fieldType to analyze queries -->
- <str name="queryFieldType">string</str>
- </searchComponent>
-
- <!-- A request handler for demonstrating the elevator component -->
- <requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">
- <lst name="defaults">
- <str name="echoParams">explicit</str>
- </lst>
- <arr name="last-components">
- <str>elevator</str>
- </arr>
- </requestHandler>
-
- <!-- Highlighting Component
-
- http://wiki.apache.org/solr/HighlightingParameters
- -->
- <searchComponent class="solr.HighlightComponent" name="highlight">
- <highlighting>
- <!-- Configure the standard fragmenter -->
- <!-- This could most likely be commented out in the "default" case -->
- <fragmenter name="gap"
- default="true"
- class="solr.highlight.GapFragmenter">
- <lst name="defaults">
- <int name="hl.fragsize">100</int>
- </lst>
- </fragmenter>
-
- <!-- A regular-expression-based fragmenter
- (for sentence extraction)
- -->
- <fragmenter name="regex"
- class="solr.highlight.RegexFragmenter">
- <lst name="defaults">
- <!-- slightly smaller fragsizes work better because of slop -->
- <int name="hl.fragsize">70</int>
- <!-- allow 50% slop on fragment sizes -->
- <float name="hl.regex.slop">0.5</float>
- <!-- a basic sentence pattern -->
- <str name="hl.regex.pattern">[-\w ,/\n\&quot;&apos;]{20,200}</str>
- </lst>
- </fragmenter>
-
- <!-- Configure the standard formatter -->
- <formatter name="html"
- default="true"
- class="solr.highlight.HtmlFormatter">
- <lst name="defaults">
- <str name="hl.simple.pre"><![CDATA[<em>]]></str>
- <str name="hl.simple.post"><![CDATA[</em>]]></str>
- </lst>
- </formatter>
-
- <!-- Configure the standard encoder -->
- <encoder name="html"
- class="solr.highlight.HtmlEncoder" />
-
- <!-- Configure the standard fragListBuilder -->
- <fragListBuilder name="simple"
- class="solr.highlight.SimpleFragListBuilder"/>
-
- <!-- Configure the single fragListBuilder -->
- <fragListBuilder name="single"
- class="solr.highlight.SingleFragListBuilder"/>
-
- <!-- Configure the weighted fragListBuilder -->
- <fragListBuilder name="weighted"
- default="true"
- class="solr.highlight.WeightedFragListBuilder"/>
-
- <!-- default tag FragmentsBuilder -->
- <fragmentsBuilder name="default"
- default="true"
- class="solr.highlight.ScoreOrderFragmentsBuilder">
- <!--
- <lst name="defaults">
- <str name="hl.multiValuedSeparatorChar">/</str>
- </lst>
- -->
- </fragmentsBuilder>
-
- <!-- multi-colored tag FragmentsBuilder -->
- <fragmentsBuilder name="colored"
- class="solr.highlight.ScoreOrderFragmentsBuilder">
- <lst name="defaults">
- <str name="hl.tag.pre"><![CDATA[
- <b style="background:yellow">,<b style="background:lawgreen">,
- <b style="background:aquamarine">,<b style="background:magenta">,
- <b style="background:palegreen">,<b style="background:coral">,
- <b style="background:wheat">,<b style="background:khaki">,
- <b style="background:lime">,<b style="background:deepskyblue">]]></str>
- <str name="hl.tag.post"><![CDATA[</b>]]></str>
- </lst>
- </fragmentsBuilder>
-
- <boundaryScanner name="default"
- default="true"
- class="solr.highlight.SimpleBoundaryScanner">
- <lst name="defaults">
- <str name="hl.bs.maxScan">10</str>
- <str name="hl.bs.chars">.,!? &#9;&#10;&#13;</str>
- </lst>
- </boundaryScanner>
-
- <boundaryScanner name="breakIterator"
- class="solr.highlight.BreakIteratorBoundaryScanner">
- <lst name="defaults">
- <!-- type should be one of CHARACTER, WORD(default), LINE and SENTENCE -->
- <str name="hl.bs.type">WORD</str>
- <!-- language and country are used when constructing Locale object. -->
- <!-- And the Locale object will be used when getting instance of BreakIterator -->
- <str name="hl.bs.language">en</str>
- <str name="hl.bs.country">US</str>
- </lst>
- </boundaryScanner>
- </highlighting>
- </searchComponent>
-
- <!-- Update Processors
-
- Chains of Update Processor Factories for dealing with Update
- Requests can be declared, and then used by name in Update
- Request Processors
-
- http://wiki.apache.org/solr/UpdateRequestProcessor
-
- -->
-
- <!-- Add unknown fields to the schema
-
- Field type guessing update processors that will
- attempt to parse string-typed field values as Booleans, Longs,
- Doubles, or Dates, and then add schema fields with the guessed
- field types. Text content will be indexed as "text_general" as
- well as a copy to a plain string version in *_str.
-
- These require that the schema is both managed and mutable, by
- declaring schemaFactory as ManagedIndexSchemaFactory, with
- mutable specified as true.
-
- See http://wiki.apache.org/solr/GuessingFieldTypes
- -->
- <updateProcessor class="solr.UUIDUpdateProcessorFactory" name="uuid"/>
- <updateProcessor class="solr.RemoveBlankFieldUpdateProcessorFactory" name="remove-blank"/>
- <updateProcessor class="solr.FieldNameMutatingUpdateProcessorFactory" name="field-name-mutating">
- <str name="pattern">[^\w-\.]</str>
- <str name="replacement">_</str>
- </updateProcessor>
- <updateProcessor class="solr.ParseBooleanFieldUpdateProcessorFactory" name="parse-boolean"/>
- <updateProcessor class="solr.ParseLongFieldUpdateProcessorFactory" name="parse-long"/>
- <updateProcessor class="solr.ParseDoubleFieldUpdateProcessorFactory" name="parse-double"/>
- <updateProcessor class="solr.ParseDateFieldUpdateProcessorFactory" name="parse-date">
- <arr name="format">
- <str>yyyy-MM-dd['T'[HH:mm[:ss[.SSS]][z</str>
- <str>yyyy-MM-dd['T'[HH:mm[:ss[,SSS]][z</str>
- <str>yyyy-MM-dd HH:mm[:ss[.SSS]][z</str>
- <str>yyyy-MM-dd HH:mm[:ss[,SSS]][z</str>
- <str>[EEE, ]dd MMM yyyy HH:mm[:ss] z</str>
- <str>EEEE, dd-MMM-yy HH:mm:ss z</str>
- <str>EEE MMM ppd HH:mm:ss [z ]yyyy</str>
- </arr>
- </updateProcessor>
- <updateProcessor class="solr.AddSchemaFieldsUpdateProcessorFactory" name="add-schema-fields">
- <lst name="typeMapping">
- <str name="valueClass">java.lang.String</str>
- <str name="fieldType">text_general</str>
- <lst name="copyField">
- <str name="dest">*_str</str>
- <int name="maxChars">256</int>
- </lst>
- <!-- Use as default mapping instead of defaultFieldType -->
- <bool name="default">true</bool>
- </lst>
- <lst name="typeMapping">
- <str name="valueClass">java.lang.Boolean</str>
- <str name="fieldType">booleans</str>
- </lst>
- <lst name="typeMapping">
- <str name="valueClass">java.util.Date</str>
- <str name="fieldType">pdates</str>
- </lst>
- <lst name="typeMapping">
- <str name="valueClass">java.lang.Long</str>
- <str name="valueClass">java.lang.Integer</str>
- <str name="fieldType">plongs</str>
- </lst>
- <lst name="typeMapping">
- <str name="valueClass">java.lang.Number</str>
- <str name="fieldType">pdoubles</str>
- </lst>
- </updateProcessor>
-
- <!-- The update.autoCreateFields property can be turned to false to disable schemaless mode -->
- <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:true}"
- processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields">
- <processor class="solr.LogUpdateProcessorFactory"/>
- <processor class="solr.DistributedUpdateProcessorFactory"/>
- <processor class="solr.RunUpdateProcessorFactory"/>
- </updateRequestProcessorChain>
-
- <!-- Deduplication
-
- An example dedup update processor that creates the "id" field
- on the fly based on the hash code of some other fields. This
- example has overwriteDupes set to false since we are using the
- id field as the signatureField and Solr will maintain
- uniqueness based on that anyway.
-
- -->
- <!--
- <updateRequestProcessorChain name="dedupe">
- <processor class="solr.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">true</bool>
- <str name="signatureField">id</str>
- <bool name="overwriteDupes">false</bool>
- <str name="fields">name,features,cat</str>
- <str name="signatureClass">solr.processor.Lookup3Signature</str>
- </processor>
- <processor class="solr.LogUpdateProcessorFactory" />
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- -->
-
- <!-- Language identification
-
- This example update chain identifies the language of the incoming
- documents using the langid contrib. The detected language is
- written to field language_s. No field name mapping is done.
- The fields used for detection are text, title, subject and description,
- making this example suitable for detecting languages form full-text
- rich documents injected via ExtractingRequestHandler.
- See more about langId at http://wiki.apache.org/solr/LanguageDetection
- -->
- <!--
- <updateRequestProcessorChain name="langid">
- <processor class="org.apache.solr.update.processor.TikaLanguageIdentifierUpdateProcessorFactory">
- <str name="langid.fl">text,title,subject,description</str>
- <str name="langid.langField">language_s</str>
- <str name="langid.fallback">en</str>
- </processor>
- <processor class="solr.LogUpdateProcessorFactory" />
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- -->
-
- <!-- Script update processor
-
- This example hooks in an update processor implemented using JavaScript.
-
- See more about the script update processor at http://wiki.apache.org/solr/ScriptUpdateProcessor
- -->
- <!--
- <updateRequestProcessorChain name="script">
- <processor class="solr.StatelessScriptUpdateProcessorFactory">
- <str name="script">update-script.js</str>
- <lst name="params">
- <str name="config_param">example config parameter</str>
- </lst>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- -->
-
- <!-- Response Writers
-
- http://wiki.apache.org/solr/QueryResponseWriter
-
- Request responses will be written using the writer specified by
- the 'wt' request parameter matching the name of a registered
- writer.
-
- The "default" writer is the default and will be used if 'wt' is
- not specified in the request.
- -->
- <!-- The following response writers are implicitly configured unless
- overridden...
- -->
- <!--
- <queryResponseWriter name="xml"
- default="true"
- class="solr.XMLResponseWriter" />
- <queryResponseWriter name="json" class="solr.JSONResponseWriter"/>
- <queryResponseWriter name="python" class="solr.PythonResponseWriter"/>
- <queryResponseWriter name="ruby" class="solr.RubyResponseWriter"/>
- <queryResponseWriter name="php" class="solr.PHPResponseWriter"/>
- <queryResponseWriter name="phps" class="solr.PHPSerializedResponseWriter"/>
- <queryResponseWriter name="csv" class="solr.CSVResponseWriter"/>
- <queryResponseWriter name="schema.xml" class="solr.SchemaXmlResponseWriter"/>
- -->
-
- <queryResponseWriter name="json" class="solr.JSONResponseWriter">
- <!-- For the purposes of the tutorial, JSON responses are written as
- plain text so that they are easy to read in *any* browser.
- If you expect a MIME type of "application/json" just remove this override.
- -->
- <str name="content-type">text/plain; charset=UTF-8</str>
- </queryResponseWriter>
-
- <!--
- Custom response writers can be declared as needed...
- -->
- <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter" startup="lazy">
- <str name="template.base.dir">${velocity.template.base.dir:}</str>
- <str name="solr.resource.loader.enabled">${velocity.solr.resource.loader.enabled:true}</str>
- <str name="params.resource.loader.enabled">${velocity.params.resource.loader.enabled:false}</str>
- </queryResponseWriter>
-
- <!-- XSLT response writer transforms the XML output by any xslt file found
- in Solr's conf/xslt directory. Changes to xslt files are checked for
- every xsltCacheLifetimeSeconds.
- -->
- <queryResponseWriter name="xslt" class="solr.XSLTResponseWriter">
- <int name="xsltCacheLifetimeSeconds">5</int>
- </queryResponseWriter>
-
- <!-- Query Parsers
-
- https://lucene.apache.org/solr/guide/query-syntax-and-parsing.html
-
- Multiple QParserPlugins can be registered by name, and then
- used in either the "defType" param for the QueryComponent (used
- by SearchHandler) or in LocalParams
- -->
- <!-- example of registering a query parser -->
- <!--
- <queryParser name="myparser" class="com.mycompany.MyQParserPlugin"/>
- -->
-
- <!-- Function Parsers
-
- http://wiki.apache.org/solr/FunctionQuery
-
- Multiple ValueSourceParsers can be registered by name, and then
- used as function names when using the "func" QParser.
- -->
- <!-- example of registering a custom function parser -->
- <!--
- <valueSourceParser name="myfunc"
- class="com.mycompany.MyValueSourceParser" />
- -->
-
-
- <!-- Document Transformers
- http://wiki.apache.org/solr/DocTransformers
- -->
- <!--
- Could be something like:
- <transformer name="db" class="com.mycompany.LoadFromDatabaseTransformer" >
- <int name="connection">jdbc://....</int>
- </transformer>
-
- To add a constant value to all docs, use:
- <transformer name="mytrans2" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
- <int name="value">5</int>
- </transformer>
-
- If you want the user to still be able to change it with _value:something_ use this:
- <transformer name="mytrans3" class="org.apache.solr.response.transform.ValueAugmenterFactory" >
- <double name="defaultValue">5</double>
- </transformer>
-
- If you are using the QueryElevationComponent, you may wish to mark documents that get boosted. The
- EditorialMarkerFactory will do exactly that:
- <transformer name="qecBooster" class="org.apache.solr.response.transform.EditorialMarkerFactory" />
- -->
-</config>
diff --git a/solr/conf/stopwords.txt b/solr/conf/stopwords.txt
deleted file mode 100644
index ae1e83eeb..000000000
--- a/solr/conf/stopwords.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
diff --git a/solr/conf/synonyms.txt b/solr/conf/synonyms.txt
deleted file mode 100644
index eab4ee875..000000000
--- a/solr/conf/synonyms.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#-----------------------------------------------------------------------
-#some test synonym mappings unlikely to appear in real input text
-aaafoo => aaabar
-bbbfoo => bbbfoo bbbbar
-cccfoo => cccbar cccbaz
-fooaaa,baraaa,bazaaa
-
-# Some synonym groups specific to this example
-GB,gib,gigabyte,gigabytes
-MB,mib,megabyte,megabytes
-Television, Televisions, TV, TVs
-#notice we use "gib" instead of "GiB" so any WordDelimiterGraphFilter coming
-#after us won't split it into two words.
-
-# Synonym mappings can be used for spelling correction too
-pixima => pixma
-
diff --git a/src/Utils.ts b/src/Utils.ts
index 7bb025e49..4deac9035 100644
--- a/src/Utils.ts
+++ b/src/Utils.ts
@@ -2,10 +2,8 @@ import v4 = require('uuid/v4');
import v5 = require("uuid/v5");
import { Socket } from 'socket.io';
import { Message } from './server/Message';
-import { RouteStore } from './server/RouteStore';
export namespace Utils {
-
export const DRAG_THRESHOLD = 4;
export function GenerateGuid(): string {
@@ -46,11 +44,16 @@ export namespace Utils {
}
export function CorsProxy(url: string): string {
- return prepend(RouteStore.corsProxy + "/") + encodeURIComponent(url);
+ return prepend("/corsProxy/") + encodeURIComponent(url);
+ }
+
+ export async function getApiKey(target: string): Promise<string> {
+ const response = await fetch(prepend(`/environment/${target.toUpperCase()}`));
+ return response.text();
}
export function CopyText(text: string) {
- var textArea = document.createElement("textarea");
+ const textArea = document.createElement("textarea");
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
@@ -62,14 +65,14 @@ export namespace Utils {
}
export function fromRGBAstr(rgba: string) {
- let rm = rgba.match(/rgb[a]?\(([ 0-9]+)/);
- let r = rm ? Number(rm[1]) : 0;
- let gm = rgba.match(/rgb[a]?\([ 0-9]+,([ 0-9]+)/);
- let g = gm ? Number(gm[1]) : 0;
- let bm = rgba.match(/rgb[a]?\([ 0-9]+,[ 0-9]+,([ 0-9]+)/);
- let b = bm ? Number(bm[1]) : 0;
- let am = rgba.match(/rgba?\([ 0-9]+,[ 0-9]+,[ 0-9]+,([ .0-9]+)/);
- let a = am ? Number(am[1]) : 1;
+ const rm = rgba.match(/rgb[a]?\(([ 0-9]+)/);
+ const r = rm ? Number(rm[1]) : 0;
+ const gm = rgba.match(/rgb[a]?\([ 0-9]+,([ 0-9]+)/);
+ const g = gm ? Number(gm[1]) : 0;
+ const bm = rgba.match(/rgb[a]?\([ 0-9]+,[ 0-9]+,([ 0-9]+)/);
+ const b = bm ? Number(bm[1]) : 0;
+ const am = rgba.match(/rgba?\([ 0-9]+,[ 0-9]+,[ 0-9]+,([ .0-9]+)/);
+ const a = am ? Number(am[1]) : 1;
return { r: r, g: g, b: b, a: a };
}
@@ -82,10 +85,10 @@ export namespace Utils {
// s /= 100;
// l /= 100;
- let c = (1 - Math.abs(2 * l - 1)) * s,
+ const c = (1 - Math.abs(2 * l - 1)) * s,
x = c * (1 - Math.abs((h / 60) % 2 - 1)),
- m = l - c / 2,
- r = 0,
+ m = l - c / 2;
+ let r = 0,
g = 0,
b = 0;
if (0 <= h && h < 60) {
@@ -114,10 +117,10 @@ export namespace Utils {
b /= 255;
// Find greatest and smallest channel values
- let cmin = Math.min(r, g, b),
+ const cmin = Math.min(r, g, b),
cmax = Math.max(r, g, b),
- delta = cmax - cmin,
- h = 0,
+ delta = cmax - cmin;
+ let h = 0,
s = 0,
l = 0;
// Calculate hue
@@ -153,19 +156,76 @@ export namespace Utils {
return Math.max(lower, Math.min(upper, n));
}
+ export function distanceBetweenHorizontalLines(xs: number, xe: number, y: number, xs2: number, xe2: number, y2: number): [number, number[]] {
+ if ((xs2 < xs && xe2 > xs) || (xs2 < xe && xe2 > xe) || (xs2 > xs && xe2 < xe)) return [Math.abs(y - y2), [Math.max(xs, xs2), y, Math.min(xe, xe2), y]];
+ if (xe2 < xs) return [Math.sqrt((xe2 - xs) * (xe2 - xs) + (y2 - y) * (y2 - y)), [xs, y, xs, y]];
+ //if (xs2 > xe)
+ return [Math.sqrt((xs2 - xe) * (xs2 - xe) + (y2 - y) * (y2 - y)), [xe, y, xe, y]];
+ }
+ export function distanceBetweenVerticalLines(x: number, ys: number, ye: number, x2: number, ys2: number, ye2: number): [number, number[]] {
+ if ((ys2 < ys && ye2 > ys) || (ys2 < ye && ye2 > ye) || (ys2 > ys && ye2 < ye)) return [Math.abs(x - x2), [x, Math.max(ys, ys2), x, Math.min(ye, ye2)]];
+ if (ye2 < ys) return [Math.sqrt((ye2 - ys) * (ye2 - ys) + (x2 - x) * (x2 - x)), [x, ys, x, ys]];
+ //if (ys2 > ye)
+ return [Math.sqrt((ys2 - ye) * (ys2 - ye) + (x2 - x) * (x2 - x)), [x, ye, x, ye]];
+ }
+
+ function project(px: number, py: number, ax: number, ay: number, bx: number, by: number) {
+
+ if (ax === bx && ay === by) return { point: { x: ax, y: ay }, left: false, dot: 0, t: 0 };
+ const atob = { x: bx - ax, y: by - ay };
+ const atop = { x: px - ax, y: py - ay };
+ const len = atob.x * atob.x + atob.y * atob.y;
+ var dot = atop.x * atob.x + atop.y * atob.y;
+ const t = Math.min(1, Math.max(0, dot / len));
+
+ dot = (bx - ax) * (py - ay) - (by - ay) * (px - ax);
+
+ return {
+ point: {
+ x: ax + atob.x * t,
+ y: ay + atob.y * t
+ },
+ left: dot < 1,
+ dot: dot,
+ t: t
+ };
+ }
+
+ export function closestPtBetweenRectangles(l: number, t: number, w: number, h: number,
+ l1: number, t1: number, w1: number, h1: number,
+ x: number, y: number) {
+ const r = l + w,
+ b = t + h;
+ const r1 = l1 + w1,
+ b1 = t1 + h1;
+ const hsegs = [[l, r, t, l1, r1, t1], [l, r, b, l1, r1, t1], [l, r, t, l1, r1, b1], [l, r, b, l1, r1, b1]];
+ const vsegs = [[l, t, b, l1, t1, b1], [r, t, b, l1, t1, b1], [l, t, b, r1, t1, b1], [r, t, b, r1, t1, b1]];
+ const res = hsegs.reduce((closest, seg) => {
+ const res = distanceBetweenHorizontalLines(seg[0], seg[1], seg[2], seg[3], seg[4], seg[5]);
+ return (res[0] < closest[0]) ? res : closest;
+ }, [Number.MAX_VALUE, []] as [number, number[]]);
+ const fres = vsegs.reduce((closest, seg) => {
+ const res = distanceBetweenVerticalLines(seg[0], seg[1], seg[2], seg[3], seg[4], seg[5]);
+ return (res[0] < closest[0]) ? res : closest;
+ }, res);
+
+ const near = project(x, y, fres[1][0], fres[1][1], fres[1][2], fres[1][3]);
+ return project(near.point.x, near.point.y, fres[1][0], fres[1][1], fres[1][2], fres[1][3]);
+ }
+
export function getNearestPointInPerimeter(l: number, t: number, w: number, h: number, x: number, y: number) {
- var r = l + w,
+ const r = l + w,
b = t + h;
- var x = clamp(x, l, r),
+ x = clamp(x, l, r),
y = clamp(y, t, b);
- var dl = Math.abs(x - l),
+ const dl = Math.abs(x - l),
dr = Math.abs(x - r),
dt = Math.abs(y - t),
db = Math.abs(y - b);
- var m = Math.min(dl, dr, dt, db);
+ const m = Math.min(dl, dr, dt, db);
return (m === dt) ? [x, t] :
(m === db) ? [x, b] :
@@ -173,7 +233,7 @@ export namespace Utils {
}
export function GetClipboardText(): string {
- var textArea = document.createElement("textarea");
+ const textArea = document.createElement("textarea");
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
@@ -196,9 +256,9 @@ export namespace Utils {
if (logFilter !== undefined && logFilter !== message.type) {
return;
}
- let idString = (message.id || "").padStart(36, ' ');
+ const idString = (message.id || "").padStart(36, ' ');
prefix = prefix.padEnd(16, ' ');
- console.log(`${prefix}: ${idString}, ${receiving ? 'receiving' : 'sending'} ${messageName} with data ${JSON.stringify(message)}`);
+ console.log(`${prefix}: ${idString}, ${receiving ? 'receiving' : 'sending'} ${messageName} with data ${JSON.stringify(message)} `);
}
function loggingCallback(prefix: string, func: (args: any) => any, messageName: string) {
@@ -248,18 +308,18 @@ export function OmitKeys(obj: any, keys: string[], addKeyFunc?: (dup: any) => vo
}
export function WithKeys(obj: any, keys: string[], addKeyFunc?: (dup: any) => void) {
- var dup: any = {};
+ const dup: any = {};
keys.forEach(key => dup[key] = obj[key]);
addKeyFunc && addKeyFunc(dup);
return dup;
}
export function timenow() {
- var now = new Date();
+ const now = new Date();
let ampm = 'am';
let h = now.getHours();
let m: any = now.getMinutes();
- let s: any = now.getSeconds();
+ const s: any = now.getSeconds();
if (h >= 12) {
if (h > 12) h -= 12;
ampm = 'pm';
@@ -268,15 +328,16 @@ export function timenow() {
return now.toLocaleDateString() + ' ' + h + ':' + m + ' ' + ampm;
}
-export function aggregateBounds(boundsList: { x: number, y: number, width: number, height: number }[]) {
- return boundsList.reduce((bounds, b) => {
- var [sptX, sptY] = [b.x, b.y];
- let [bptX, bptY] = [sptX + b.width, sptY + b.height];
+export function aggregateBounds(boundsList: { x: number, y: number, width: number, height: number }[], xpad: number, ypad: number) {
+ const bounds = boundsList.reduce((bounds, b) => {
+ const [sptX, sptY] = [b.x, b.y];
+ const [bptX, bptY] = [sptX + b.width, sptY + b.height];
return {
x: Math.min(sptX, bounds.x), y: Math.min(sptY, bounds.y),
r: Math.max(bptX, bounds.r), b: Math.max(bptY, bounds.b)
};
}, { x: Number.MAX_VALUE, y: Number.MAX_VALUE, r: -Number.MAX_VALUE, b: -Number.MAX_VALUE });
+ return { x: bounds.x !== Number.MAX_VALUE ? bounds.x - xpad : bounds.x, y: bounds.y !== Number.MAX_VALUE ? bounds.y - ypad : bounds.y, r: bounds.r !== -Number.MAX_VALUE ? bounds.r + xpad : bounds.r, b: bounds.b !== -Number.MAX_VALUE ? bounds.b + ypad : bounds.b };
}
export function intersectRect(r1: { left: number, top: number, width: number, height: number },
r2: { left: number, top: number, width: number, height: number }) {
@@ -301,17 +362,22 @@ export function returnZero() { return 0; }
export function returnEmptyString() { return ""; }
+export let emptyPath = [];
+
export function emptyFunction() { }
+export function unimplementedFunction() { throw new Error("This function is not implemented, but should be."); }
+
export type Without<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
export type Predicate<K, V> = (entry: [K, V]) => boolean;
export function DeepCopy<K, V>(source: Map<K, V>, predicate?: Predicate<K, V>) {
- let deepCopy = new Map<K, V>();
- let entries = source.entries(), next = entries.next();
+ const deepCopy = new Map<K, V>();
+ const entries = source.entries();
+ let next = entries.next();
while (!next.done) {
- let entry = next.value;
+ const entry = next.value;
if (!predicate || predicate(entry)) {
deepCopy.set(entry[0], entry[1]);
}
@@ -364,13 +430,13 @@ export function smoothScroll(duration: number, element: HTMLElement, to: number)
animateScroll();
}
export function addStyleSheet(styleType: string = "text/css") {
- let style = document.createElement("style");
+ const style = document.createElement("style");
style.type = styleType;
- var sheets = document.head.appendChild(style);
+ const sheets = document.head.appendChild(style);
return (sheets as any).sheet;
}
export function addStyleSheetRule(sheet: any, selector: any, css: any) {
- var propText = typeof css === "string" ? css : Object.keys(css).map(p => p + ":" + (p === "content" ? "'" + css[p] + "'" : css[p])).join(";");
+ const propText = typeof css === "string" ? css : Object.keys(css).map(p => p + ":" + (p === "content" ? "'" + css[p] + "'" : css[p])).join(";");
return sheet.insertRule("." + selector + "{" + propText + "}", sheet.cssRules.length);
}
export function removeStyleSheetRule(sheet: any, rule: number) {
diff --git a/src/client/ClientRecommender.tsx b/src/client/ClientRecommender.tsx
index 83aed0204..cb1674943 100644
--- a/src/client/ClientRecommender.tsx
+++ b/src/client/ClientRecommender.tsx
@@ -14,10 +14,10 @@ import { JSXElement } from "babel-types";
import { RichTextField } from "../new_fields/RichTextField";
import { ToPlainText } from "../new_fields/FieldSymbols";
import { listSpec } from "../new_fields/Schema";
-import { Identified } from "./Network";
import { ComputedField } from "../new_fields/ScriptField";
import { ImageField } from "../new_fields/URLField";
import { KeyphraseQueryView } from "./views/KeyphraseQueryView";
+import { Networking } from "./Network";
export interface RecommenderProps {
title: string;
@@ -103,7 +103,7 @@ export class ClientRecommender extends React.Component<RecommenderProps> {
public computeSimilarities(distance_metric: string) {
const parameters: any = {};
- Identified.PostToServer("/IBMAnalysis", parameters).then(response => {
+ Networking.PostToServer("/IBMAnalysis", parameters).then(response => {
console.log("ANALYSIS RESULTS! ", response);
});
ClientRecommender.Instance.docVectors.forEach((doc: RecommenderDocument) => {
@@ -274,7 +274,7 @@ export class ClientRecommender extends React.Component<RecommenderProps> {
}
}
};
- await Identified.PostToServer("/IBMAnalysis", parameters).then(response => {
+ await Networking.PostToServer("/IBMAnalysis", parameters).then(response => {
const sorted_keywords = response.result.keywords;
if (sorted_keywords.length > 0) {
console.log("IBM keyphrase", sorted_keywords[0]);
diff --git a/src/client/DocServer.ts b/src/client/DocServer.ts
index 2cec1046b..5fcd2547e 100644
--- a/src/client/DocServer.ts
+++ b/src/client/DocServer.ts
@@ -1,5 +1,5 @@
import * as OpenSocket from 'socket.io-client';
-import { MessageStore, Diff, YoutubeQueryTypes } from "./../server/Message";
+import { MessageStore, YoutubeQueryTypes } from "./../server/Message";
import { Opt, Doc } from '../new_fields/Doc';
import { Utils, emptyFunction } from '../Utils';
import { SerializationHelper } from './util/SerializationHelper';
@@ -64,6 +64,24 @@ export namespace DocServer {
}
}
+ const instructions = "This page will automatically refresh after this alert is closed. Expect to reconnect after about 30 seconds.";
+ function alertUser(connectionTerminationReason: string) {
+ switch (connectionTerminationReason) {
+ case "crash":
+ alert(`Dash has temporarily crashed. Administrators have been notified and the server is restarting itself. ${instructions}`);
+ break;
+ case "temporary":
+ alert(`An administrator has chosen to restart the server. ${instructions}`);
+ break;
+ case "exit":
+ alert("An administrator has chosen to kill the server. Do not expect to reconnect until administrators start the server.");
+ break;
+ default:
+ console.log(`Received an unknown ConnectionTerminated message: ${connectionTerminationReason}`);
+ }
+ window.location.reload();
+ }
+
export function init(protocol: string, hostname: string, port: number, identifier: string) {
_cache = {};
GUID = identifier;
@@ -82,6 +100,7 @@ export namespace DocServer {
Utils.AddServerHandler(_socket, MessageStore.UpdateField, respondToUpdate);
Utils.AddServerHandler(_socket, MessageStore.DeleteField, respondToDelete);
Utils.AddServerHandler(_socket, MessageStore.DeleteFields, respondToDelete);
+ Utils.AddServerHandler(_socket, MessageStore.ConnectionTerminated, alertUser);
}
function errorFunc(): never {
@@ -148,7 +167,7 @@ export namespace DocServer {
// an initial pass through the cache to determine whether the document needs to be fetched,
// is already in the process of being fetched or already exists in the
// cache
- let cached = _cache[id];
+ const cached = _cache[id];
if (cached === undefined) {
// NOT CACHED => we'll have to send a request to the server
@@ -195,10 +214,14 @@ export namespace DocServer {
}
export async function getYoutubeChannels() {
- let apiKey = await Utils.EmitCallback(_socket, MessageStore.YoutubeApiQuery, { type: YoutubeQueryTypes.Channels });
+ const apiKey = await Utils.EmitCallback(_socket, MessageStore.YoutubeApiQuery, { type: YoutubeQueryTypes.Channels });
return apiKey;
}
+ export async function analyzeImage(image: string, callback: (result: any) => void) {
+ Utils.EmitCallback(_socket, MessageStore.AnalyzeInk, image, callback);
+ }
+
export function getYoutubeVideos(videoTitle: string, callBack: (videos: any[]) => void) {
Utils.EmitCallback(_socket, MessageStore.YoutubeApiQuery, { type: YoutubeQueryTypes.SearchVideo, userInput: videoTitle }, callBack);
}
@@ -253,9 +276,9 @@ export namespace DocServer {
const fieldMap: { [id: string]: RefField } = {};
const proms: Promise<void>[] = [];
for (const field of fields) {
- if (field !== undefined) {
+ if (field !== undefined && field !== null) {
// deserialize
- let prom = SerializationHelper.Deserialize(field).then(deserialized => {
+ const prom = SerializationHelper.Deserialize(field).then(deserialized => {
fieldMap[field.id] = deserialized;
//overwrite or delete any promises (that we inserted as flags
@@ -411,7 +434,7 @@ export namespace DocServer {
}
let _RespondToUpdate = _respondToUpdateImpl;
- let _respondToDelete = _respondToDeleteImpl;
+ const _respondToDelete = _respondToDeleteImpl;
function respondToUpdate(diff: any) {
_RespondToUpdate(diff);
@@ -420,4 +443,4 @@ export namespace DocServer {
function respondToDelete(ids: string | string[]) {
_respondToDelete(ids);
}
-} \ No newline at end of file
+}
diff --git a/src/client/Network.ts b/src/client/Network.ts
index 75ccb5e99..ccf60f199 100644
--- a/src/client/Network.ts
+++ b/src/client/Network.ts
@@ -1,18 +1,16 @@
import { Utils } from "../Utils";
-import { CurrentUserUtils } from "../server/authentication/models/current_user_utils";
import requestPromise = require('request-promise');
-export namespace Identified {
+export namespace Networking {
export async function FetchFromServer(relativeRoute: string) {
- return (await fetch(relativeRoute, { headers: { userId: CurrentUserUtils.id } })).text();
+ return (await fetch(relativeRoute)).text();
}
export async function PostToServer(relativeRoute: string, body?: any) {
- let options = {
+ const options = {
uri: Utils.prepend(relativeRoute),
method: "POST",
- headers: { userId: CurrentUserUtils.id },
body,
json: true
};
@@ -22,12 +20,10 @@ export namespace Identified {
export async function PostFormDataToServer(relativeRoute: string, formData: FormData) {
const parameters = {
method: 'POST',
- headers: { userId: CurrentUserUtils.id },
- body: formData,
+ body: formData
};
const response = await fetch(relativeRoute, parameters);
- const text = await response.json();
- return text;
+ return response.json();
}
} \ No newline at end of file
diff --git a/src/client/apis/GoogleAuthenticationManager.tsx b/src/client/apis/GoogleAuthenticationManager.tsx
index 01dac3996..ce1277667 100644
--- a/src/client/apis/GoogleAuthenticationManager.tsx
+++ b/src/client/apis/GoogleAuthenticationManager.tsx
@@ -3,8 +3,7 @@ import { observer } from "mobx-react";
import * as React from "react";
import MainViewModal from "../views/MainViewModal";
import { Opt } from "../../new_fields/Doc";
-import { Identified } from "../Network";
-import { RouteStore } from "../../server/RouteStore";
+import { Networking } from "../Network";
import "./GoogleAuthenticationManager.scss";
const AuthenticationUrl = "https://accounts.google.com/o/oauth2/v2/auth";
@@ -31,7 +30,7 @@ export default class GoogleAuthenticationManager extends React.Component<{}> {
}
public fetchOrGenerateAccessToken = async () => {
- let response = await Identified.FetchFromServer(RouteStore.readGoogleAccessToken);
+ const response = await Networking.FetchFromServer("/readGoogleAccessToken");
// if this is an authentication url, activate the UI to register the new access token
if (new RegExp(AuthenticationUrl).test(response)) {
this.isOpen = true;
@@ -39,24 +38,25 @@ export default class GoogleAuthenticationManager extends React.Component<{}> {
return new Promise<string>(async resolve => {
const disposer = reaction(
() => this.authenticationCode,
- authenticationCode => {
- if (authenticationCode) {
- Identified.PostToServer(RouteStore.writeGoogleAccessToken, { authenticationCode }).then(
- ({ access_token, avatar, name }) => {
- runInAction(() => {
- this.avatar = avatar;
- this.username = name;
- });
- this.beginFadeout();
- disposer();
- resolve(access_token);
- },
- action(() => {
- this.hasBeenClicked = false;
- this.success = false;
- })
- );
+ async authenticationCode => {
+ if (!authenticationCode) {
+ return;
}
+ const { access_token, avatar, name } = await Networking.PostToServer(
+ "/writeGoogleAccessToken",
+ { authenticationCode }
+ );
+ runInAction(() => {
+ this.avatar = avatar;
+ this.username = name;
+ });
+ this.beginFadeout();
+ disposer();
+ resolve(access_token);
+ action(() => {
+ this.hasBeenClicked = false;
+ this.success = false;
+ });
}
);
});
diff --git a/src/client/apis/google_docs/GoogleApiClientUtils.ts b/src/client/apis/google_docs/GoogleApiClientUtils.ts
index 1cf01fc3d..d2a79f189 100644
--- a/src/client/apis/google_docs/GoogleApiClientUtils.ts
+++ b/src/client/apis/google_docs/GoogleApiClientUtils.ts
@@ -1,9 +1,8 @@
-import { docs_v1, slides_v1 } from "googleapis";
-import { RouteStore } from "../../../server/RouteStore";
+import { docs_v1 } from "googleapis";
import { Opt } from "../../../new_fields/Doc";
import { isArray } from "util";
import { EditorState } from "prosemirror-state";
-import { Identified } from "../../Network";
+import { Networking } from "../../Network";
export const Pulls = "googleDocsPullCount";
export const Pushes = "googleDocsPushCount";
@@ -77,14 +76,14 @@ export namespace GoogleApiClientUtils {
* @returns the documentId of the newly generated document, or undefined if the creation process fails.
*/
export const create = async (options: CreateOptions): Promise<CreationResult> => {
- const path = `${RouteStore.googleDocs}/Documents/${Actions.Create}`;
+ const path = `/googleDocs/Documents/${Actions.Create}`;
const parameters = {
requestBody: {
title: options.title || `Dash Export (${new Date().toDateString()})`
}
};
try {
- const schema: docs_v1.Schema$Document = await Identified.PostToServer(path, parameters);
+ const schema: docs_v1.Schema$Document = await Networking.PostToServer(path, parameters);
return schema.documentId;
} catch {
return undefined;
@@ -95,7 +94,7 @@ export namespace GoogleApiClientUtils {
export type ExtractResult = { text: string, paragraphs: DeconstructedParagraph[] };
export const extractText = (document: docs_v1.Schema$Document, removeNewlines = false): ExtractResult => {
- let paragraphs = extractParagraphs(document);
+ const paragraphs = extractParagraphs(document);
let text = paragraphs.map(paragraph => paragraph.contents.filter(content => !("inlineObjectId" in content)).map(run => run as docs_v1.Schema$TextRun).join("")).join("");
text = text.substring(0, text.length - 1);
removeNewlines && text.ReplaceAll("\n", "");
@@ -108,14 +107,14 @@ export namespace GoogleApiClientUtils {
const fragments: DeconstructedParagraph[] = [];
if (document.body && document.body.content) {
for (const element of document.body.content) {
- let runs: ContentArray = [];
+ const runs: ContentArray = [];
let bullet: Opt<number>;
if (element.paragraph) {
if (element.paragraph.elements) {
for (const inner of element.paragraph.elements) {
if (inner) {
if (inner.textRun) {
- let run = inner.textRun;
+ const run = inner.textRun;
(run.content || !filterEmpty) && runs.push(inner.textRun);
} else if (inner.inlineObjectElement) {
runs.push(inner.inlineObjectElement);
@@ -154,10 +153,10 @@ export namespace GoogleApiClientUtils {
}
export const retrieve = async (options: RetrieveOptions): Promise<RetrievalResult> => {
- const path = `${RouteStore.googleDocs}/Documents/${Actions.Retrieve}`;
+ const path = `/googleDocs/Documents/${Actions.Retrieve}`;
try {
const parameters = { documentId: options.documentId };
- const schema: RetrievalResult = await Identified.PostToServer(path, parameters);
+ const schema: RetrievalResult = await Networking.PostToServer(path, parameters);
return schema;
} catch {
return undefined;
@@ -165,7 +164,7 @@ export namespace GoogleApiClientUtils {
};
export const update = async (options: UpdateOptions): Promise<UpdateResult> => {
- const path = `${RouteStore.googleDocs}/Documents/${Actions.Update}`;
+ const path = `/googleDocs/Documents/${Actions.Update}`;
const parameters = {
documentId: options.documentId,
requestBody: {
@@ -173,7 +172,7 @@ export namespace GoogleApiClientUtils {
}
};
try {
- const replies: UpdateResult = await Identified.PostToServer(path, parameters);
+ const replies: UpdateResult = await Networking.PostToServer(path, parameters);
return replies;
} catch {
return undefined;
@@ -183,8 +182,8 @@ export namespace GoogleApiClientUtils {
export const read = async (options: ReadOptions): Promise<Opt<ReadResult>> => {
return retrieve({ documentId: options.documentId }).then(document => {
if (document) {
- let title = document.title!;
- let body = Utils.extractText(document, options.removeNewlines).text;
+ const title = document.title!;
+ const body = Utils.extractText(document, options.removeNewlines).text;
return { title, body };
}
});
@@ -193,7 +192,7 @@ export namespace GoogleApiClientUtils {
export const readLines = async (options: ReadOptions): Promise<Opt<ReadLinesResult>> => {
return retrieve({ documentId: options.documentId }).then(document => {
if (document) {
- let title = document.title;
+ const title = document.title;
let bodyLines = Utils.extractText(document).text.split("\n");
options.removeNewlines && (bodyLines = bodyLines.filter(line => line.length));
return { title, bodyLines };
@@ -202,7 +201,7 @@ export namespace GoogleApiClientUtils {
};
export const setStyle = async (options: UpdateOptions) => {
- let replies: any = await update({
+ const replies: any = await update({
documentId: options.documentId,
requests: options.requests
});
@@ -222,7 +221,7 @@ export namespace GoogleApiClientUtils {
let index = options.index;
const mode = options.mode;
if (!(index && mode === WriteMode.Insert)) {
- let schema = await retrieve({ documentId });
+ const schema = await retrieve({ documentId });
if (!schema || !(index = Utils.endOf(schema))) {
return undefined;
}
@@ -249,7 +248,7 @@ export namespace GoogleApiClientUtils {
return undefined;
}
requests.push(...options.content.requests);
- let replies: any = await update({ documentId: documentId, requests });
+ const replies: any = await update({ documentId: documentId, requests });
if ("errors" in replies) {
console.log("Write operation failed:");
console.log(replies.errors.map((error: any) => error.message));
diff --git a/src/client/apis/google_docs/GooglePhotosClientUtils.ts b/src/client/apis/google_docs/GooglePhotosClientUtils.ts
index e93fa6eb4..7e5d5fe1b 100644
--- a/src/client/apis/google_docs/GooglePhotosClientUtils.ts
+++ b/src/client/apis/google_docs/GooglePhotosClientUtils.ts
@@ -1,5 +1,4 @@
import { Utils } from "../../../Utils";
-import { RouteStore } from "../../../server/RouteStore";
import { ImageField } from "../../../new_fields/URLField";
import { Cast, StrCast } from "../../../new_fields/Types";
import { Doc, Opt, DocListCastAsync } from "../../../new_fields/Doc";
@@ -13,7 +12,7 @@ import { Docs, DocumentOptions } from "../../documents/Documents";
import { NewMediaItemResult, MediaItem } from "../../../server/apis/google/SharedTypes";
import { AssertionError } from "assert";
import { DocumentView } from "../../views/nodes/DocumentView";
-import { Identified } from "../../Network";
+import { Networking } from "../../Network";
import GoogleAuthenticationManager from "../GoogleAuthenticationManager";
export namespace GooglePhotos {
@@ -78,6 +77,7 @@ export namespace GooglePhotos {
}
export const CollectionToAlbum = async (options: AlbumCreationOptions): Promise<Opt<AlbumCreationResult>> => {
+ await GoogleAuthenticationManager.Instance.fetchOrGenerateAccessToken();
const { collection, title, descriptionKey, tag } = options;
const dataDocument = Doc.GetProto(collection);
const images = ((await DocListCastAsync(dataDocument.data)) || []).filter(doc => Cast(doc.data, ImageField));
@@ -127,15 +127,16 @@ export namespace GooglePhotos {
export type CollectionConstructor = (data: Array<Doc>, options: DocumentOptions, ...args: any) => Doc;
export const CollectionFromSearch = async (constructor: CollectionConstructor, requested: Opt<Partial<Query.SearchOptions>>): Promise<Doc> => {
- let response = await Query.ContentSearch(requested);
- let uploads = await Transactions.WriteMediaItemsToServer(response);
+ await GoogleAuthenticationManager.Instance.fetchOrGenerateAccessToken();
+ const response = await Query.ContentSearch(requested);
+ const uploads = await Transactions.WriteMediaItemsToServer(response);
const children = uploads.map((upload: Transactions.UploadInformation) => {
- let document = Docs.Create.ImageDocument(Utils.fileUrl(upload.fileNames.clean));
+ const document = Docs.Create.ImageDocument(Utils.fileUrl(upload.fileNames.clean));
document.fillColumn = true;
document.contentSize = upload.contentSize;
return document;
});
- const options = { width: 500, height: 500 };
+ const options = { _width: 500, _height: 500 };
return constructor(children, options);
};
@@ -147,6 +148,7 @@ export namespace GooglePhotos {
const comparator = (a: string, b: string) => (a < b) ? -1 : (a > b ? 1 : 0);
export const TagChildImages = async (collection: Doc) => {
+ await GoogleAuthenticationManager.Instance.fetchOrGenerateAccessToken();
const idMapping = await Cast(collection.googlePhotosIdMapping, Doc);
if (!idMapping) {
throw new Error("Appending image metadata requires that the targeted collection have already been mapped to an album!");
@@ -155,12 +157,12 @@ export namespace GooglePhotos {
const images = (await DocListCastAsync(collection.data))!.map(Doc.GetProto);
images && images.forEach(image => tagMapping.set(image[Id], ContentCategories.NONE));
const values = Object.values(ContentCategories);
- for (let value of values) {
+ for (const value of values) {
if (value !== ContentCategories.NONE) {
const results = await ContentSearch({ included: [value] });
if (results.mediaItems) {
const ids = results.mediaItems.map(item => item.id);
- for (let id of ids) {
+ for (const id of ids) {
const image = await Cast(idMapping[id], Doc);
if (image) {
const key = image[Id];
@@ -218,9 +220,9 @@ export namespace GooglePhotos {
export const AlbumSearch = async (albumId: string, pageSize = 100): Promise<MediaItem[]> => {
const photos = await endpoint();
- let mediaItems: MediaItem[] = [];
+ const mediaItems: MediaItem[] = [];
let nextPageTokenStored: Opt<string> = undefined;
- let found = 0;
+ const found = 0;
do {
const response: any = await photos.mediaItems.search(albumId, pageSize, nextPageTokenStored);
mediaItems.push(...response.mediaItems);
@@ -304,7 +306,7 @@ export namespace GooglePhotos {
};
export const WriteMediaItemsToServer = async (body: { mediaItems: any[] }): Promise<UploadInformation[]> => {
- const uploads = await Identified.PostToServer(RouteStore.googlePhotosMediaDownload, body);
+ const uploads = await Networking.PostToServer("/googlePhotosMediaDownload", body);
return uploads;
};
@@ -325,11 +327,12 @@ export namespace GooglePhotos {
}
export const UploadImages = async (sources: Doc[], album?: AlbumReference, descriptionKey = "caption"): Promise<Opt<ImageUploadResults>> => {
+ await GoogleAuthenticationManager.Instance.fetchOrGenerateAccessToken();
if (album && "title" in album) {
album = await Create.Album(album.title);
}
const media: MediaInput[] = [];
- for (let source of sources) {
+ for (const source of sources) {
const data = Cast(Doc.GetProto(source).data, ImageField);
if (!data) {
return;
@@ -337,11 +340,11 @@ export namespace GooglePhotos {
const url = data.url.href;
const target = Doc.MakeAlias(source);
const description = parseDescription(target, descriptionKey);
- await DocumentView.makeCustomViewClicked(target, undefined);
+ await DocumentView.makeCustomViewClicked(target, undefined, Docs.Create.FreeformDocument);
media.push({ url, description });
}
if (media.length) {
- const results = await Identified.PostToServer(RouteStore.googlePhotosMediaUpload, { media, album });
+ const results = await Networking.PostToServer("/googlePhotosMediaUpload", { media, album });
return results;
}
};
diff --git a/src/client/apis/youtube/YoutubeBox.tsx b/src/client/apis/youtube/YoutubeBox.tsx
index bed812852..c940bba43 100644
--- a/src/client/apis/youtube/YoutubeBox.tsx
+++ b/src/client/apis/youtube/YoutubeBox.tsx
@@ -46,46 +46,46 @@ export class YoutubeBox extends React.Component<FieldViewProps> {
* When component mounts, last search's results are laoded in based on the back up stored
* in the document of the props.
*/
- async componentWillMount() {
+ async componentDidMount() {
//DocServer.getYoutubeChannels();
- let castedSearchBackUp = Cast(this.props.Document.cachedSearchResults, Doc);
- let awaitedBackUp = await castedSearchBackUp;
- let castedDetailBackUp = Cast(this.props.Document.cachedDetails, Doc);
- let awaitedDetails = await castedDetailBackUp;
+ const castedSearchBackUp = Cast(this.props.Document.cachedSearchResults, Doc);
+ const awaitedBackUp = await castedSearchBackUp;
+ const castedDetailBackUp = Cast(this.props.Document.cachedDetails, Doc);
+ const awaitedDetails = await castedDetailBackUp;
if (awaitedBackUp) {
- let jsonList = await DocListCastAsync(awaitedBackUp.json);
- let jsonDetailList = await DocListCastAsync(awaitedDetails!.json);
+ const jsonList = await DocListCastAsync(awaitedBackUp.json);
+ const jsonDetailList = await DocListCastAsync(awaitedDetails!.json);
if (jsonList!.length !== 0) {
runInAction(() => this.searchResultsFound = true);
let index = 0;
//getting the necessary information from backUps and building templates that will be used to map in render
- for (let video of jsonList!) {
-
- let videoId = await Cast(video.id, Doc);
- let id = StrCast(videoId!.videoId);
- let snippet = await Cast(video.snippet, Doc);
- let videoTitle = this.filterYoutubeTitleResult(StrCast(snippet!.title));
- let thumbnail = await Cast(snippet!.thumbnails, Doc);
- let thumbnailMedium = await Cast(thumbnail!.medium, Doc);
- let thumbnailUrl = StrCast(thumbnailMedium!.url);
- let videoDescription = StrCast(snippet!.description);
- let pusblishDate = (this.roundPublishTime(StrCast(snippet!.publishedAt)))!;
- let channelTitle = StrCast(snippet!.channelTitle);
+ for (const video of jsonList!) {
+
+ const videoId = await Cast(video.id, Doc);
+ const id = StrCast(videoId!.videoId);
+ const snippet = await Cast(video.snippet, Doc);
+ const videoTitle = this.filterYoutubeTitleResult(StrCast(snippet!.title));
+ const thumbnail = await Cast(snippet!.thumbnails, Doc);
+ const thumbnailMedium = await Cast(thumbnail!.medium, Doc);
+ const thumbnailUrl = StrCast(thumbnailMedium!.url);
+ const videoDescription = StrCast(snippet!.description);
+ const pusblishDate = (this.roundPublishTime(StrCast(snippet!.publishedAt)))!;
+ const channelTitle = StrCast(snippet!.channelTitle);
let duration: string = "";
let viewCount: string = "";
if (jsonDetailList!.length !== 0) {
- let contentDetails = await Cast(jsonDetailList![index].contentDetails, Doc);
- let statistics = await Cast(jsonDetailList![index].statistics, Doc);
+ const contentDetails = await Cast(jsonDetailList![index].contentDetails, Doc);
+ const statistics = await Cast(jsonDetailList![index].statistics, Doc);
duration = this.convertIsoTimeToDuration(StrCast(contentDetails!.duration));
viewCount = this.abbreviateViewCount(parseInt(StrCast(statistics!.viewCount)))!;
}
index = index + 1;
- let newTemplate: VideoTemplate = { videoId: id, videoTitle: videoTitle, thumbnailUrl: thumbnailUrl, publishDate: pusblishDate, channelTitle: channelTitle, videoDescription: videoDescription, duration: duration, viewCount: viewCount };
+ const newTemplate: VideoTemplate = { videoId: id, videoTitle: videoTitle, thumbnailUrl: thumbnailUrl, publishDate: pusblishDate, channelTitle: channelTitle, videoDescription: videoDescription, duration: duration, viewCount: viewCount };
runInAction(() => this.curVideoTemplates.push(newTemplate));
}
}
@@ -115,7 +115,7 @@ export class YoutubeBox extends React.Component<FieldViewProps> {
*/
onEnterKeyDown = (e: React.KeyboardEvent) => {
if (e.keyCode === 13) {
- let submittedTitle = this.YoutubeSearchElement!.value;
+ const submittedTitle = this.YoutubeSearchElement!.value;
this.YoutubeSearchElement!.value = "";
this.YoutubeSearchElement!.blur();
DocServer.getYoutubeVideos(submittedTitle, this.processesVideoResults);
@@ -184,23 +184,23 @@ export class YoutubeBox extends React.Component<FieldViewProps> {
* difference between today's date and that date, in terms of "ago" to imitate youtube.
*/
roundPublishTime = (publishTime: string) => {
- let date = new Date(publishTime).getTime();
- let curDate = new Date().getTime();
- let timeDif = curDate - date;
- let totalSeconds = timeDif / 1000;
- let totalMin = totalSeconds / 60;
- let totalHours = totalMin / 60;
- let totalDays = totalHours / 24;
- let totalMonths = totalDays / 30.417;
- let totalYears = totalMonths / 12;
-
-
- let truncYears = Math.trunc(totalYears);
- let truncMonths = Math.trunc(totalMonths);
- let truncDays = Math.trunc(totalDays);
- let truncHours = Math.trunc(totalHours);
- let truncMin = Math.trunc(totalMin);
- let truncSec = Math.trunc(totalSeconds);
+ const date = new Date(publishTime).getTime();
+ const curDate = new Date().getTime();
+ const timeDif = curDate - date;
+ const totalSeconds = timeDif / 1000;
+ const totalMin = totalSeconds / 60;
+ const totalHours = totalMin / 60;
+ const totalDays = totalHours / 24;
+ const totalMonths = totalDays / 30.417;
+ const totalYears = totalMonths / 12;
+
+
+ const truncYears = Math.trunc(totalYears);
+ const truncMonths = Math.trunc(totalMonths);
+ const truncDays = Math.trunc(totalDays);
+ const truncHours = Math.trunc(totalHours);
+ const truncMin = Math.trunc(totalMin);
+ const truncSec = Math.trunc(totalSeconds);
let pluralCase = "";
@@ -230,7 +230,7 @@ export class YoutubeBox extends React.Component<FieldViewProps> {
*/
convertIsoTimeToDuration = (isoDur: string) => {
- let convertedTime = isoDur.replace(/D|H|M/g, ":").replace(/P|T|S/g, "").split(":");
+ const convertedTime = isoDur.replace(/D|H|M/g, ":").replace(/P|T|S/g, "").split(":");
if (1 === convertedTime.length) {
2 !== convertedTime[0].length && (convertedTime[0] = "0" + convertedTime[0]), convertedTime[0] = "0:" + convertedTime[0];
@@ -269,10 +269,10 @@ export class YoutubeBox extends React.Component<FieldViewProps> {
if (this.searchResults.length !== 0) {
return <ul>
{this.searchResults.map((video, index) => {
- let filteredTitle = this.filterYoutubeTitleResult(video.snippet.title);
- let channelTitle = video.snippet.channelTitle;
- let videoDescription = video.snippet.description;
- let pusblishDate = this.roundPublishTime(video.snippet.publishedAt);
+ const filteredTitle = this.filterYoutubeTitleResult(video.snippet.title);
+ const channelTitle = video.snippet.channelTitle;
+ const videoDescription = video.snippet.description;
+ const pusblishDate = this.roundPublishTime(video.snippet.publishedAt);
let duration;
let viewCount;
if (this.videoDetails.length !== 0) {
@@ -331,26 +331,26 @@ export class YoutubeBox extends React.Component<FieldViewProps> {
*/
@action
embedVideoOnClick = (videoId: string, filteredTitle: string) => {
- let embeddedUrl = "https://www.youtube.com/embed/" + videoId;
+ const embeddedUrl = "https://www.youtube.com/embed/" + videoId;
this.selectedVideoUrl = embeddedUrl;
- let addFunction = this.props.addDocument!;
- let newVideoX = NumCast(this.props.Document.x);
- let newVideoY = NumCast(this.props.Document.y) + NumCast(this.props.Document.height);
+ const addFunction = this.props.addDocument!;
+ const newVideoX = NumCast(this.props.Document.x);
+ const newVideoY = NumCast(this.props.Document.y) + NumCast(this.props.Document.height);
- addFunction(Docs.Create.VideoDocument(embeddedUrl, { title: filteredTitle, width: 400, height: 315, x: newVideoX, y: newVideoY }));
+ addFunction(Docs.Create.VideoDocument(embeddedUrl, { title: filteredTitle, _width: 400, _height: 315, x: newVideoX, y: newVideoY }));
this.videoClicked = true;
}
render() {
- let content =
+ const content =
<div className="youtubeBox-cont" style={{ width: "100%", height: "100%", position: "absolute" }} onWheel={this.onPostWheel} onPointerDown={this.onPostPointer} onPointerMove={this.onPostPointer} onPointerUp={this.onPostPointer}>
<input type="text" placeholder="Search for a video" onKeyDown={this.onEnterKeyDown} style={{ height: 40, width: "100%", border: "1px solid black", padding: 5, textAlign: "center" }} ref={(e) => this.YoutubeSearchElement = e!} />
{this.renderSearchResultsOrVideo()}
</div>;
- let frozen = !this.props.isSelected() || DocumentDecorations.Instance.Interacting;
+ const frozen = !this.props.isSelected() || DocumentDecorations.Instance.Interacting;
- let classname = "webBox-cont" + (this.props.isSelected() && !InkingControl.Instance.selectedTool && !DocumentDecorations.Instance.Interacting ? "-interactive" : "");
+ const classname = "webBox-cont" + (this.props.isSelected() && !InkingControl.Instance.selectedTool && !DocumentDecorations.Instance.Interacting ? "-interactive" : "");
return (
<>
<div className={classname} >
diff --git a/src/client/cognitive_services/CognitiveServices.ts b/src/client/cognitive_services/CognitiveServices.ts
index 94532aaaa..ce829eb1e 100644
--- a/src/client/cognitive_services/CognitiveServices.ts
+++ b/src/client/cognitive_services/CognitiveServices.ts
@@ -1,8 +1,7 @@
import * as request from "request-promise";
-import { Doc, Field, Opt } from "../../new_fields/Doc";
+import { Doc, Field } from "../../new_fields/Doc";
import { Cast } from "../../new_fields/Types";
import { Docs } from "../documents/Documents";
-import { RouteStore } from "../../server/RouteStore";
import { Utils } from "../../Utils";
import { InkData } from "../../new_fields/InkField";
import { UndoManager } from "../util/UndoManager";
@@ -47,21 +46,20 @@ export enum Confidence {
export namespace CognitiveServices {
const ExecuteQuery = async <D>(service: Service, manager: APIManager<D>, data: D): Promise<any> => {
- return fetch(Utils.prepend(`${RouteStore.cognitiveServices}/${service}`)).then(async response => {
- let apiKey = await response.text();
- if (!apiKey) {
- console.log(`No API key found for ${service}: ensure index.ts has access to a .env file in your root directory`);
- return undefined;
- }
+ const apiKey = await Utils.getApiKey(service);
+ if (!apiKey) {
+ console.log(`No API key found for ${service}: ensure index.ts has access to a .env file in your root directory.`);
+ return undefined;
+ }
- let results: any;
- try {
- results = await manager.requester(apiKey, manager.converter(data), service).then(json => JSON.parse(json));
- } catch {
- results = undefined;
- }
- return results;
- });
+ let results: any;
+ try {
+ results = await manager.requester(apiKey, manager.converter(data), service).then(json => JSON.parse(json));
+ } catch (e) {
+ throw e;
+ results = undefined;
+ }
+ return results;
};
export namespace Image {
@@ -112,14 +110,14 @@ export namespace CognitiveServices {
export namespace Appliers {
export const ProcessImage: AnalysisApplier<string> = async (target: Doc, keys: string[], url: string, service: Service, converter: Converter) => {
- let batch = UndoManager.StartBatch("Image Analysis");
+ const batch = UndoManager.StartBatch("Image Analysis");
- let storageKey = keys[0];
+ const storageKey = keys[0];
if (!url || await Cast(target[storageKey], Doc)) {
return;
}
let toStore: any;
- let results = await ExecuteQuery(service, Manager, url);
+ const results = await ExecuteQuery(service, Manager, url);
if (!results) {
toStore = "Cognitive Services could not process the given image URL.";
} else {
@@ -142,36 +140,32 @@ export namespace CognitiveServices {
export namespace Inking {
- export const Manager: APIManager<InkData> = {
-
- converter: (inkData: InkData): string => {
- let entries = inkData.entries(), next = entries.next();
- let strokes: AzureStrokeData[] = [], id = 0;
- while (!next.done) {
- strokes.push({
- id: id++,
- points: next.value[1].pathData.map(point => `${point.x},${point.y}`).join(","),
- language: "en-US"
- });
- next = entries.next();
- }
+ export const Manager: APIManager<InkData[]> = {
+
+ converter: (inkData: InkData[]): string => {
+ let id = 0;
+ const strokes: AzureStrokeData[] = inkData.map(points => ({
+ id: id++,
+ points: points.map(({ X: x, Y: y }) => `${x},${y}`).join(","),
+ language: "en-US"
+ }));
return JSON.stringify({
version: 1,
language: "en-US",
unit: "mm",
- strokes: strokes
+ strokes
});
},
requester: async (apiKey: string, body: string) => {
- let xhttp = new XMLHttpRequest();
- let serverAddress = "https://api.cognitive.microsoft.com";
- let endpoint = serverAddress + "/inkrecognizer/v1.0-preview/recognize";
+ const xhttp = new XMLHttpRequest();
+ const serverAddress = "https://api.cognitive.microsoft.com";
+ const endpoint = serverAddress + "/inkrecognizer/v1.0-preview/recognize";
- let promisified = (resolve: any, reject: any) => {
+ return new Promise<string>((resolve, reject) => {
xhttp.onreadystatechange = function () {
if (this.readyState === 4) {
- let result = xhttp.responseText;
+ const result = xhttp.responseText;
switch (this.status) {
case 200:
return resolve(result);
@@ -186,30 +180,35 @@ export namespace CognitiveServices {
xhttp.setRequestHeader('Ocp-Apim-Subscription-Key', apiKey);
xhttp.setRequestHeader('Content-Type', 'application/json');
xhttp.send(body);
- };
-
- return new Promise<any>(promisified);
+ });
},
-
};
export namespace Appliers {
- export const ConcatenateHandwriting: AnalysisApplier<InkData> = async (target: Doc, keys: string[], inkData: InkData) => {
- let batch = UndoManager.StartBatch("Ink Analysis");
+ export const ConcatenateHandwriting: AnalysisApplier<InkData[]> = async (target: Doc, keys: string[], inkData: InkData[]) => {
+ const batch = UndoManager.StartBatch("Ink Analysis");
let results = await ExecuteQuery(Service.Handwriting, Manager, inkData);
if (results) {
results.recognitionUnits && (results = results.recognitionUnits);
target[keys[0]] = Docs.Get.DocumentHierarchyFromJson(results, "Ink Analysis");
- let recognizedText = results.map((item: any) => item.recognizedText);
- let individualWords = recognizedText.filter((text: string) => text && text.split(" ").length === 1);
- target[keys[1]] = individualWords.join(" ");
+ const recognizedText = results.map((item: any) => item.recognizedText);
+ const recognizedObjects = results.map((item: any) => item.recognizedObject);
+ const individualWords = recognizedText.filter((text: string) => text && text.split(" ").length === 1);
+ target[keys[1]] = individualWords.length ? individualWords.join(" ") : recognizedObjects.join(", ");
}
batch.end();
};
+ export const InterpretStrokes = async (strokes: InkData[]) => {
+ let results = await ExecuteQuery(Service.Handwriting, Manager, strokes);
+ if (results) {
+ results.recognitionUnits && (results = results.recognitionUnits);
+ }
+ return results;
+ }
}
export interface AzureStrokeData {
diff --git a/src/client/documents/DocumentTypes.ts b/src/client/documents/DocumentTypes.ts
index 32c3e6e80..df056f3e0 100644
--- a/src/client/documents/DocumentTypes.ts
+++ b/src/client/documents/DocumentTypes.ts
@@ -25,5 +25,7 @@ export enum DocumentType {
QUERY = "search",
COLOR = "color",
DOCULINK = "doculink",
- PDFANNO = "pdfanno"
+ PDFANNO = "pdfanno",
+ INK = "ink",
+ DOCUMENT = "document"
} \ No newline at end of file
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 97f7f8bf0..4b5152224 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -19,7 +19,7 @@ import { AggregateFunction } from "../northstar/model/idea/idea";
import { MINIMIZED_ICON_SIZE } from "../views/globalCssVariables.scss";
import { IconBox } from "../views/nodes/IconBox";
import { OmitKeys, JSONUtils } from "../../Utils";
-import { Field, Doc, Opt, DocListCastAsync } from "../../new_fields/Doc";
+import { Field, Doc, Opt, DocListCastAsync, FieldResult, DocListCast } from "../../new_fields/Doc";
import { ImageField, VideoField, AudioField, PdfField, WebField, YoutubeField } from "../../new_fields/URLField";
import { HtmlField } from "../../new_fields/HtmlField";
import { List } from "../../new_fields/List";
@@ -29,16 +29,16 @@ import { listSpec } from "../../new_fields/Schema";
import { DocServer } from "../DocServer";
import { dropActionType } from "../util/DragManager";
import { DateField } from "../../new_fields/DateField";
-import { UndoManager } from "../util/UndoManager";
+import { UndoManager, undoBatch } from "../util/UndoManager";
import { YoutubeBox } from "../apis/youtube/YoutubeBox";
import { CollectionDockingView } from "../views/collections/CollectionDockingView";
import { LinkManager } from "../util/LinkManager";
import { DocumentManager } from "../util/DocumentManager";
import DirectoryImportBox from "../util/Import & Export/DirectoryImportBox";
-import { Scripting, CompileScript } from "../util/Scripting";
+import { Scripting } from "../util/Scripting";
import { ButtonBox } from "../views/nodes/ButtonBox";
import { FontIconBox } from "../views/nodes/FontIconBox";
-import { SchemaHeaderField, RandomPastel } from "../../new_fields/SchemaHeaderField";
+import { SchemaHeaderField } from "../../new_fields/SchemaHeaderField";
import { PresBox } from "../views/nodes/PresBox";
import { ComputedField, ScriptField } from "../../new_fields/ScriptField";
import { ProxyField } from "../../new_fields/Proxy";
@@ -51,40 +51,56 @@ import { PresElementBox } from "../views/presentationview/PresElementBox";
import { QueryBox } from "../views/nodes/QueryBox";
import { ColorBox } from "../views/nodes/ColorBox";
import { DocuLinkBox } from "../views/nodes/DocuLinkBox";
-var requestImageSize = require('../util/request-image-size');
-var path = require('path');
+import { DocumentBox } from "../views/nodes/DocumentBox";
+import { InkingStroke } from "../views/InkingStroke";
+import { InkField } from "../../new_fields/InkField";
+import { InkingControl } from "../views/InkingControl";
+import { RichTextField } from "../../new_fields/RichTextField";
+const requestImageSize = require('../util/request-image-size');
+const path = require('path');
export interface DocumentOptions {
+ _autoHeight?: boolean;
+ _panX?: number;
+ _panY?: number;
+ _width?: number;
+ _height?: number;
+ _nativeWidth?: number;
+ _nativeHeight?: number;
+ _fitWidth?: boolean;
+ _fitToBox?: boolean; // whether a freeformview should zoom/scale to create a shrinkwrapped view of its contents
+ _LODdisable?: boolean;
+ _dropAction?: dropActionType;
+ _chromeStatus?: string;
+ _viewType?: number;
+ _gridGap?: number; // gap between items in masonry view
+ _xMargin?: number; // gap between left edge of document and start of masonry/stacking layouts
+ _yMargin?: number; // gap between top edge of dcoument and start of masonry/stacking layouts
+ _textTemplate?: RichTextField; // template used by a formattedTextBox to create a text box to render
+ _itemIndex?: number; // which item index the carousel viewer is showing
+ _hideSidebar?: boolean; //whether an annotationsidebar should be displayed for text docuemnts
x?: number;
y?: number;
z?: number;
+ layoutKey?: string;
type?: string;
- width?: number;
- height?: number;
- nativeWidth?: number;
- nativeHeight?: number;
title?: string;
- panX?: number;
- panY?: number;
page?: number;
scale?: number;
- fitWidth?: boolean;
+ isDisplayPanel?: boolean; // whether the panel functions as GoldenLayout "stack" used to display documents
forceActive?: boolean;
preventTreeViewOpen?: boolean; // ignores the treeViewOpen Doc flag which allows a treeViewItem's expande/collapse state to be independent of other views of the same document in the tree view
layout?: string | Doc;
hideHeadings?: boolean; // whether stacking view column headings should be hidden
- isTemplateField?: boolean;
+ isTemplateForField?: string; // the field key for which the containing document is a rendering template
isTemplateDoc?: boolean;
templates?: List<string>;
- viewType?: number;
- backgroundColor?: string;
+ backgroundColor?: string | ScriptField;
ignoreClick?: boolean;
lockedPosition?: boolean; // lock the x,y coordinates of the document so that it can't be dragged
lockedTransform?: boolean; // lock the panx,pany and scale parameters of the document so that it be panned/zoomed
opacity?: number;
defaultBackgroundColor?: string;
- dropAction?: dropActionType;
- chromeStatus?: string;
columnWidth?: number;
fontSize?: number;
curPage?: number;
@@ -96,22 +112,37 @@ export interface DocumentOptions {
sectionFilter?: string; // field key used to determine headings for sections in stacking and masonry views
schemaColumns?: List<SchemaHeaderField>;
dockingConfig?: string;
- autoHeight?: boolean;
+ annotationOn?: Doc;
removeDropProperties?: List<string>; // list of properties that should be removed from a document when it is dropped. e.g., a creator button may be forceActive to allow it be dragged, but the forceActive property can be removed from the dropped document
dbDoc?: Doc;
- unchecked?: ScriptField; // returns whether a check box is unchecked
+ ischecked?: ScriptField; // returns whether a font icon box is checked
activePen?: Doc; // which pen document is currently active (used as the radio button state for the 'unhecked' pen tool scripts)
onClick?: ScriptField;
+ onChildClick?: ScriptField; // script given to children of a collection to execute when they are clicked
+ onPointerDown?: ScriptField;
+ onPointerUp?: ScriptField;
dragFactory?: Doc; // document to create when dragging with a suitable onDragStart script
onDragStart?: ScriptField; //script to execute at start of drag operation -- e.g., when a "creator" button is dragged this script generates a different document to drop
+ clipboard?: Doc; //script to execute at start of drag operation -- e.g., when a "creator" button is dragged this script generates a different document to drop
icon?: string;
- gridGap?: number; // gap between items in masonry view
- xMargin?: number; // gap between left edge of document and start of masonry/stacking layouts
- yMargin?: number; // gap between top edge of dcoument and start of masonry/stacking layouts
sourcePanel?: Doc; // panel to display in 'targetContainer' as the result of a button onClick script
targetContainer?: Doc; // document whose proto will be set to 'panel' as the result of a onClick click script
dropConverter?: ScriptField; // script to run when documents are dropped on this Document.
+ strokeWidth?: number;
+ color?: string;
+ treeViewHideTitle?: boolean; // whether to hide the title of a tree view
+ treeViewOpen?: boolean; // whether this document is expanded in a tree view
+ treeViewChecked?: ScriptField; // script to call when a tree view checkbox is checked
+ isFacetFilter?: boolean; // whether document functions as a facet filter in a tree view
+ limitHeight?: number; // maximum height for newly created (eg, from pasting) text documents
// [key: string]: Opt<Field>;
+ pointerHack?: boolean; // for buttons, allows onClick handler to fire onPointerDown
+ isExpanded?: boolean; // is linear view expanded
+ textTransform?: string; // is linear view expanded
+ letterSpacing?: string; // is linear view expanded
+ flexDirection?: "unset" | "row" | "column" | "row-reverse" | "column-reverse";
+ selectedIndex?: number;
+ syntaxColor?: string; // can be applied to text for syntax highlighting all matches in the text
}
class EmptyBox {
@@ -139,19 +170,19 @@ export namespace Docs {
const TemplateMap: TemplateMap = new Map([
[DocumentType.TEXT, {
layout: { view: FormattedTextBox, dataField: data },
- options: { height: 150, backgroundColor: "#f1efeb", defaultBackgroundColor: "#f1efeb" }
+ options: { _height: 150, backgroundColor: "#f1efeb", defaultBackgroundColor: "#f1efeb" }
}],
[DocumentType.HIST, {
layout: { view: HistogramBox, dataField: data },
- options: { height: 300, backgroundColor: "black" }
+ options: { _height: 300, backgroundColor: "black" }
}],
[DocumentType.QUERY, {
layout: { view: QueryBox, dataField: data },
- options: { width: 400 }
+ options: { _width: 400 }
}],
[DocumentType.COLOR, {
layout: { view: ColorBox, dataField: data },
- options: { nativeWidth: 220, nativeHeight: 300 }
+ options: { _nativeWidth: 220, _nativeHeight: 300 }
}],
[DocumentType.IMG, {
layout: { view: ImageBox, dataField: data },
@@ -159,15 +190,19 @@ export namespace Docs {
}],
[DocumentType.WEB, {
layout: { view: WebBox, dataField: data },
- options: { height: 300 }
+ options: { _height: 300 }
}],
[DocumentType.COL, {
layout: { view: CollectionView, dataField: data },
- options: { panX: 0, panY: 0, scale: 1, width: 500, height: 500 }
+ options: { _panX: 0, _panY: 0, scale: 1, _width: 500, _height: 500 }
}],
[DocumentType.KVP, {
layout: { view: KeyValueBox, dataField: data },
- options: { height: 150 }
+ options: { _height: 150 }
+ }],
+ [DocumentType.DOCUMENT, {
+ layout: { view: DocumentBox, dataField: data },
+ options: { _height: 250 }
}],
[DocumentType.VID, {
layout: { view: VideoBox, dataField: data },
@@ -175,19 +210,19 @@ export namespace Docs {
}],
[DocumentType.AUDIO, {
layout: { view: AudioBox, dataField: data },
- options: { height: 35, backgroundColor: "lightGray" }
+ options: { _height: 35, backgroundColor: "lightGray" }
}],
[DocumentType.PDF, {
layout: { view: PDFBox, dataField: data },
- options: { nativeWidth: 1200, curPage: 1 }
+ options: { curPage: 1 }
}],
[DocumentType.ICON, {
layout: { view: IconBox, dataField: data },
- options: { width: Number(MINIMIZED_ICON_SIZE), height: Number(MINIMIZED_ICON_SIZE) },
+ options: { _width: Number(MINIMIZED_ICON_SIZE), _height: Number(MINIMIZED_ICON_SIZE) },
}],
[DocumentType.IMPORT, {
layout: { view: DirectoryImportBox, dataField: data },
- options: { height: 150 }
+ options: { _height: 150 }
}],
[DocumentType.LINKDOC, {
data: new List<Doc>(),
@@ -205,7 +240,7 @@ export namespace Docs {
}],
[DocumentType.FONTICON, {
layout: { view: FontIconBox, dataField: data },
- options: { width: 40, height: 40, borderRounding: "100%" },
+ options: { _width: 40, _height: 40, borderRounding: "100%" },
}],
[DocumentType.RECOMMENDATION, {
layout: { view: RecommendationsBox },
@@ -217,10 +252,14 @@ export namespace Docs {
[DocumentType.PRESELEMENT, {
layout: { view: PresElementBox, dataField: data }
}],
+ [DocumentType.INK, {
+ layout: { view: InkingStroke, dataField: data },
+ options: { backgroundColor: "transparent" }
+ }]
]);
// All document prototypes are initialized with at least these values
- const defaultOptions: DocumentOptions = { x: 0, y: 0, width: 300 };
+ const defaultOptions: DocumentOptions = { x: 0, y: 0, _width: 300 };
const suffix = "Proto";
/**
@@ -238,16 +277,16 @@ export namespace Docs {
ProxyField.initPlugin();
ComputedField.initPlugin();
// non-guid string ids for each document prototype
- let prototypeIds = Object.values(DocumentType).filter(type => type !== DocumentType.NONE).map(type => type + suffix);
+ const prototypeIds = Object.values(DocumentType).filter(type => type !== DocumentType.NONE).map(type => type + suffix);
// fetch the actual prototype documents from the server
- let actualProtos = await DocServer.GetRefFields(prototypeIds);
+ const actualProtos = await DocServer.GetRefFields(prototypeIds);
// update this object to include any default values: DocumentOptions for all prototypes
prototypeIds.map(id => {
- let existing = actualProtos[id] as Doc;
- let type = id.replace(suffix, "") as DocumentType;
+ const existing = actualProtos[id] as Doc;
+ const type = id.replace(suffix, "") as DocumentType;
// get or create prototype of the specified type...
- let target = existing || buildPrototype(type, id);
+ const target = existing || buildPrototype(type, id);
// ...and set it if not undefined (can be undefined only if TemplateMap does not contain
// an entry dedicated to the given DocumentType)
target && PrototypeMap.set(type, target);
@@ -286,19 +325,20 @@ export namespace Docs {
*/
function buildPrototype(type: DocumentType, prototypeId: string): Opt<Doc> {
// load template from type
- let template = TemplateMap.get(type);
+ const template = TemplateMap.get(type);
if (!template) {
return undefined;
}
- let layout = template.layout;
+ const layout = template.layout;
// create title
- let upper = suffix.toUpperCase();
- let title = prototypeId.toUpperCase().replace(upper, `_${upper}`);
+ const upper = suffix.toUpperCase();
+ const title = prototypeId.toUpperCase().replace(upper, `_${upper}`);
// synthesize the default options, the type and title from computed values and
// whatever options pertain to this specific prototype
- let options = { title, type, baseProto: true, ...defaultOptions, ...(template.options || {}) };
+ const options = { title, type, baseProto: true, ...defaultOptions, ...(template.options || {}) };
options.layout = layout.view.LayoutString(layout.dataField);
- return Doc.assign(new Doc(prototypeId, true), { ...options, baseLayout: options.layout });
+ const doc = Doc.assign(new Doc(prototypeId, true), { layoutKey: "layout", ...options });
+ return doc;
}
}
@@ -309,7 +349,8 @@ export namespace Docs {
*/
export namespace Create {
- const delegateKeys = ["x", "y", "width", "height", "panX", "panY", "nativeWidth", "nativeHeight", "dropAction", "forceActive", "fitWidth"];
+ const delegateKeys = ["x", "y", "layoutKey", "_width", "_height", "_panX", "_panY", "_viewType", "_nativeWidth", "_nativeHeight", "_dropAction", "_annotationOn",
+ "_chromeStatus", "_forceActive", "_autoHeight", "_fitWidth", "_LODdisable", "_itemIndex", "_hideSidebar"];
/**
* This function receives the relevant document prototype and uses
@@ -342,12 +383,12 @@ export namespace Docs {
protoProps.isPrototype = true;
- let dataDoc = MakeDataDelegate(proto, protoProps, data);
- let viewDoc = Doc.MakeDelegate(dataDoc, delegId);
+ const dataDoc = MakeDataDelegate(proto, protoProps, data);
+ const viewDoc = Doc.MakeDelegate(dataDoc, delegId);
AudioBox.ActiveRecordings.map(d => DocUtils.MakeLink({ doc: viewDoc }, { doc: d }, "audio link", "link to audio: " + d.title));
- return Doc.assign(viewDoc, delegateProps);
+ return Doc.assign(viewDoc, delegateProps, true);
}
/**
@@ -369,22 +410,21 @@ export namespace Docs {
}
export function ImageDocument(url: string, options: DocumentOptions = {}) {
- let imgField = new ImageField(new URL(url));
- let inst = InstanceFromProto(Prototypes.get(DocumentType.IMG), imgField, { title: path.basename(url), ...options });
+ const imgField = new ImageField(new URL(url));
+ const inst = InstanceFromProto(Prototypes.get(DocumentType.IMG), imgField, { title: path.basename(url), ...options });
let target = imgField.url.href;
if (new RegExp(window.location.origin).test(target)) {
- let extension = path.extname(target);
+ const extension = path.extname(target);
target = `${target.substring(0, target.length - extension.length)}_o${extension}`;
}
- // if (target !== "http://www.cs.brown.edu/") {
requestImageSize(target)
.then((size: any) => {
- let aspect = size.height / size.width;
- if (!inst.nativeWidth) {
- inst.nativeWidth = size.width;
+ const aspect = size.height / size.width;
+ if (!inst._nativeWidth) {
+ inst._nativeWidth = size.width;
}
- inst.nativeHeight = NumCast(inst.nativeWidth) * aspect;
- inst.height = NumCast(inst.width) * aspect;
+ inst._nativeHeight = NumCast(inst._nativeWidth) * aspect;
+ inst._height = NumCast(inst._width) * aspect;
})
.catch((err: any) => console.log(err));
// }
@@ -418,8 +458,16 @@ export namespace Docs {
return InstanceFromProto(Prototypes.get(DocumentType.COLOR), "", options);
}
- export function TextDocument(options: DocumentOptions = {}) {
- return InstanceFromProto(Prototypes.get(DocumentType.TEXT), "", options);
+ export function TextDocument(text: string, options: DocumentOptions = {}) {
+ return InstanceFromProto(Prototypes.get(DocumentType.TEXT), text, options);
+ }
+
+ export function InkDocument(color: string, tool: number, strokeWidth: number, points: { X: number, Y: number }[], options: DocumentOptions = {}) {
+ const doc = InstanceFromProto(Prototypes.get(DocumentType.INK), new InkField(points), options);
+ doc.color = color;
+ doc.strokeWidth = strokeWidth;
+ doc.tool = tool;
+ return doc;
}
export function IconDocument(icon: string, options: DocumentOptions = {}) {
@@ -431,12 +479,12 @@ export namespace Docs {
}
export async function DBDocument(url: string, options: DocumentOptions = {}, columnOptions: DocumentOptions = {}) {
- let schemaName = options.title ? options.title : "-no schema-";
- let ctlog = await Gateway.Instance.GetSchema(url, schemaName);
+ const schemaName = options.title ? options.title : "-no schema-";
+ const ctlog = await Gateway.Instance.GetSchema(url, schemaName);
if (ctlog && ctlog.schemas) {
- let schema = ctlog.schemas[0];
- let schemaDoc = Docs.Create.TreeDocument([], { ...options, nativeWidth: undefined, nativeHeight: undefined, width: 150, height: 100, title: schema.displayName! });
- let schemaDocuments = Cast(schemaDoc.data, listSpec(Doc), []);
+ const schema = ctlog.schemas[0];
+ const schemaDoc = Docs.Create.TreeDocument([], { ...options, _nativeWidth: undefined, _nativeHeight: undefined, _width: 150, _height: 100, title: schema.displayName! });
+ const schemaDocuments = Cast(schemaDoc.data, listSpec(Doc), []);
if (!schemaDocuments) {
return;
}
@@ -447,18 +495,18 @@ export namespace Docs {
if (field instanceof Doc) {
docs.push(field);
} else {
- var atmod = new ColumnAttributeModel(attr);
- let histoOp = new HistogramOperation(schema.displayName!,
+ const atmod = new ColumnAttributeModel(attr);
+ const histoOp = new HistogramOperation(schema.displayName!,
new AttributeTransformationModel(atmod, AggregateFunction.None),
new AttributeTransformationModel(atmod, AggregateFunction.Count),
new AttributeTransformationModel(atmod, AggregateFunction.Count));
- docs.push(Docs.Create.HistogramDocument(histoOp, { ...columnOptions, width: 200, height: 200, title: attr.displayName! }));
+ docs.push(Docs.Create.HistogramDocument(histoOp, { ...columnOptions, _width: 200, _height: 200, title: attr.displayName! }));
}
}));
});
return schemaDoc;
}
- return Docs.Create.TreeDocument([], { width: 50, height: 100, title: schemaName });
+ return Docs.Create.TreeDocument([], { _width: 50, _height: 100, title: schemaName });
}
export function WebDocument(url: string, options: DocumentOptions = {}) {
@@ -473,28 +521,40 @@ export namespace Docs {
return InstanceFromProto(Prototypes.get(DocumentType.KVP), document, { title: document.title + ".kvp", ...options });
}
+ export function DocumentDocument(document?: Doc, options: DocumentOptions = {}) {
+ return InstanceFromProto(Prototypes.get(DocumentType.DOCUMENT), document, { title: document ? document.title + "" : "container", ...options });
+ }
+
export function FreeformDocument(documents: Array<Doc>, options: DocumentOptions, id?: string) {
- return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, viewType: CollectionViewType.Freeform }, id);
+ return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { _chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, _viewType: CollectionViewType.Freeform }, id);
}
export function LinearDocument(documents: Array<Doc>, options: DocumentOptions, id?: string) {
- return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { chromeStatus: "collapsed", backgroundColor: "black", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, viewType: CollectionViewType.Linear }, id);
+ return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { _chromeStatus: "collapsed", backgroundColor: "black", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, _viewType: CollectionViewType.Linear }, id);
+ }
+
+ export function CarouselDocument(documents: Array<Doc>, options: DocumentOptions) {
+ return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { _chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, _viewType: CollectionViewType.Carousel });
}
export function SchemaDocument(schemaColumns: SchemaHeaderField[], documents: Array<Doc>, options: DocumentOptions) {
- return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { chromeStatus: "collapsed", schemaColumns: new List(schemaColumns), ...options, viewType: CollectionViewType.Schema });
+ return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { _chromeStatus: "collapsed", schemaColumns: new List(schemaColumns), ...options, _viewType: CollectionViewType.Schema });
}
export function TreeDocument(documents: Array<Doc>, options: DocumentOptions) {
- return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, viewType: CollectionViewType.Tree });
+ return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { _chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, _viewType: CollectionViewType.Tree });
}
export function StackingDocument(documents: Array<Doc>, options: DocumentOptions) {
- return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, viewType: CollectionViewType.Stacking });
+ return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { _chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, _viewType: CollectionViewType.Stacking });
+ }
+
+ export function MulticolumnDocument(documents: Array<Doc>, options: DocumentOptions) {
+ return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { _chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, _viewType: CollectionViewType.Multicolumn });
}
export function MasonryDocument(documents: Array<Doc>, options: DocumentOptions) {
- return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, viewType: CollectionViewType.Masonry });
+ return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { _chromeStatus: "collapsed", schemaColumns: new List([new SchemaHeaderField("title", "#f1efeb")]), ...options, _viewType: CollectionViewType.Masonry });
}
export function ButtonDocument(options?: DocumentOptions) {
@@ -515,7 +575,9 @@ export namespace Docs {
}
export function DockDocument(documents: Array<Doc>, config: string, options: DocumentOptions, id?: string) {
- return InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { ...options, viewType: CollectionViewType.Docking, dockingConfig: config }, id);
+ const inst = InstanceFromProto(Prototypes.get(DocumentType.COL), new List(documents), { ...options, _viewType: CollectionViewType.Docking, dockingConfig: config }, id);
+ Doc.GetProto(inst).data = new List<Doc>(documents);
+ return inst;
}
export function DirectoryImportDocument(options: DocumentOptions = {}) {
@@ -528,16 +590,17 @@ export namespace Docs {
export type DocConfig = {
doc: Doc,
- initialWidth?: number
+ initialWidth?: number,
+ path?: Doc[]
};
export function StandardCollectionDockingDocument(configs: Array<DocConfig>, options: DocumentOptions, id?: string, type: string = "row") {
- let layoutConfig = {
+ const layoutConfig = {
content: [
{
type: type,
content: [
- ...configs.map(config => CollectionDockingView.makeDocumentConfig(config.doc, undefined, config.initialWidth))
+ ...configs.map(config => CollectionDockingView.makeDocumentConfig(config.doc, undefined, config.initialWidth, config.path))
]
}
]
@@ -597,7 +660,8 @@ export namespace Docs {
* might involve arbitrary recursion (since toField might itself call convertObject)
*/
const convertObject = (object: any, title?: string): Doc => {
- let target = new Doc(), result: Opt<Field>;
+ const target = new Doc();
+ let result: Opt<Field>;
Object.keys(object).map(key => (result = toField(object[key], key)) && (target[key] = result));
title && !target.title && (target.title = title);
return target;
@@ -611,7 +675,8 @@ export namespace Docs {
* might involve arbitrary recursion (since toField might itself call convertList)
*/
const convertList = (list: Array<any>): List<Field> => {
- let target = new List(), result: Opt<Field>;
+ const target = new List();
+ let result: Opt<Field>;
list.map(item => (result = toField(item)) && target.push(result));
return target;
};
@@ -630,44 +695,89 @@ export namespace Docs {
throw new Error(`How did ${data} of type ${typeof data} end up in JSON?`);
};
+ export function DocumentFromField(target: Doc, fieldKey: string, proto?: Doc, options?: DocumentOptions): Doc | undefined {
+ let created: Doc | undefined;
+ let layout: ((fieldKey: string) => string) | undefined;
+ const field = target[fieldKey];
+ const resolved = options || {};
+ if (field instanceof ImageField) {
+ created = Docs.Create.ImageDocument((field).url.href, resolved);
+ layout = ImageBox.LayoutString;
+ } else if (field instanceof Doc) {
+ created = field;
+ } else if (field instanceof VideoField) {
+ created = Docs.Create.VideoDocument((field).url.href, resolved);
+ layout = VideoBox.LayoutString;
+ } else if (field instanceof PdfField) {
+ created = Docs.Create.PdfDocument((field).url.href, resolved);
+ layout = PDFBox.LayoutString;
+ } else if (field instanceof IconField) {
+ created = Docs.Create.IconDocument((field).icon, resolved);
+ layout = IconBox.LayoutString;
+ } else if (field instanceof AudioField) {
+ created = Docs.Create.AudioDocument((field).url.href, resolved);
+ layout = AudioBox.LayoutString;
+ } else if (field instanceof HistogramField) {
+ created = Docs.Create.HistogramDocument((field).HistoOp, resolved);
+ layout = HistogramBox.LayoutString;
+ } else if (field instanceof InkField) {
+ const { selectedColor, selectedWidth, selectedTool } = InkingControl.Instance;
+ created = Docs.Create.InkDocument(selectedColor, selectedTool, Number(selectedWidth), (field).inkData, resolved);
+ layout = InkingStroke.LayoutString;
+ } else if (field instanceof List && field[0] instanceof Doc) {
+ created = Docs.Create.StackingDocument(DocListCast(field), resolved);
+ layout = CollectionView.LayoutString;
+ } else {
+ created = Docs.Create.TextDocument("", { ...{ _width: 200, _height: 25, _autoHeight: true }, ...resolved });
+ layout = FormattedTextBox.LayoutString;
+ }
+ created.layout = layout?.(fieldKey);
+ created.title = fieldKey;
+ proto && (created.proto = Doc.GetProto(proto));
+ return created;
+ }
+
export async function DocumentFromType(type: string, path: string, options: DocumentOptions): Promise<Opt<Doc>> {
let ctor: ((path: string, options: DocumentOptions) => (Doc | Promise<Doc | undefined>)) | undefined = undefined;
if (type.indexOf("image") !== -1) {
ctor = Docs.Create.ImageDocument;
+ if (!options._width) options._width = 300;
}
if (type.indexOf("video") !== -1) {
ctor = Docs.Create.VideoDocument;
+ if (!options._width) options._width = 600;
+ if (!options._height) options._height = options._width * 2 / 3;
}
if (type.indexOf("audio") !== -1) {
ctor = Docs.Create.AudioDocument;
}
if (type.indexOf("pdf") !== -1) {
ctor = Docs.Create.PdfDocument;
- options.nativeWidth = 1200;
- options.nativeHeight = 1200;
+ if (!options._width) options._width = 400;
+ if (!options._height) options._height = options._width * 1200 / 927;
}
if (type.indexOf("excel") !== -1) {
ctor = Docs.Create.DBDocument;
- options.dropAction = "copy";
+ options._dropAction = "copy";
}
if (type.indexOf("html") !== -1) {
if (path.includes(window.location.hostname)) {
- let s = path.split('/');
- let id = s[s.length - 1];
+ const s = path.split('/');
+ const id = s[s.length - 1];
return DocServer.GetRefField(id).then(field => {
if (field instanceof Doc) {
- let alias = Doc.MakeAlias(field);
+ const alias = Doc.MakeAlias(field);
alias.x = options.x || 0;
alias.y = options.y || 0;
- alias.width = options.width || 300;
- alias.height = options.height || options.width || 300;
+ alias._width = options._width || 300;
+ alias._height = options._height || options._width || 300;
return alias;
}
return undefined;
});
}
ctor = Docs.Create.WebDocument;
- options = { height: options.width, ...options, title: path, nativeWidth: undefined };
+ options = { _height: options._width, ...options, title: path, _nativeWidth: undefined };
}
return ctor ? ctor(path, options) : undefined;
}
@@ -693,9 +803,9 @@ export namespace DocUtils {
DocListCastAsync(promoteDoc.links).then(links => {
links && links.map(async link => {
if (link) {
- let a1 = await Cast(link.anchor1, Doc);
+ const a1 = await Cast(link.anchor1, Doc);
if (a1 && Doc.AreProtosEqual(a1, promoteDoc)) link.anchor1 = copy;
- let a2 = await Cast(link.anchor2, Doc);
+ const a2 = await Cast(link.anchor2, Doc);
if (a2 && Doc.AreProtosEqual(a2, promoteDoc)) link.anchor2 = copy;
LinkManager.Instance.deleteLink(link);
LinkManager.Instance.addLink(link);
@@ -708,11 +818,11 @@ export namespace DocUtils {
}
export function MakeLink(source: { doc: Doc, ctx?: Doc }, target: { doc: Doc, ctx?: Doc }, title: string = "", description: string = "", id?: string) {
- let sv = DocumentManager.Instance.getDocumentView(source.doc);
+ const sv = DocumentManager.Instance.getDocumentView(source.doc);
if (sv && sv.props.ContainingCollectionDoc === target.doc) return;
if (target.doc === CurrentUserUtils.UserDocument) return undefined;
- let linkDocProto = new Doc(id, true);
+ const linkDocProto = new Doc(id, true);
UndoManager.RunInBatch(() => {
linkDocProto.type = DocumentType.LINK;
@@ -728,8 +838,8 @@ export namespace DocUtils {
linkDocProto.anchor2Groups = new List<Doc>([]);
linkDocProto.anchor1Timecode = source.doc.currentTimecode;
linkDocProto.anchor2Timecode = target.doc.currentTimecode;
- linkDocProto.layoutKey1 = DocuLinkBox.LayoutString("anchor1");
- linkDocProto.layoutKey2 = DocuLinkBox.LayoutString("anchor2");
+ linkDocProto.layout_key1 = DocuLinkBox.LayoutString("anchor1");
+ linkDocProto.layout_key2 = DocuLinkBox.LayoutString("anchor2");
linkDocProto.width = linkDocProto.height = 0;
linkDocProto.isBackground = true;
linkDocProto.isButton = true;
diff --git a/src/client/northstar/dash-fields/HistogramField.ts b/src/client/northstar/dash-fields/HistogramField.ts
index e6f32272e..076516977 100644
--- a/src/client/northstar/dash-fields/HistogramField.ts
+++ b/src/client/northstar/dash-fields/HistogramField.ts
@@ -7,10 +7,10 @@ import { ObjectField } from "../../../new_fields/ObjectField";
import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils";
import { OmitKeys } from "../../../Utils";
import { Deserializable } from "../../util/SerializationHelper";
-import { Copy, ToScriptString } from "../../../new_fields/FieldSymbols";
+import { Copy, ToScriptString, ToString } from "../../../new_fields/FieldSymbols";
function serialize(field: HistogramField) {
- let obj = OmitKeys(field, ['Links', 'BrushLinks', 'Result', 'BrushColors', 'FilterModels', 'FilterOperand']).omit;
+ const obj = OmitKeys(field, ['Links', 'BrushLinks', 'Result', 'BrushColors', 'FilterModels', 'FilterOperand']).omit;
return obj;
}
@@ -19,7 +19,7 @@ function deserialize(jp: any) {
let Y: AttributeTransformationModel | undefined;
let V: AttributeTransformationModel | undefined;
- let schema = CurrentUserUtils.GetNorthstarSchema(jp.SchemaName);
+ const schema = CurrentUserUtils.GetNorthstarSchema(jp.SchemaName);
if (schema) {
CurrentUserUtils.GetAllNorthstarColumnAttributes(schema).map(attr => {
if (attr.displayName === jp.X.AttributeModel.Attribute.DisplayName) {
@@ -52,12 +52,15 @@ export class HistogramField extends ObjectField {
}
[Copy]() {
- let y = this.HistoOp;
- let z = this.HistoOp.Copy;
+ // const y = this.HistoOp;
+ // const z = this.HistoOp.Copy;
return new HistogramField(HistogramOperation.Duplicate(this.HistoOp));
}
[ToScriptString]() {
return this.toString();
}
+ [ToString]() {
+ return this.toString();
+ }
} \ No newline at end of file
diff --git a/src/client/northstar/dash-nodes/HistogramBinPrimitiveCollection.ts b/src/client/northstar/dash-nodes/HistogramBinPrimitiveCollection.ts
index 3e9145a1b..6b36ffc9e 100644
--- a/src/client/northstar/dash-nodes/HistogramBinPrimitiveCollection.ts
+++ b/src/client/northstar/dash-nodes/HistogramBinPrimitiveCollection.ts
@@ -3,7 +3,7 @@ import { AttributeTransformationModel } from "../../northstar/core/attribute/Att
import { ChartType } from '../../northstar/model/binRanges/VisualBinRange';
import { AggregateFunction, Bin, Brush, DoubleValueAggregateResult, HistogramResult, MarginAggregateParameters, MarginAggregateResult } from "../../northstar/model/idea/idea";
import { ModelHelpers } from "../../northstar/model/ModelHelpers";
-import { LABColor } from '../../northstar/utils/LABcolor';
+import { LABColor } from '../../northstar/utils/LABColor';
import { PIXIRectangle } from "../../northstar/utils/MathUtil";
import { StyleConstants } from "../../northstar/utils/StyleContants";
import { HistogramBox } from "./HistogramBox";
@@ -237,4 +237,4 @@ export class HistogramBinPrimitiveCollection {
// }
return StyleConstants.HIGHLIGHT_COLOR;
}
-} \ No newline at end of file
+}
diff --git a/src/client/northstar/dash-nodes/HistogramBox.tsx b/src/client/northstar/dash-nodes/HistogramBox.tsx
index 854135648..8fee53fb9 100644
--- a/src/client/northstar/dash-nodes/HistogramBox.tsx
+++ b/src/client/northstar/dash-nodes/HistogramBox.tsx
@@ -46,8 +46,8 @@ export class HistogramBox extends React.Component<FieldViewProps> {
@action
dropX = (e: Event, de: DragManager.DropEvent) => {
- if (de.data instanceof DragManager.DocumentDragData) {
- let h = Cast(de.data.draggedDocuments[0].data, HistogramField);
+ if (de.complete.docDragData) {
+ let h = Cast(de.complete.docDragData.draggedDocuments[0].data, HistogramField);
if (h) {
this.HistoOp.X = h.HistoOp.X;
}
@@ -57,8 +57,8 @@ export class HistogramBox extends React.Component<FieldViewProps> {
}
@action
dropY = (e: Event, de: DragManager.DropEvent) => {
- if (de.data instanceof DragManager.DocumentDragData) {
- let h = Cast(de.data.draggedDocuments[0].data, HistogramField);
+ if (de.complete.docDragData) {
+ let h = Cast(de.complete.docDragData.draggedDocuments[0].data, HistogramField);
if (h) {
this.HistoOp.Y = h.HistoOp.X;
}
@@ -78,10 +78,10 @@ export class HistogramBox extends React.Component<FieldViewProps> {
componentDidMount() {
if (this._dropXRef.current) {
- this._dropXDisposer = DragManager.MakeDropTarget(this._dropXRef.current, { handlers: { drop: this.dropX.bind(this) } });
+ this._dropXDisposer = DragManager.MakeDropTarget(this._dropXRef.current, this.dropX.bind(this));
}
if (this._dropYRef.current) {
- this._dropYDisposer = DragManager.MakeDropTarget(this._dropYRef.current, { handlers: { drop: this.dropY.bind(this) } });
+ this._dropYDisposer = DragManager.MakeDropTarget(this._dropYRef.current, this.dropY.bind(this));
}
reaction(() => CurrentUserUtils.NorthstarDBCatalog, (catalog?: Catalog) => this.activateHistogramOperation(catalog), { fireImmediately: true });
reaction(() => [this.VisualBinRanges && this.VisualBinRanges.slice()], () => this.SizeConverter.SetVisualBinRanges(this.VisualBinRanges));
diff --git a/src/client/northstar/dash-nodes/HistogramBoxPrimitives.tsx b/src/client/northstar/dash-nodes/HistogramBoxPrimitives.tsx
index 5a16b3782..66d91cc1d 100644
--- a/src/client/northstar/dash-nodes/HistogramBoxPrimitives.tsx
+++ b/src/client/northstar/dash-nodes/HistogramBoxPrimitives.tsx
@@ -5,7 +5,7 @@ import { Utils as DashUtils, emptyFunction } from '../../../Utils';
import { FilterModel } from "../../northstar/core/filter/FilterModel";
import { ModelHelpers } from "../../northstar/model/ModelHelpers";
import { ArrayUtil } from "../../northstar/utils/ArrayUtil";
-import { LABColor } from '../../northstar/utils/LABcolor';
+import { LABColor } from '../../northstar/utils/LABColor';
import { PIXIRectangle } from "../../northstar/utils/MathUtil";
import { StyleConstants } from "../../northstar/utils/StyleContants";
import { HistogramBinPrimitiveCollection, HistogramBinPrimitive } from "./HistogramBinPrimitiveCollection";
@@ -119,4 +119,4 @@ export class HistogramBoxPrimitives extends React.Component<HistogramPrimitivesP
</svg>
</div>;
}
-} \ No newline at end of file
+}
diff --git a/src/client/northstar/model/binRanges/QuantitativeVisualBinRange.ts b/src/client/northstar/model/binRanges/QuantitativeVisualBinRange.ts
index c579c8e5f..7bc097e1d 100644
--- a/src/client/northstar/model/binRanges/QuantitativeVisualBinRange.ts
+++ b/src/client/northstar/model/binRanges/QuantitativeVisualBinRange.ts
@@ -37,7 +37,7 @@ export class QuantitativeVisualBinRange extends VisualBinRange {
}
public GetBins(): number[] {
- let bins = new Array<number>();
+ const bins = new Array<number>();
for (let v: number = this.DataBinRange.minValue!; v < this.DataBinRange.maxValue!; v += this.DataBinRange.step!) {
bins.push(v);
@@ -46,8 +46,8 @@ export class QuantitativeVisualBinRange extends VisualBinRange {
}
public static Initialize(dataMinValue: number, dataMaxValue: number, targetBinNumber: number, isIntegerRange: boolean): QuantitativeVisualBinRange {
- let extent = QuantitativeVisualBinRange.getExtent(dataMinValue, dataMaxValue, targetBinNumber, isIntegerRange);
- let dataBinRange = new QuantitativeBinRange();
+ const extent = QuantitativeVisualBinRange.getExtent(dataMinValue, dataMaxValue, targetBinNumber, isIntegerRange);
+ const dataBinRange = new QuantitativeBinRange();
dataBinRange.minValue = extent[0];
dataBinRange.maxValue = extent[1];
dataBinRange.step = extent[2];
@@ -60,10 +60,10 @@ export class QuantitativeVisualBinRange extends VisualBinRange {
// dataMin -= 0.1;
dataMax += 0.1;
}
- let span = dataMax - dataMin;
+ const span = dataMax - dataMin;
let step = Math.pow(10, Math.floor(Math.log10(span / m)));
- let err = m / span * step;
+ const err = m / span * step;
if (err <= .15) {
step *= 10;
@@ -78,9 +78,9 @@ export class QuantitativeVisualBinRange extends VisualBinRange {
if (isIntegerRange) {
step = Math.ceil(step);
}
- let ret: number[] = new Array<number>(3);
- let minDivStep = Math.floor(dataMin / step);
- let maxDivStep = Math.floor(dataMax / step);
+ const ret: number[] = new Array<number>(3);
+ const minDivStep = Math.floor(dataMin / step);
+ const maxDivStep = Math.floor(dataMax / step);
ret[0] = minDivStep * step; // Math.floor(Math.Round(dataMin, 8)/step)*step;
ret[1] = maxDivStep * step + step; // Math.floor(Math.Round(dataMax, 8)/step)*step + step;
ret[2] = step;
diff --git a/src/client/northstar/operations/BaseOperation.ts b/src/client/northstar/operations/BaseOperation.ts
index 0d1361ebf..013f2244e 100644
--- a/src/client/northstar/operations/BaseOperation.ts
+++ b/src/client/northstar/operations/BaseOperation.ts
@@ -44,12 +44,12 @@ export abstract class BaseOperation {
}
}
- let operationParameters = this.CreateOperationParameters();
+ const operationParameters = this.CreateOperationParameters();
if (this.Result) {
this.Result.progress = 0;
} // bcz: used to set Result to undefined, but that causes the display to blink
this.Error = "";
- let salt = Math.random().toString();
+ const salt = Math.random().toString();
this.RequestSalt = salt;
if (!operationParameters) {
@@ -59,27 +59,27 @@ export abstract class BaseOperation {
this.ComputationStarted = true;
//let start = performance.now();
- let promise = Gateway.Instance.StartOperation(operationParameters.toJSON());
+ const promise = Gateway.Instance.StartOperation(operationParameters.toJSON());
promise.catch(err => {
action(() => {
this.Error = err;
console.error(err);
});
});
- let operationReference = await promise;
+ const operationReference = await promise;
if (operationReference) {
this.OperationReference = operationReference;
- let resultParameters = new ResultParameters();
+ const resultParameters = new ResultParameters();
resultParameters.operationReference = operationReference;
- let pollPromise = new PollPromise(salt, operationReference);
+ const pollPromise = new PollPromise(salt, operationReference);
BaseOperation._currentOperations.set(this.Id, pollPromise);
pollPromise.Start(async () => {
- let result = await Gateway.Instance.GetResult(resultParameters.toJSON());
+ const result = await Gateway.Instance.GetResult(resultParameters.toJSON());
if (result instanceof ErrorResult) {
throw new Error((result).message);
}
diff --git a/src/client/northstar/utils/MathUtil.ts b/src/client/northstar/utils/MathUtil.ts
index 4b44f40c3..5def5e704 100644
--- a/src/client/northstar/utils/MathUtil.ts
+++ b/src/client/northstar/utils/MathUtil.ts
@@ -92,37 +92,37 @@ export class MathUtil {
public static DistToLineSegment(v: PIXIPoint, w: PIXIPoint, p: PIXIPoint) {
// Return minimum distance between line segment vw and point p
- var l2 = MathUtil.DistSquared(v, w); // i.e. |w-v|^2 - avoid a sqrt
+ const l2 = MathUtil.DistSquared(v, w); // i.e. |w-v|^2 - avoid a sqrt
if (l2 === 0.0) return MathUtil.Dist(p, v); // v === w case
// Consider the line extending the segment, parameterized as v + t (w - v).
// We find projection of point p onto the line.
// It falls where t = [(p-v) . (w-v)] / |w-v|^2
// We clamp t from [0,1] to handle points outside the segment vw.
- var dot = MathUtil.Dot(
+ const dot = MathUtil.Dot(
MathUtil.SubtractPoint(p, v),
MathUtil.SubtractPoint(w, v)) / l2;
- var t = Math.max(0, Math.min(1, dot));
+ const t = Math.max(0, Math.min(1, dot));
// Projection falls on the segment
- var projection = MathUtil.AddPoint(v,
+ const projection = MathUtil.AddPoint(v,
MathUtil.MultiplyConstant(
MathUtil.SubtractPoint(w, v), t));
return MathUtil.Dist(p, projection);
}
public static LineSegmentIntersection(ps1: PIXIPoint, pe1: PIXIPoint, ps2: PIXIPoint, pe2: PIXIPoint): PIXIPoint | undefined {
- var a1 = pe1.y - ps1.y;
- var b1 = ps1.x - pe1.x;
+ const a1 = pe1.y - ps1.y;
+ const b1 = ps1.x - pe1.x;
- var a2 = pe2.y - ps2.y;
- var b2 = ps2.x - pe2.x;
+ const a2 = pe2.y - ps2.y;
+ const b2 = ps2.x - pe2.x;
- var delta = a1 * b2 - a2 * b1;
+ const delta = a1 * b2 - a2 * b1;
if (delta === 0) {
return undefined;
}
- var c2 = a2 * ps2.x + b2 * ps2.y;
- var c1 = a1 * ps1.x + b1 * ps1.y;
- var invdelta = 1 / delta;
+ const c2 = a2 * ps2.x + b2 * ps2.y;
+ const c1 = a1 * ps1.x + b1 * ps1.y;
+ const invdelta = 1 / delta;
return new PIXIPoint((b2 * c1 - b1 * c2) * invdelta, (a1 * c2 - a2 * c1) * invdelta);
}
@@ -144,13 +144,13 @@ export class MathUtil {
}
public static LinePIXIRectangleIntersection(lineFrom: PIXIPoint, lineTo: PIXIPoint, rect: PIXIRectangle): Array<PIXIPoint> {
- var r1 = new PIXIPoint(rect.left, rect.top);
- var r2 = new PIXIPoint(rect.right, rect.top);
- var r3 = new PIXIPoint(rect.right, rect.bottom);
- var r4 = new PIXIPoint(rect.left, rect.bottom);
- var ret = new Array<PIXIPoint>();
- var dist = this.Dist(lineFrom, lineTo);
- var inter = this.LineSegmentIntersection(lineFrom, lineTo, r1, r2);
+ const r1 = new PIXIPoint(rect.left, rect.top);
+ const r2 = new PIXIPoint(rect.right, rect.top);
+ const r3 = new PIXIPoint(rect.right, rect.bottom);
+ const r4 = new PIXIPoint(rect.left, rect.bottom);
+ const ret = new Array<PIXIPoint>();
+ const dist = this.Dist(lineFrom, lineTo);
+ let inter = this.LineSegmentIntersection(lineFrom, lineTo, r1, r2);
if (inter && this.PointInPIXIRectangle(inter, rect) &&
this.Dist(inter, lineFrom) < dist && this.Dist(inter, lineTo) < dist) {
ret.push(inter);
@@ -190,7 +190,7 @@ export class MathUtil {
}
public static Normalize(p1: PIXIPoint) {
- var d = this.Length(p1);
+ const d = this.Length(p1);
return new PIXIPoint(p1.x / d, p1.y / d);
}
@@ -236,8 +236,8 @@ export class MathUtil {
}
public static Combinations<T>(chars: T[]) {
- let result = new Array<T>();
- let f = (prefix: any, chars: any) => {
+ const result = new Array<T>();
+ const f = (prefix: any, chars: any) => {
for (let i = 0; i < chars.length; i++) {
result.push(prefix.concat(chars[i]));
f(prefix.concat(chars[i]), chars.slice(i + 1));
diff --git a/src/client/util/DictationManager.ts b/src/client/util/DictationManager.ts
index 6bbd3d0ed..3394cb93d 100644
--- a/src/client/util/DictationManager.ts
+++ b/src/client/util/DictationManager.ts
@@ -11,7 +11,6 @@ import { Cast, CastCtor } from "../../new_fields/Types";
import { listSpec } from "../../new_fields/Schema";
import { AudioField, ImageField } from "../../new_fields/URLField";
import { HistogramField } from "../northstar/dash-fields/HistogramField";
-import { MainView } from "../views/MainView";
import { Utils } from "../../Utils";
import { RichTextField } from "../../new_fields/RichTextField";
import { DictationOverlay } from "../views/DictationOverlay";
@@ -48,7 +47,7 @@ export namespace DictationManager {
export const Infringed = "unable to process: dictation manager still involved in previous session";
const browser = (() => {
- let identifier = navigator.userAgent.toLowerCase();
+ const identifier = navigator.userAgent.toLowerCase();
if (identifier.indexOf("safari") >= 0) {
return "Safari";
}
@@ -90,7 +89,7 @@ export namespace DictationManager {
export const listen = async (options?: Partial<ListeningOptions>) => {
let results: string | undefined;
- let overlay = options !== undefined && options.useOverlay;
+ const overlay = options !== undefined && options.useOverlay;
if (overlay) {
DictationOverlay.Instance.dictationOverlayVisible = true;
DictationOverlay.Instance.isListening = { interim: false };
@@ -102,7 +101,7 @@ export namespace DictationManager {
Utils.CopyText(results);
if (overlay) {
DictationOverlay.Instance.isListening = false;
- let execute = options && options.tryExecute;
+ const execute = options && options.tryExecute;
DictationOverlay.Instance.dictatedPhrase = execute ? results.toLowerCase() : results;
DictationOverlay.Instance.dictationSuccess = execute ? await DictationManager.Commands.execute(results) : true;
}
@@ -131,12 +130,12 @@ export namespace DictationManager {
}
isListening = true;
- let handler = options ? options.interimHandler : undefined;
- let continuous = options ? options.continuous : undefined;
- let indefinite = continuous && continuous.indefinite;
- let language = options ? options.language : undefined;
- let intra = options && options.delimiters ? options.delimiters.intra : undefined;
- let inter = options && options.delimiters ? options.delimiters.inter : undefined;
+ const handler = options ? options.interimHandler : undefined;
+ const continuous = options ? options.continuous : undefined;
+ const indefinite = continuous && continuous.indefinite;
+ const language = options ? options.language : undefined;
+ const intra = options && options.delimiters ? options.delimiters.intra : undefined;
+ const inter = options && options.delimiters ? options.delimiters.inter : undefined;
recognizer.onstart = () => console.log("initiating speech recognition session...");
recognizer.interimResults = handler !== undefined;
@@ -177,7 +176,7 @@ export namespace DictationManager {
recognizer.start();
};
- let complete = () => {
+ const complete = () => {
if (indefinite) {
current && sessionResults.push(current);
sessionResults.length && resolve(sessionResults.join(inter || interSession));
@@ -213,8 +212,8 @@ export namespace DictationManager {
};
const synthesize = (e: SpeechRecognitionEvent, delimiter?: string) => {
- let results = e.results;
- let transcripts: string[] = [];
+ const results = e.results;
+ const transcripts: string[] = [];
for (let i = 0; i < results.length; i++) {
transcripts.push(results.item(i).item(0).transcript.trim());
}
@@ -238,18 +237,18 @@ export namespace DictationManager {
export const execute = async (phrase: string) => {
return UndoManager.RunInBatch(async () => {
- let targets = SelectionManager.SelectedDocuments();
+ const targets = SelectionManager.SelectedDocuments();
if (!targets || !targets.length) {
return;
}
phrase = phrase.toLowerCase();
- let entry = Independent.get(phrase);
+ const entry = Independent.get(phrase);
if (entry) {
let success = false;
- let restrictTo = entry.restrictTo;
- for (let target of targets) {
+ const restrictTo = entry.restrictTo;
+ for (const target of targets) {
if (!restrictTo || validate(target, restrictTo)) {
await entry.action(target);
success = true;
@@ -258,14 +257,14 @@ export namespace DictationManager {
return success;
}
- for (let entry of Dependent) {
- let regex = entry.expression;
- let matches = regex.exec(phrase);
+ for (const entry of Dependent) {
+ const regex = entry.expression;
+ const matches = regex.exec(phrase);
regex.lastIndex = 0;
if (matches !== null) {
let success = false;
- let restrictTo = entry.restrictTo;
- for (let target of targets) {
+ const restrictTo = entry.restrictTo;
+ for (const target of targets) {
if (!restrictTo || validate(target, restrictTo)) {
await entry.action(target, matches);
success = true;
@@ -289,7 +288,7 @@ export namespace DictationManager {
]);
const tryCast = (view: DocumentView, type: DocumentType) => {
- let ctor = ConstructorMap.get(type);
+ const ctor = ConstructorMap.get(type);
if (!ctor) {
return false;
}
@@ -297,7 +296,7 @@ export namespace DictationManager {
};
const validate = (target: DocumentView, types: DocumentType[]) => {
- for (let type of types) {
+ for (const type of types) {
if (tryCast(target, type)) {
return true;
}
@@ -306,11 +305,11 @@ export namespace DictationManager {
};
const interpretNumber = (number: string) => {
- let initial = parseInt(number);
+ const initial = parseInt(number);
if (!isNaN(initial)) {
return initial;
}
- let converted = interpreter.wordsToNumbers(number, { fuzzy: true });
+ const converted = interpreter.wordsToNumbers(number, { fuzzy: true });
if (converted === null) {
return NaN;
}
@@ -326,20 +325,19 @@ export namespace DictationManager {
["open fields", {
action: (target: DocumentView) => {
- let kvp = Docs.Create.KVPDocument(target.props.Document, { width: 300, height: 300 });
+ const kvp = Docs.Create.KVPDocument(target.props.Document, { _width: 300, _height: 300 });
target.props.addDocTab(kvp, target.props.DataDoc, "onRight");
}
}],
["new outline", {
action: (target: DocumentView) => {
- let newBox = Docs.Create.TextDocument({ width: 400, height: 200, title: "My Outline" });
- newBox.autoHeight = true;
- let proto = newBox.proto!;
- let prompt = "Press alt + r to start dictating here...";
- let head = 3;
- let anchor = head + prompt.length;
- let proseMirrorState = `{"doc":{"type":"doc","content":[{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"type":"text","text":"${prompt}"}]}]}]}]},"selection":{"type":"text","anchor":${anchor},"head":${head}}}`;
+ const newBox = Docs.Create.TextDocument("", { _width: 400, _height: 200, title: "My Outline", _autoHeight: true });
+ const proto = newBox.proto!;
+ const prompt = "Press alt + r to start dictating here...";
+ const head = 3;
+ const anchor = head + prompt.length;
+ const proseMirrorState = `{"doc":{"type":"doc","content":[{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"type":"text","text":"${prompt}"}]}]}]}]},"selection":{"type":"text","anchor":${anchor},"head":${head}}}`;
proto.data = new RichTextField(proseMirrorState);
proto.backgroundColor = "#eeffff";
target.props.addDocTab(newBox, proto, "onRight");
@@ -353,10 +351,10 @@ export namespace DictationManager {
{
expression: /create (\w+) documents of type (image|nested collection)/g,
action: (target: DocumentView, matches: RegExpExecArray) => {
- let count = interpretNumber(matches[1]);
- let what = matches[2];
- let dataDoc = Doc.GetProto(target.props.Document);
- let fieldKey = "data";
+ const count = interpretNumber(matches[1]);
+ const what = matches[2];
+ const dataDoc = Doc.GetProto(target.props.Document);
+ const fieldKey = "data";
if (isNaN(count)) {
return;
}
@@ -379,8 +377,8 @@ export namespace DictationManager {
{
expression: /view as (freeform|stacking|masonry|schema|tree)/g,
action: (target: DocumentView, matches: RegExpExecArray) => {
- let mode = CollectionViewType.valueOf(matches[1]);
- mode && (target.props.Document.viewType = mode);
+ const mode = CollectionViewType.valueOf(matches[1]);
+ mode && (target.props.Document._viewType = mode);
},
restrictTo: [DocumentType.COL]
}
diff --git a/src/client/util/DocumentManager.ts b/src/client/util/DocumentManager.ts
index 346e88f40..fb4c2155a 100644
--- a/src/client/util/DocumentManager.ts
+++ b/src/client/util/DocumentManager.ts
@@ -33,7 +33,7 @@ export class DocumentManager {
//gets all views
public getDocumentViewsById(id: string) {
- let toReturn: DocumentView[] = [];
+ const toReturn: DocumentView[] = [];
DocumentManager.Instance.DocumentViews.map(view => {
if (view.props.Document[Id] === id) {
toReturn.push(view);
@@ -41,7 +41,7 @@ export class DocumentManager {
});
if (toReturn.length === 0) {
DocumentManager.Instance.DocumentViews.map(view => {
- let doc = view.props.Document.proto;
+ const doc = view.props.Document.proto;
if (doc && doc[Id] && doc[Id] === id) {
toReturn.push(view);
}
@@ -57,9 +57,9 @@ export class DocumentManager {
public getDocumentViewById(id: string, preferredCollection?: CollectionView): DocumentView | undefined {
let toReturn: DocumentView | undefined;
- let passes = preferredCollection ? [preferredCollection, undefined] : [undefined];
+ const passes = preferredCollection ? [preferredCollection, undefined] : [undefined];
- for (let pass of passes) {
+ for (const pass of passes) {
DocumentManager.Instance.DocumentViews.map(view => {
if (view.props.Document[Id] === id && (!pass || view.props.ContainingCollectionView === preferredCollection)) {
toReturn = view;
@@ -68,7 +68,7 @@ export class DocumentManager {
});
if (!toReturn) {
DocumentManager.Instance.DocumentViews.map(view => {
- let doc = view.props.Document.proto;
+ const doc = view.props.Document.proto;
if (doc && doc[Id] === id && (!pass || view.props.ContainingCollectionView === preferredCollection)) {
toReturn = view;
}
@@ -90,51 +90,57 @@ export class DocumentManager {
return views.length ? views[0] : undefined;
}
public getDocumentViews(toFind: Doc): DocumentView[] {
- let toReturn: DocumentView[] = [];
+ const toReturn: DocumentView[] = [];
DocumentManager.Instance.DocumentViews.map(view =>
- Doc.AreProtosEqual(view.props.Document, toFind) && toReturn.push(view));
+ view.props.Document === toFind && toReturn.push(view));
+ DocumentManager.Instance.DocumentViews.map(view =>
+ view.props.Document !== toFind && Doc.AreProtosEqual(view.props.Document, toFind) && toReturn.push(view));
return toReturn;
}
@computed
public get LinkedDocumentViews() {
- let pairs = DocumentManager.Instance.DocumentViews.filter(dv =>
- (dv.isSelected() || Doc.IsBrushed(dv.props.Document)) // draw links from DocumentViews that are selected or brushed OR
- || DocumentManager.Instance.DocumentViews.some(dv2 => { // Documentviews which
- let rest = DocListCast(dv2.props.Document.links).some(l => Doc.AreProtosEqual(l, dv.props.Document));// are link doc anchors
- let init = (dv2.isSelected() || Doc.IsBrushed(dv2.props.Document)) && dv2.Document.type !== DocumentType.AUDIO; // on a view that is selected or brushed
- return init && rest;
- })
- ).reduce((pairs, dv) => {
- let linksList = LinkManager.Instance.getAllRelatedLinks(dv.props.Document);
- pairs.push(...linksList.reduce((pairs, link) => {
- let linkToDoc = link && LinkManager.Instance.getOppositeAnchor(link, dv.props.Document);
- linkToDoc && DocumentManager.Instance.getDocumentViews(linkToDoc).map(docView1 => {
- if (dv.props.Document.type !== DocumentType.LINK || dv.props.layoutKey !== docView1.props.layoutKey) {
- pairs.push({ a: dv, b: docView1, l: link });
- }
- });
+ const pairs = DocumentManager.Instance.DocumentViews
+ //.filter(dv => (dv.isSelected() || Doc.IsBrushed(dv.props.Document))) // draw links from DocumentViews that are selected or brushed OR
+ // || DocumentManager.Instance.DocumentViews.some(dv2 => { // Documentviews which
+ // const rest = DocListCast(dv2.props.Document.links).some(l => Doc.AreProtosEqual(l, dv.props.Document));// are link doc anchors
+ // const init = (dv2.isSelected() || Doc.IsBrushed(dv2.props.Document)) && dv2.Document.type !== DocumentType.AUDIO; // on a view that is selected or brushed
+ // return init && rest;
+ // }
+ // )
+ .reduce((pairs, dv) => {
+ const linksList = LinkManager.Instance.getAllRelatedLinks(dv.props.Document);
+ pairs.push(...linksList.reduce((pairs, link) => {
+ const linkToDoc = link && LinkManager.Instance.getOppositeAnchor(link, dv.props.Document);
+ linkToDoc && DocumentManager.Instance.getDocumentViews(linkToDoc).map(docView1 => {
+ if (dv.props.Document.type !== DocumentType.LINK || dv.props.layoutKey !== docView1.props.layoutKey) {
+ pairs.push({ a: dv, b: docView1, l: link });
+ }
+ });
+ return pairs;
+ }, [] as { a: DocumentView, b: DocumentView, l: Doc }[]));
return pairs;
- }, [] as { a: DocumentView, b: DocumentView, l: Doc }[]));
- return pairs;
- }, [] as { a: DocumentView, b: DocumentView, l: Doc }[]);
+ }, [] as { a: DocumentView, b: DocumentView, l: Doc }[]);
return pairs;
}
public jumpToDocument = async (targetDoc: Doc, willZoom: boolean, dockFunc?: (doc: Doc) => void, docContext?: Doc, linkId?: string, closeContextIfNotFound: boolean = false): Promise<void> => {
- let highlight = () => {
+ const highlight = () => {
const finalDocView = DocumentManager.Instance.getFirstDocumentView(targetDoc);
finalDocView && (finalDocView.Document.scrollToLinkID = linkId);
finalDocView && Doc.linkFollowHighlight(finalDocView.props.Document);
};
const docView = DocumentManager.Instance.getFirstDocumentView(targetDoc);
- const annotatedDoc = await Cast(targetDoc.annotationOn, Doc);
+ let annotatedDoc = await Cast(docView?.props.Document.annotationOn, Doc);
+ if (annotatedDoc) {
+ const first = DocumentManager.Instance.getFirstDocumentView(annotatedDoc);
+ if (first) annotatedDoc = first.props.Document;
+ }
if (docView) { // we have a docView already and aren't forced to create a new one ... just focus on the document. TODO move into view if necessary otherwise just highlight?
- annotatedDoc && docView.props.focus(annotatedDoc, false);
- docView.props.focus(docView.props.Document, willZoom);
+ docView.props.focus(docView.props.Document, false);
highlight();
} else {
const contextDocs = docContext ? await DocListCastAsync(docContext.data) : undefined;
@@ -176,7 +182,7 @@ export class DocumentManager {
}
public async FollowLink(link: Doc | undefined, doc: Doc, focus: (doc: Doc, maxLocation: string) => void, zoom: boolean = false, reverse: boolean = false, currentContext?: Doc) {
- const linkDocs = link ? [link] : LinkManager.Instance.getAllRelatedLinks(doc);
+ const linkDocs = link ? [link] : DocListCast(doc.links);
SelectionManager.DeselectAll();
const firstDocs = linkDocs.filter(linkDoc => Doc.AreProtosEqual(linkDoc.anchor1 as Doc, doc));
const secondDocs = linkDocs.filter(linkDoc => Doc.AreProtosEqual(linkDoc.anchor2 as Doc, doc));
@@ -194,17 +200,19 @@ export class DocumentManager {
const target = linkFollowDocs[reverse ? 1 : 0];
target.currentTimecode !== undefined && (target.currentTimecode = linkFollowTimecodes[reverse ? 1 : 0]);
DocumentManager.Instance.jumpToDocument(linkFollowDocs[reverse ? 1 : 0], zoom, (doc: Doc) => focus(doc, maxLocation), targetContext, linkDoc[Id]);
+ } else if (link) {
+ DocumentManager.Instance.jumpToDocument(link, zoom, (doc: Doc) => focus(doc, "onRight"), undefined, undefined);
}
}
@action
zoomIntoScale = (docDelegate: Doc, scale: number) => {
- let docView = DocumentManager.Instance.getDocumentView(Doc.GetProto(docDelegate));
+ const docView = DocumentManager.Instance.getDocumentView(Doc.GetProto(docDelegate));
docView && docView.props.zoomToScale(scale);
}
getScaleOfDocView = (docDelegate: Doc) => {
- let doc = Doc.GetProto(docDelegate);
+ const doc = Doc.GetProto(docDelegate);
const docView = DocumentManager.Instance.getDocumentView(doc);
if (docView) {
diff --git a/src/client/util/DragManager.ts b/src/client/util/DragManager.ts
index bbc29585c..c05a2de96 100644
--- a/src/client/util/DragManager.ts
+++ b/src/client/util/DragManager.ts
@@ -1,7 +1,5 @@
-import { action, runInAction } from "mobx";
-import { Doc, Field } from "../../new_fields/Doc";
-import { Cast, StrCast, ScriptCast } from "../../new_fields/Types";
-import { URLField } from "../../new_fields/URLField";
+import { Doc, Field, DocListCast } from "../../new_fields/Doc";
+import { Cast, ScriptCast } from "../../new_fields/Types";
import { emptyFunction } from "../../Utils";
import { CollectionDockingView } from "../views/collections/CollectionDockingView";
import * as globalCssVariables from "../views/globalCssVariables.scss";
@@ -20,43 +18,46 @@ import { convertDropDataToButtons } from "./DropConverter";
export type dropActionType = "alias" | "copy" | undefined;
export function SetupDrag(
_reference: React.RefObject<HTMLElement>,
- docFunc: () => Doc | Promise<Doc>,
+ docFunc: () => Doc | Promise<Doc> | undefined,
moveFunc?: DragManager.MoveFunction,
dropAction?: dropActionType,
- options?: any,
+ treeViewId?: string,
dontHideOnDrop?: boolean,
dragStarted?: () => void
) {
- let onRowMove = async (e: PointerEvent) => {
+ const onRowMove = async (e: PointerEvent) => {
e.stopPropagation();
e.preventDefault();
document.removeEventListener("pointermove", onRowMove);
document.removeEventListener('pointerup', onRowUp);
- let doc = await docFunc();
- var dragData = new DragManager.DocumentDragData([doc]);
- dragData.dropAction = dropAction;
- dragData.moveDocument = moveFunc;
- dragData.options = options;
- dragData.dontHideOnDrop = dontHideOnDrop;
- DragManager.StartDocumentDrag([_reference.current!], dragData, e.x, e.y);
- dragStarted && dragStarted();
+ const doc = await docFunc();
+ if (doc) {
+ const dragData = new DragManager.DocumentDragData([doc]);
+ dragData.dropAction = dropAction;
+ dragData.moveDocument = moveFunc;
+ dragData.treeViewId = treeViewId;
+ dragData.dontHideOnDrop = dontHideOnDrop;
+ DragManager.StartDocumentDrag([_reference.current!], dragData, e.x, e.y);
+ dragStarted && dragStarted();
+ }
};
- let onRowUp = (): void => {
+ const onRowUp = (): void => {
document.removeEventListener("pointermove", onRowMove);
document.removeEventListener('pointerup', onRowUp);
};
- let onItemDown = async (e: React.PointerEvent) => {
+ const onItemDown = async (e: React.PointerEvent) => {
if (e.button === 0) {
e.stopPropagation();
if (e.shiftKey && CollectionDockingView.Instance) {
e.persist();
- CollectionDockingView.Instance.StartOtherDrag({
+ const dragDoc = await docFunc();
+ dragDoc && CollectionDockingView.Instance.StartOtherDrag({
pageX: e.pageX,
pageY: e.pageY,
preventDefault: emptyFunction,
button: 0
- }, [await docFunc()]);
+ }, [dragDoc]);
} else {
document.addEventListener("pointermove", onRowMove);
document.addEventListener("pointerup", onRowUp);
@@ -66,62 +67,9 @@ export function SetupDrag(
return onItemDown;
}
-function moveLinkedDocument(doc: Doc, targetCollection: Doc, addDocument: (doc: Doc) => boolean): boolean {
- const document = SelectionManager.SelectedDocuments()[0];
- document && document.props.removeDocument && document.props.removeDocument(doc);
- addDocument(doc);
- return true;
-}
-
-export async function DragLinkAsDocument(dragEle: HTMLElement, x: number, y: number, linkDoc: Doc, sourceDoc: Doc) {
- let draggeddoc = LinkManager.Instance.getOppositeAnchor(linkDoc, sourceDoc);
- if (draggeddoc) {
- let moddrag = await Cast(draggeddoc.annotationOn, Doc);
- let dragdocs = moddrag ? [moddrag] : [draggeddoc];
- let dragData = new DragManager.DocumentDragData(dragdocs);
- dragData.moveDocument = moveLinkedDocument;
- DragManager.StartLinkedDocumentDrag([dragEle], dragData, x, y, {
- handlers: {
- dragComplete: action(emptyFunction),
- },
- hideSource: false
- });
- }
-}
-
-export async function DragLinksAsDocuments(dragEle: HTMLElement, x: number, y: number, sourceDoc: Doc, singleLink?: Doc) {
- let srcTarg = sourceDoc.proto;
- let draggedDocs: Doc[] = [];
-
- if (srcTarg) {
- let linkDocs = singleLink ? [singleLink] : LinkManager.Instance.getAllRelatedLinks(srcTarg);
- if (linkDocs) {
- draggedDocs = linkDocs.map(link => {
- let opp = LinkManager.Instance.getOppositeAnchor(link, sourceDoc);
- if (opp) return opp;
- }) as Doc[];
- }
- }
- if (draggedDocs.length) {
- let moddrag: Doc[] = [];
- for (const draggedDoc of draggedDocs) {
- let doc = await Cast(draggedDoc.annotationOn, Doc);
- if (doc) moddrag.push(doc);
- }
- let dragdocs = moddrag.length ? moddrag : draggedDocs;
- let dragData = new DragManager.DocumentDragData(dragdocs);
- dragData.moveDocument = moveLinkedDocument;
- DragManager.StartLinkedDocumentDrag([dragEle], dragData, x, y, {
- handlers: {
- dragComplete: action(emptyFunction),
- },
- hideSource: false
- });
- }
-}
-
-
export namespace DragManager {
+ let dragDiv: HTMLDivElement;
+
export function Root() {
const root = document.getElementById("root");
if (!root) {
@@ -129,79 +77,46 @@ export namespace DragManager {
}
return root;
}
+ export let AbortDrag: () => void = emptyFunction;
+ export type MoveFunction = (document: Doc, targetCollection: Doc | undefined, addDocument: (document: Doc) => boolean) => boolean;
- let dragDiv: HTMLDivElement;
-
- export enum DragButtons {
- Left = 1,
- Right = 2,
- Both = Left | Right
- }
-
- interface DragOptions {
- handlers: DragHandlers;
-
- hideSource: boolean | (() => boolean);
-
- dragHasStarted?: () => void;
-
- withoutShiftDrag?: boolean;
-
- finishDrag?: (dropData: { [id: string]: any }) => void;
-
- offsetX?: number;
-
+ export interface DragDropDisposer { (): void; }
+ export interface DragOptions {
+ dragComplete?: (e: DragCompleteEvent) => void; // function to invoke when drag has completed
+ hideSource?: boolean; // hide source document during drag
+ offsetX?: number; // offset of top left of source drag visual from cursor
offsetY?: number;
}
- export interface DragDropDisposer {
- (): void;
- }
-
- export class DragCompleteEvent { }
-
- export interface DragHandlers {
- dragComplete: (e: DragCompleteEvent) => void;
- }
-
- export interface DropOptions {
- handlers: DropHandlers;
- }
+ // event called when the drag operation results in a drop action
export class DropEvent {
constructor(
readonly x: number,
readonly y: number,
- readonly data: { [id: string]: any },
- readonly mods: string
+ readonly complete: DragCompleteEvent,
+ readonly shiftKey: boolean,
+ readonly altKey: boolean,
+ readonly metaKey: boolean,
+ readonly ctrlKey: boolean
) { }
}
- export interface DropHandlers {
- drop: (e: Event, de: DropEvent) => void;
- }
-
- export function MakeDropTarget(
- element: HTMLElement,
- options: DropOptions
- ): DragDropDisposer {
- if ("canDrop" in element.dataset) {
- throw new Error(
- "Element is already droppable, can't make it droppable again"
- );
+ // event called when the drag operation has completed (aborted or completed a drop) -- this will be after any drop event has been generated
+ export class DragCompleteEvent {
+ constructor(aborted: boolean, dragData: { [id: string]: any }) {
+ this.aborted = aborted;
+ this.docDragData = dragData instanceof DocumentDragData ? dragData : undefined;
+ this.annoDragData = dragData instanceof PdfAnnoDragData ? dragData : undefined;
+ this.linkDragData = dragData instanceof LinkDragData ? dragData : undefined;
+ this.columnDragData = dragData instanceof ColumnDragData ? dragData : undefined;
}
- element.dataset.canDrop = "true";
- const handler = (e: Event) => {
- const ce = e as CustomEvent<DropEvent>;
- options.handlers.drop(e, ce.detail);
- };
- element.addEventListener("dashOnDrop", handler);
- return () => {
- element.removeEventListener("dashOnDrop", handler);
- delete element.dataset.canDrop;
- };
+ aborted: boolean;
+ docDragData?: DocumentDragData;
+ annoDragData?: PdfAnnoDragData;
+ linkDragData?: LinkDragData;
+ columnDragData?: ColumnDragData;
}
- export type MoveFunction = (document: Doc, targetCollection: Doc, addDocument: (document: Doc) => boolean) => boolean;
export class DocumentDragData {
constructor(dragDoc: Doc[]) {
this.draggedDocuments = dragDoc;
@@ -210,6 +125,9 @@ export namespace DragManager {
}
draggedDocuments: Doc[];
droppedDocuments: Doc[];
+ dragDivName?: string;
+ treeViewId?: string;
+ dontHideOnDrop?: boolean;
offset: number[];
dropAction: dropActionType;
userDropAction: dropActionType;
@@ -217,16 +135,32 @@ export namespace DragManager {
moveDocument?: MoveFunction;
isSelectionMove?: boolean; // indicates that an explicitly selected Document is being dragged. this will suppress onDragStart scripts
applyAsTemplate?: boolean;
- [id: string]: any;
}
-
- export class AnnotationDragData {
+ export class LinkDragData {
+ constructor(linkSourceDoc: Doc) {
+ this.linkSourceDocument = linkSourceDoc;
+ }
+ droppedDocuments: Doc[] = [];
+ linkSourceDocument: Doc;
+ dontClearTextBox?: boolean;
+ linkDocument?: Doc;
+ }
+ export class ColumnDragData {
+ constructor(colKey: SchemaHeaderField) {
+ this.colKey = colKey;
+ }
+ colKey: SchemaHeaderField;
+ }
+ // used by PDFs to conditionally (if the drop completes) create a text annotation when dragging from the PDF toolbar when a text region has been selected.
+ // this is pretty clunky and should be rethought out using linkDrag or DocumentDrag
+ export class PdfAnnoDragData {
constructor(dragDoc: Doc, annotationDoc: Doc, dropDoc: Doc) {
this.dragDocument = dragDoc;
this.dropDocument = dropDoc;
this.annotationDocument = annotationDoc;
this.offset = [0, 0];
}
+ linkedToDoc?: boolean;
targetContext: Doc | undefined;
dragDocument: Doc;
annotationDocument: Doc;
@@ -236,98 +170,103 @@ export namespace DragManager {
userDropAction: dropActionType;
}
- export let StartDragFunctions: (() => void)[] = [];
+ export function MakeDropTarget(
+ element: HTMLElement,
+ dropFunc: (e: Event, de: DropEvent) => void
+ ): DragDropDisposer {
+ if ("canDrop" in element.dataset) {
+ throw new Error(
+ "Element is already droppable, can't make it droppable again"
+ );
+ }
+ element.dataset.canDrop = "true";
+ const handler = (e: Event) => dropFunc(e, (e as CustomEvent<DropEvent>).detail);
+ element.addEventListener("dashOnDrop", handler);
+ return () => {
+ element.removeEventListener("dashOnDrop", handler);
+ delete element.dataset.canDrop;
+ };
+ }
+ // drag a document and drop it (or make an alias/copy on drop)
export function StartDocumentDrag(eles: HTMLElement[], dragData: DocumentDragData, downX: number, downY: number, options?: DragOptions) {
- runInAction(() => StartDragFunctions.map(func => func()));
+ const finishDrag = (e: DragCompleteEvent) => {
+ e.docDragData && (e.docDragData.droppedDocuments =
+ dragData.draggedDocuments.map(d => !dragData.isSelectionMove && !dragData.userDropAction && ScriptCast(d.onDragStart) ? ScriptCast(d.onDragStart).script.run({ this: d }).result :
+ dragData.userDropAction === "alias" || (!dragData.userDropAction && dragData.dropAction === "alias") ? Doc.MakeAlias(d) :
+ dragData.userDropAction === "copy" || (!dragData.userDropAction && dragData.dropAction === "copy") ? Doc.MakeCopy(d, true) : d)
+ );
+ e.docDragData?.droppedDocuments.forEach((drop: Doc, i: number) =>
+ Cast(dragData.draggedDocuments[i].removeDropProperties, listSpec("string"), []).map(prop => drop[prop] = undefined));
+ };
dragData.draggedDocuments.map(d => d.dragFactory); // does this help? trying to make sure the dragFactory Doc is loaded
- StartDrag(eles, dragData, downX, downY, options, options && options.finishDrag ? options.finishDrag :
- (dropData: { [id: string]: any }) => {
- (dropData.droppedDocuments =
- dragData.draggedDocuments.map(d => !dragData.isSelectionMove && !dragData.userDropAction && ScriptCast(d.onDragStart) ? ScriptCast(d.onDragStart).script.run({ this: d }).result :
- dragData.userDropAction === "alias" || (!dragData.userDropAction && dragData.dropAction === "alias") ? Doc.MakeAlias(d) :
- dragData.userDropAction === "copy" || (!dragData.userDropAction && dragData.dropAction === "copy") ? Doc.MakeCopy(d, true) : d)
- );
- dropData.droppedDocuments.forEach((drop: Doc, i: number) =>
- Cast(dragData.draggedDocuments[i].removeDropProperties, listSpec("string"), []).map(prop => drop[prop] = undefined));
- });
+ StartDrag(eles, dragData, downX, downY, options, finishDrag);
}
+ // drag a button template and drop a new button
export function StartButtonDrag(eles: HTMLElement[], script: string, title: string, vars: { [name: string]: Field }, params: string[], initialize: (button: Doc) => void, downX: number, downY: number, options?: DragOptions) {
- let dragData = new DragManager.DocumentDragData([]);
- runInAction(() => StartDragFunctions.map(func => func()));
- StartDrag(eles, dragData, downX, downY, options, options && options.finishDrag ? options.finishDrag :
- (dropData: { [id: string]: any }) => {
- let bd = Docs.Create.ButtonDocument({ width: 150, height: 50, title: title });
- bd.onClick = ScriptField.MakeScript(script);
- params.map(p => Object.keys(vars).indexOf(p) !== -1 && (Doc.GetProto(bd)[p] = new PrefetchProxy(vars[p] as Doc)));
- initialize && initialize(bd);
- bd.buttonParams = new List<string>(params);
- dropData.droppedDocuments = [bd];
- });
+ const finishDrag = (e: DragCompleteEvent) => {
+ const bd = Docs.Create.ButtonDocument({ _width: 150, _height: 50, title: title });
+ bd.onClick = ScriptField.MakeScript(script);
+ params.map(p => Object.keys(vars).indexOf(p) !== -1 && (Doc.GetProto(bd)[p] = new PrefetchProxy(vars[p] as Doc)));
+ initialize && initialize(bd);
+ bd.buttonParams = new List<string>(params);
+ e.docDragData && (e.docDragData.droppedDocuments = [bd]);
+ };
+ StartDrag(eles, new DragManager.DocumentDragData([]), downX, downY, options, finishDrag);
}
- export function StartLinkedDocumentDrag(eles: HTMLElement[], dragData: DocumentDragData, downX: number, downY: number, options?: DragOptions) {
- dragData.moveDocument = moveLinkedDocument;
+ // drag links and drop link targets (aliasing them if needed)
+ export async function StartLinkTargetsDrag(dragEle: HTMLElement, downX: number, downY: number, sourceDoc: Doc, specificLinks?: Doc[]) {
+ const draggedDocs = (specificLinks ? specificLinks : DocListCast(sourceDoc.links)).map(link => LinkManager.Instance.getOppositeAnchor(link, sourceDoc)).filter(l => l) as Doc[];
- runInAction(() => StartDragFunctions.map(func => func()));
- StartDrag(eles, dragData, downX, downY, options,
- (dropData: { [id: string]: any }) => {
- let droppedDocuments: Doc[] = dragData.draggedDocuments.reduce((droppedDocs: Doc[], d) => {
- let dvs = DocumentManager.Instance.getDocumentViews(d);
- if (dvs.length) {
- let containingView = SelectionManager.SelectedDocuments()[0] ? SelectionManager.SelectedDocuments()[0].props.ContainingCollectionView : undefined;
- let inContext = dvs.filter(dv => dv.props.ContainingCollectionView === containingView);
- if (inContext.length) {
- inContext.forEach(dv => droppedDocs.push(dv.props.Document));
+ if (draggedDocs.length) {
+ const moddrag: Doc[] = [];
+ for (const draggedDoc of draggedDocs) {
+ const doc = await Cast(draggedDoc.annotationOn, Doc);
+ if (doc) moddrag.push(doc);
+ }
+
+ const dragData = new DragManager.DocumentDragData(moddrag.length ? moddrag : draggedDocs);
+ dragData.moveDocument = (doc: Doc, targetCollection: Doc | undefined, addDocument: (doc: Doc) => boolean): boolean => {
+ const document = SelectionManager.SelectedDocuments()[0];
+ document && document.props.removeDocument && document.props.removeDocument(doc);
+ addDocument(doc);
+ return true;
+ };
+ const containingView = SelectionManager.SelectedDocuments()[0] ? SelectionManager.SelectedDocuments()[0].props.ContainingCollectionView : undefined;
+ const finishDrag = (e: DragCompleteEvent) =>
+ e.docDragData && (e.docDragData.droppedDocuments =
+ dragData.draggedDocuments.reduce((droppedDocs, d) => {
+ const dvs = DocumentManager.Instance.getDocumentViews(d).filter(dv => dv.props.ContainingCollectionView === containingView);
+ if (dvs.length) {
+ dvs.forEach(dv => droppedDocs.push(dv.props.Document));
} else {
droppedDocs.push(Doc.MakeAlias(d));
}
- } else {
- droppedDocs.push(Doc.MakeAlias(d));
- }
- return droppedDocs;
- }, []);
- dropData.droppedDocuments = droppedDocuments;
- });
- }
-
- export function StartAnnotationDrag(eles: HTMLElement[], dragData: AnnotationDragData, downX: number, downY: number, options?: DragOptions) {
- StartDrag(eles, dragData, downX, downY, options);
- }
+ return droppedDocs;
+ }, [] as Doc[]));
- export class LinkDragData {
- constructor(linkSourceDoc: Doc, blacklist: Doc[] = []) {
- this.linkSourceDocument = linkSourceDoc;
- this.blacklist = blacklist;
+ StartDrag([dragEle], dragData, downX, downY, undefined, finishDrag);
}
- droppedDocuments: Doc[] = [];
- linkSourceDocument: Doc;
- blacklist: Doc[];
- dontClearTextBox?: boolean;
- [id: string]: any;
}
- // for column dragging in schema view
- export class ColumnDragData {
- constructor(colKey: SchemaHeaderField) {
- this.colKey = colKey;
- }
- colKey: SchemaHeaderField;
- [id: string]: any;
+ // drag&drop the pdf annotation anchor which will create a text note on drop via a dropCompleted() DragOption
+ export function StartPdfAnnoDrag(eles: HTMLElement[], dragData: PdfAnnoDragData, downX: number, downY: number, options?: DragOptions) {
+ StartDrag(eles, dragData, downX, downY, options);
}
- export function StartLinkDrag(ele: HTMLElement, dragData: LinkDragData, downX: number, downY: number, options?: DragOptions) {
- StartDrag([ele], dragData, downX, downY, options);
+ // drags a linker button and creates a link on drop
+ export function StartLinkDrag(ele: HTMLElement, sourceDoc: Doc, downX: number, downY: number, options?: DragOptions) {
+ StartDrag([ele], new DragManager.LinkDragData(sourceDoc), downX, downY, options);
}
+ // drags a column from a schema view
export function StartColumnDrag(ele: HTMLElement, dragData: ColumnDragData, downX: number, downY: number, options?: DragOptions) {
StartDrag([ele], dragData, downX, downY, options);
}
- export let AbortDrag: () => void = emptyFunction;
-
- function StartDrag(eles: HTMLElement[], dragData: { [id: string]: any }, downX: number, downY: number, options?: DragOptions, finishDrag?: (dropData: { [id: string]: any }) => void) {
+ function StartDrag(eles: HTMLElement[], dragData: { [id: string]: any }, downX: number, downY: number, options?: DragOptions, finishDrag?: (dropData: DragCompleteEvent) => void) {
eles = eles.filter(e => e);
if (!dragDiv) {
dragDiv = document.createElement("div");
@@ -336,80 +275,64 @@ export namespace DragManager {
DragManager.Root().appendChild(dragDiv);
}
SelectionManager.SetIsDragging(true);
- let scaleXs: number[] = [];
- let scaleYs: number[] = [];
- let xs: number[] = [];
- let ys: number[] = [];
-
- const docs = dragData instanceof DocumentDragData ? dragData.draggedDocuments :
- dragData instanceof AnnotationDragData ? [dragData.dragDocument] : [];
- let dragElements = eles.map(ele => {
- const w = ele.offsetWidth,
- h = ele.offsetHeight;
+ const scaleXs: number[] = [];
+ const scaleYs: number[] = [];
+ const xs: number[] = [];
+ const ys: number[] = [];
+
+ const docs = dragData instanceof DocumentDragData ? dragData.draggedDocuments : dragData instanceof PdfAnnoDragData ? [dragData.dragDocument] : [];
+ const dragElements = eles.map(ele => {
+ if (!ele.parentNode) dragDiv.appendChild(ele);
+ const dragElement = ele.parentNode === dragDiv ? ele : ele.cloneNode(true) as HTMLElement;
const rect = ele.getBoundingClientRect();
- const scaleX = rect.width / w,
- scaleY = rect.height / h;
- let x = rect.left,
- y = rect.top;
- xs.push(x);
- ys.push(y);
+ const scaleX = rect.width / ele.offsetWidth,
+ scaleY = rect.height / ele.offsetHeight;
+ xs.push(rect.left);
+ ys.push(rect.top);
scaleXs.push(scaleX);
scaleYs.push(scaleY);
- let dragElement = ele.cloneNode(true) as HTMLElement;
dragElement.style.opacity = "0.7";
- dragElement.style.borderRadius = getComputedStyle(ele).borderRadius;
dragElement.style.position = "absolute";
dragElement.style.margin = "0";
dragElement.style.top = "0";
dragElement.style.bottom = "";
dragElement.style.left = "0";
- dragElement.style.transition = "none";
dragElement.style.color = "black";
+ dragElement.style.transition = "none";
dragElement.style.transformOrigin = "0 0";
+ dragElement.style.borderRadius = getComputedStyle(ele).borderRadius;
dragElement.style.zIndex = globalCssVariables.contextMenuZindex;// "1000";
- dragElement.style.transform = `translate(${x}px, ${y}px) scale(${scaleX}, ${scaleY})`;
+ dragElement.style.transform = `translate(${rect.left + (options?.offsetX || 0)}px, ${rect.top + (options?.offsetY || 0)}px) scale(${scaleX}, ${scaleY})`;
dragElement.style.width = `${rect.width / scaleX}px`;
dragElement.style.height = `${rect.height / scaleY}px`;
if (docs.length) {
- var pdfBox = dragElement.getElementsByTagName("canvas");
- var pdfBoxSrc = ele.getElementsByTagName("canvas");
+ const pdfBox = dragElement.getElementsByTagName("canvas");
+ const pdfBoxSrc = ele.getElementsByTagName("canvas");
Array.from(pdfBox).map((pb, i) => pb.getContext('2d')!.drawImage(pdfBoxSrc[i], 0, 0));
- var pdfView = dragElement.getElementsByClassName("pdfViewer-viewer");
- var pdfViewSrc = ele.getElementsByClassName("pdfViewer-viewer");
- let tops = Array.from(pdfViewSrc).map(p => p.scrollTop);
- let oldopacity = dragElement.style.opacity;
+ const pdfView = dragElement.getElementsByClassName("pdfViewer-viewer");
+ const pdfViewSrc = ele.getElementsByClassName("pdfViewer-viewer");
+ const tops = Array.from(pdfViewSrc).map(p => p.scrollTop);
+ const oldopacity = dragElement.style.opacity;
dragElement.style.opacity = "0";
setTimeout(() => {
dragElement.style.opacity = oldopacity;
Array.from(pdfView).map((v, i) => v.scrollTo({ top: tops[i] }));
}, 0);
}
- let set = dragElement.getElementsByTagName('*');
if (dragElement.hasAttribute("style")) (dragElement as any).style.pointerEvents = "none";
+ const set = dragElement.getElementsByTagName('*');
// tslint:disable-next-line: prefer-for-of
for (let i = 0; i < set.length; i++) {
- if (set[i].hasAttribute("style")) {
- let s = set[i];
- (s as any).style.pointerEvents = "none";
- }
+ set[i].hasAttribute("style") && ((set[i] as any).style.pointerEvents = "none");
}
-
dragDiv.appendChild(dragElement);
return dragElement;
});
- let hideSource = false;
- if (options) {
- if (typeof options.hideSource === "boolean") {
- hideSource = options.hideSource;
- } else {
- hideSource = options.hideSource();
- }
- }
-
- eles.map(ele => ele.hidden = hideSource);
+ const hideSource = options?.hideSource ? true : false;
+ eles.map(ele => ele.parentElement && ele.parentElement?.className === dragData.dragDivName ? (ele.parentElement.hidden = hideSource) : (ele.hidden = hideSource));
let lastX = downX;
let lastY = downY;
@@ -418,9 +341,9 @@ export namespace DragManager {
if (dragData instanceof DocumentDragData) {
dragData.userDropAction = e.ctrlKey ? "alias" : undefined;
}
- if (((options && !options.withoutShiftDrag) || !options) && e.shiftKey && CollectionDockingView.Instance) {
+ if (e.shiftKey && CollectionDockingView.Instance && dragData.droppedDocuments.length === 1) {
AbortDrag();
- finishDrag && finishDrag(dragData);
+ finishDrag?.(new DragCompleteEvent(true, dragData));
CollectionDockingView.Instance.StartOtherDrag({
pageX: e.pageX,
pageY: e.pageY,
@@ -429,61 +352,56 @@ export namespace DragManager {
}, dragData.droppedDocuments);
}
//TODO: Why can't we use e.movementX and e.movementY?
- let moveX = e.pageX - lastX;
- let moveY = e.pageY - lastY;
+ const moveX = e.pageX - lastX;
+ const moveY = e.pageY - lastY;
lastX = e.pageX;
lastY = e.pageY;
dragElements.map((dragElement, i) => (dragElement.style.transform =
- `translate(${(xs[i] += moveX) + (options ? (options.offsetX || 0) : 0)}px, ${(ys[i] += moveY) + (options ? (options.offsetY || 0) : 0)}px) scale(${scaleXs[i]}, ${scaleYs[i]})`)
+ `translate(${(xs[i] += moveX) + (options?.offsetX || 0)}px, ${(ys[i] += moveY) + (options?.offsetY || 0)}px) scale(${scaleXs[i]}, ${scaleYs[i]})`)
);
};
- let hideDragShowOriginalElements = () => {
+ const hideDragShowOriginalElements = () => {
dragElements.map(dragElement => dragElement.parentNode === dragDiv && dragDiv.removeChild(dragElement));
- eles.map(ele => ele.hidden = false);
+ eles.map(ele => ele.parentElement && ele.parentElement?.className === dragData.dragDivName ? (ele.parentElement.hidden = false) : (ele.hidden = false));
};
- let endDrag = () => {
+ const endDrag = () => {
document.removeEventListener("pointermove", moveHandler, true);
document.removeEventListener("pointerup", upHandler);
- if (options) {
- options.handlers.dragComplete({});
- }
};
AbortDrag = () => {
hideDragShowOriginalElements();
SelectionManager.SetIsDragging(false);
+ options?.dragComplete?.(new DragCompleteEvent(true, dragData));
endDrag();
};
const upHandler = (e: PointerEvent) => {
hideDragShowOriginalElements();
dispatchDrag(eles, e, dragData, options, finishDrag);
SelectionManager.SetIsDragging(false);
+ options?.dragComplete?.(new DragCompleteEvent(false, dragData));
endDrag();
};
document.addEventListener("pointermove", moveHandler, true);
document.addEventListener("pointerup", upHandler);
}
- function dispatchDrag(dragEles: HTMLElement[], e: PointerEvent, dragData: { [index: string]: any }, options?: DragOptions, finishDrag?: (dragData: { [index: string]: any }) => void) {
- let removed = dragData.dontHideOnDrop ? [] : dragEles.map(dragEle => {
- // let parent = dragEle.parentElement;
- // if (parent) parent.removeChild(dragEle);
- let ret = [dragEle, dragEle.style.width, dragEle.style.height];
+ function dispatchDrag(dragEles: HTMLElement[], e: PointerEvent, dragData: { [index: string]: any }, options?: DragOptions, finishDrag?: (e: DragCompleteEvent) => void) {
+ const removed = dragData.dontHideOnDrop ? [] : dragEles.map(dragEle => {
+ const ret = { ele: dragEle, w: dragEle.style.width, h: dragEle.style.height };
dragEle.style.width = "0";
dragEle.style.height = "0";
return ret;
});
const target = document.elementFromPoint(e.x, e.y);
removed.map(r => {
- let dragEle = r[0] as HTMLElement;
- dragEle.style.width = r[1] as string;
- dragEle.style.height = r[2] as string;
- // let parent = r[1];
- // if (parent && dragEle) parent.appendChild(dragEle);
+ r.ele.style.width = r.w;
+ r.ele.style.height = r.h;
});
if (target) {
- finishDrag && finishDrag(dragData);
+ const complete = new DragCompleteEvent(false, dragData);
+ finishDrag?.(complete);
target.dispatchEvent(
new CustomEvent<DropEvent>("dashOnDrop", {
@@ -491,8 +409,11 @@ export namespace DragManager {
detail: {
x: e.x,
y: e.y,
- data: dragData,
- mods: e.altKey ? "AltKey" : e.ctrlKey ? "CtrlKey" : e.metaKey ? "MetaKey" : ""
+ complete: complete,
+ shiftKey: e.shiftKey,
+ altKey: e.altKey,
+ metaKey: e.metaKey,
+ ctrlKey: e.ctrlKey
}
})
);
diff --git a/src/client/util/DropConverter.ts b/src/client/util/DropConverter.ts
index 6b53333d7..d0f1d86cb 100644
--- a/src/client/util/DropConverter.ts
+++ b/src/client/util/DropConverter.ts
@@ -1,44 +1,50 @@
import { DragManager } from "./DragManager";
-import { CollectionViewType } from "../views/collections/CollectionView";
import { Doc, DocListCast } from "../../new_fields/Doc";
import { DocumentType } from "../documents/DocumentTypes";
import { ObjectField } from "../../new_fields/ObjectField";
import { StrCast } from "../../new_fields/Types";
import { Docs } from "../documents/Documents";
-import { ScriptField } from "../../new_fields/ScriptField";
+import { ScriptField, ComputedField } from "../../new_fields/ScriptField";
+import { RichTextField } from "../../new_fields/RichTextField";
+import { ImageField } from "../../new_fields/URLField";
-
-function makeTemplate(doc: Doc): boolean {
- let layoutDoc = doc.layout instanceof Doc && doc.layout.isTemplateField ? doc.layout : doc;
- let layout = StrCast(layoutDoc.layout).match(/fieldKey={"[^"]*"}/)![0];
- let fieldKey = layout.replace('fieldKey={"', "").replace(/"}$/, "");
- let docs = DocListCast(layoutDoc[fieldKey]);
+export function makeTemplate(doc: Doc): boolean {
+ const layoutDoc = doc.layout instanceof Doc && doc.layout.isTemplateForField ? doc.layout : doc;
+ const layout = StrCast(layoutDoc.layout).match(/fieldKey={'[^']*'}/)![0];
+ const fieldKey = layout.replace("fieldKey={'", "").replace(/'}$/, "");
+ const docs = DocListCast(layoutDoc[fieldKey]);
let any = false;
- docs.map(d => {
+ docs.forEach(d => {
if (!StrCast(d.title).startsWith("-")) {
- any = true;
- return Doc.MakeMetadataFieldTemplate(d, Doc.GetProto(layoutDoc));
+ any = Doc.MakeMetadataFieldTemplate(d, Doc.GetProto(layoutDoc)) || any;
+ } else if (d.type === DocumentType.COL || d.data instanceof RichTextField) {
+ any = makeTemplate(d) || any;
}
- if (d.type === DocumentType.COL) return makeTemplate(d);
- return false;
});
+ if (layoutDoc[fieldKey] instanceof RichTextField || layoutDoc[fieldKey] instanceof ImageField) {
+ if (!StrCast(layoutDoc.title).startsWith("-")) {
+ any = Doc.MakeMetadataFieldTemplate(layoutDoc, Doc.GetProto(layoutDoc));
+ }
+ }
return any;
}
export function convertDropDataToButtons(data: DragManager.DocumentDragData) {
data && data.draggedDocuments.map((doc, i) => {
let dbox = doc;
- if (!doc.onDragStart && !doc.onClick && doc.viewType !== CollectionViewType.Linear) {
- let layoutDoc = doc.layout instanceof Doc && doc.layout.isTemplateField ? doc.layout : doc;
- if (layoutDoc.type === DocumentType.COL) {
- layoutDoc.isTemplateDoc = makeTemplate(layoutDoc);
+ // bcz: isButtonBar is intended to allow a collection of linear buttons to be dropped and nested into another collection of buttons... it's not being used yet, and isn't very elegant
+ if (!doc.onDragStart && !doc.onClick && !doc.isButtonBar) {
+ const layoutDoc = doc.layout instanceof Doc && doc.layout.isTemplateForField ? doc.layout : doc;
+ if (layoutDoc.type === DocumentType.COL || layoutDoc.type === DocumentType.TEXT || layoutDoc.type === DocumentType.IMG) {
+ makeTemplate(layoutDoc);
} else {
- layoutDoc.isTemplateDoc = (layoutDoc.type === DocumentType.TEXT || layoutDoc.layout instanceof Doc) && !data.userDropAction;
+ (layoutDoc.layout instanceof Doc) && !data.userDropAction;
}
- dbox = Docs.Create.FontIconDocument({ nativeWidth: 100, nativeHeight: 100, width: 100, height: 100, backgroundColor: StrCast(doc.backgroundColor), title: "Custom", icon: layoutDoc.isTemplateDoc ? "font" : "bolt" });
+ layoutDoc.isTemplateDoc = true;
+ dbox = Docs.Create.FontIconDocument({ _nativeWidth: 100, _nativeHeight: 100, _width: 100, _height: 100, backgroundColor: StrCast(doc.backgroundColor), title: "Custom", icon: layoutDoc.isTemplateDoc ? "font" : "bolt" });
dbox.dragFactory = layoutDoc;
dbox.removeDropProperties = doc.removeDropProperties instanceof ObjectField ? ObjectField.MakeCopy(doc.removeDropProperties) : undefined;
dbox.onDragStart = ScriptField.MakeFunction('getCopy(this.dragFactory, true)');
- } else if (doc.viewType === CollectionViewType.Linear) {
+ } else if (doc.isButtonBar) {
dbox.ignoreClick = true;
}
data.droppedDocuments[i] = dbox;
diff --git a/src/client/util/History.ts b/src/client/util/History.ts
index 899abbe40..545e8acb4 100644
--- a/src/client/util/History.ts
+++ b/src/client/util/History.ts
@@ -1,6 +1,5 @@
-import { Doc, Opt, Field } from "../../new_fields/Doc";
+import { Doc } from "../../new_fields/Doc";
import { DocServer } from "../DocServer";
-import { RouteStore } from "../../server/RouteStore";
import { MainView } from "../views/MainView";
import * as qs from 'query-string';
import { Utils, OmitKeys } from "../../Utils";
@@ -26,7 +25,7 @@ export namespace HistoryUtil {
// const handlers: ((state: ParsedUrl | null) => void)[] = [];
function onHistory(e: PopStateEvent) {
- if (window.location.pathname !== RouteStore.home) {
+ if (window.location.pathname !== "/home") {
const url = e.state as ParsedUrl || parseUrl(window.location);
if (url) {
switch (url.type) {
@@ -54,7 +53,7 @@ export namespace HistoryUtil {
}
export function getState(): ParsedUrl {
- let state = copyState(history.state);
+ const state = copyState(history.state);
state.initializers = state.initializers || {};
return state;
}
@@ -161,7 +160,7 @@ export namespace HistoryUtil {
const pathname = location.pathname.substring(1);
const search = location.search;
const opts = search.length ? qs.parse(search, { sort: false }) : {};
- let pathnameSplit = pathname.split("/");
+ const pathnameSplit = pathname.split("/");
const type = pathnameSplit[0];
diff --git a/src/client/util/Import & Export/DirectoryImportBox.tsx b/src/client/util/Import & Export/DirectoryImportBox.tsx
index 5904088fc..071015193 100644
--- a/src/client/util/Import & Export/DirectoryImportBox.tsx
+++ b/src/client/util/Import & Export/DirectoryImportBox.tsx
@@ -1,8 +1,7 @@
import "fs";
import React = require("react");
import { Doc, DocListCast, DocListCastAsync, Opt } from "../../../new_fields/Doc";
-import { RouteStore } from "../../../server/RouteStore";
-import { action, observable, autorun, runInAction, computed, reaction, IReactionDisposer } from "mobx";
+import { action, observable, runInAction, computed, reaction, IReactionDisposer } from "mobx";
import { FieldViewProps, FieldView } from "../../views/nodes/FieldView";
import Measure, { ContentRect } from "react-measure";
import { library } from '@fortawesome/fontawesome-svg-core';
@@ -20,19 +19,13 @@ import { listSpec } from "../../../new_fields/Schema";
import { GooglePhotos } from "../../apis/google_docs/GooglePhotosClientUtils";
import { SchemaHeaderField } from "../../../new_fields/SchemaHeaderField";
import "./DirectoryImportBox.scss";
-import { Identified } from "../../Network";
+import { Networking } from "../../Network";
import { BatchedArray } from "array-batcher";
-import { ExifData } from "exif";
+import * as path from 'path';
+import { AcceptibleMedia } from "../../../server/SharedMediaTypes";
const unsupported = ["text/html", "text/plain"];
-interface ImageUploadResponse {
- name: string;
- path: string;
- type: string;
- exif: any;
-}
-
@observer
export default class DirectoryImportBox extends React.Component<FieldViewProps> {
private selector = React.createRef<HTMLInputElement>();
@@ -55,7 +48,7 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
constructor(props: FieldViewProps) {
super(props);
library.add(faTag, faPlus);
- let doc = this.props.Document;
+ const doc = this.props.Document;
this.editingMetadata = this.editingMetadata || false;
this.persistent = this.persistent || false;
!Cast(doc.data, listSpec(Doc)) && (doc.data = new List<Doc>());
@@ -85,17 +78,22 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
this.phase = "Initializing download...";
});
- let docs: Doc[] = [];
+ const docs: Doc[] = [];
- let files = e.target.files;
+ const files = e.target.files;
if (!files || files.length === 0) return;
- let directory = (files.item(0) as any).webkitRelativePath.split("/", 1)[0];
+ const directory = (files.item(0) as any).webkitRelativePath.split("/", 1)[0];
- let validated: File[] = [];
+ const validated: File[] = [];
for (let i = 0; i < files.length; i++) {
- let file = files.item(i);
- file && !unsupported.includes(file.type) && validated.push(file);
+ const file = files.item(i);
+ if (file && !unsupported.includes(file.type)) {
+ const ext = path.extname(file.name).toLowerCase();
+ if (AcceptibleMedia.imageFormats.includes(ext)) {
+ validated.push(file);
+ }
+ }
}
runInAction(() => {
@@ -103,13 +101,13 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
this.completed = 0;
});
- let sizes: number[] = [];
- let modifiedDates: number[] = [];
+ const sizes: number[] = [];
+ const modifiedDates: number[] = [];
runInAction(() => this.phase = `Internal: uploading ${this.quota - this.completed} files to Dash...`);
const batched = BatchedArray.from(validated, { batchSize: 15 });
- const uploads = await batched.batchedMapAsync<ImageUploadResponse>(async (batch, collector) => {
+ const uploads = await batched.batchedMapAsync<any>(async (batch, collector) => {
const formData = new FormData();
batch.forEach(file => {
@@ -118,20 +116,14 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
formData.append(Utils.GenerateGuid(), file);
});
- collector.push(...(await Identified.PostFormDataToServer(RouteStore.upload, formData)));
+ collector.push(...(await Networking.PostFormDataToServer("/uploadFormData", formData)));
runInAction(() => this.completed += batch.length);
});
- await Promise.all(uploads.map(async upload => {
- const type = upload.type;
- const path = Utils.prepend(upload.path);
- const options = {
- nativeWidth: 300,
- width: 300,
- title: upload.name
- };
- const document = await Docs.Get.DocumentFromType(type, path, options);
- const { data, error } = upload.exif;
+ await Promise.all(uploads.map(async ({ name, type, clientAccessPath, exifData }) => {
+ const path = Utils.prepend(clientAccessPath);
+ const document = await Docs.Get.DocumentFromType(type, path, { _width: 300, title: name });
+ const { data, error } = exifData;
if (document) {
Doc.GetProto(document).exif = error || Docs.Get.DocumentHierarchyFromJson(data);
docs.push(document);
@@ -139,26 +131,26 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
}));
for (let i = 0; i < docs.length; i++) {
- let doc = docs[i];
+ const doc = docs[i];
doc.size = sizes[i];
doc.modified = modifiedDates[i];
this.entries.forEach(entry => {
- let target = entry.onDataDoc ? Doc.GetProto(doc) : doc;
+ const target = entry.onDataDoc ? Doc.GetProto(doc) : doc;
target[entry.key] = entry.value;
});
}
- let doc = this.props.Document;
- let height: number = NumCast(doc.height) || 0;
- let offset: number = this.persistent ? (height === 0 ? 0 : height + 30) : 0;
- let options: DocumentOptions = {
+ const doc = this.props.Document;
+ const height: number = NumCast(doc.height) || 0;
+ const offset: number = this.persistent ? (height === 0 ? 0 : height + 30) : 0;
+ const options: DocumentOptions = {
title: `Import of ${directory}`,
- width: 1105,
- height: 500,
+ _width: 1105,
+ _height: 500,
x: NumCast(doc.x),
y: NumCast(doc.y) + offset
};
- let parent = this.props.ContainingCollectionView;
+ const parent = this.props.ContainingCollectionView;
if (parent) {
let importContainer: Doc;
if (docs.length < 50) {
@@ -197,18 +189,18 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
@action
preserveCentering = (rect: ContentRect) => {
- let bounds = rect.offset!;
+ const bounds = rect.offset!;
if (bounds.width === 0 || bounds.height === 0) {
return;
}
- let offset = this.dimensions / 2;
+ const offset = this.dimensions / 2;
this.left = bounds.width / 2 - offset;
this.top = bounds.height / 2 - offset;
}
@action
addMetadataEntry = async () => {
- let entryDoc = new Doc();
+ const entryDoc = new Doc();
entryDoc.checked = false;
entryDoc.key = keyPlaceholder;
entryDoc.value = valuePlaceholder;
@@ -217,7 +209,7 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
@action
remove = async (entry: ImportMetadataEntry) => {
- let metadata = await DocListCastAsync(this.props.Document.data);
+ const metadata = await DocListCastAsync(this.props.Document.data);
if (metadata) {
let index = this.entries.indexOf(entry);
if (index !== -1) {
@@ -231,18 +223,18 @@ export default class DirectoryImportBox extends React.Component<FieldViewProps>
}
render() {
- let dimensions = 50;
- let entries = DocListCast(this.props.Document.data);
- let isEditing = this.editingMetadata;
- let completed = this.completed;
- let quota = this.quota;
- let uploading = this.uploading;
- let showRemoveLabel = this.removeHover;
- let persistent = this.persistent;
+ const dimensions = 50;
+ const entries = DocListCast(this.props.Document.data);
+ const isEditing = this.editingMetadata;
+ const completed = this.completed;
+ const quota = this.quota;
+ const uploading = this.uploading;
+ const showRemoveLabel = this.removeHover;
+ const persistent = this.persistent;
let percent = `${completed / quota * 100}`;
percent = percent.split(".")[0];
percent = percent.startsWith("100") ? "99" : percent;
- let marginOffset = (percent.length === 1 ? 5 : 0) - 1.6;
+ const marginOffset = (percent.length === 1 ? 5 : 0) - 1.6;
const message = <span className={"phase"}>{this.phase}</span>;
const centerPiece = this.phase.includes("Google Photos") ?
<img src={"/assets/google_photos.png"} style={{
diff --git a/src/client/util/Import & Export/ImageUtils.ts b/src/client/util/Import & Export/ImageUtils.ts
index c9abf38fa..ff909cc6b 100644
--- a/src/client/util/Import & Export/ImageUtils.ts
+++ b/src/client/util/Import & Export/ImageUtils.ts
@@ -1,9 +1,8 @@
-import { Doc, DocListCast, DocListCastAsync, Opt } from "../../../new_fields/Doc";
+import { Doc } from "../../../new_fields/Doc";
import { ImageField } from "../../../new_fields/URLField";
import { Cast, StrCast } from "../../../new_fields/Types";
-import { RouteStore } from "../../../server/RouteStore";
import { Docs } from "../../documents/Documents";
-import { Identified } from "../../Network";
+import { Networking } from "../../Network";
import { Id } from "../../../new_fields/FieldSymbols";
import { Utils } from "../../../Utils";
@@ -15,15 +14,23 @@ export namespace ImageUtils {
return false;
}
const source = field.url.href;
- const response = await Identified.PostToServer(RouteStore.inspectImage, { source });
- const { error, data } = response.exifData;
+ const {
+ contentSize,
+ nativeWidth,
+ nativeHeight,
+ exifData: { error, data }
+ } = await Networking.PostToServer("/inspectImage", { source });
document.exif = error || Docs.Get.DocumentHierarchyFromJson(data);
+ const proto = Doc.GetProto(document);
+ proto["data-nativeWidth"] = nativeWidth;
+ proto["data-nativeHeight"] = nativeHeight;
+ proto.contentSize = contentSize;
return data !== undefined;
};
export const ExportHierarchyToFileSystem = async (collection: Doc): Promise<void> => {
const a = document.createElement("a");
- a.href = Utils.prepend(`${RouteStore.imageHierarchyExport}/${collection[Id]}`);
+ a.href = Utils.prepend(`/imageHierarchyExport/${collection[Id]}`);
a.download = `Dash Export [${StrCast(collection.title)}].zip`;
a.click();
};
diff --git a/src/client/util/Import & Export/ImportMetadataEntry.tsx b/src/client/util/Import & Export/ImportMetadataEntry.tsx
index f5198c39b..8e1c50bea 100644
--- a/src/client/util/Import & Export/ImportMetadataEntry.tsx
+++ b/src/client/util/Import & Export/ImportMetadataEntry.tsx
@@ -1,11 +1,11 @@
import React = require("react");
import { observer } from "mobx-react";
import { EditableView } from "../../views/EditableView";
-import { observable, action, computed } from "mobx";
+import { action, computed } from "mobx";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faPlus } from "@fortawesome/free-solid-svg-icons";
import { library } from '@fortawesome/fontawesome-svg-core';
-import { Opt, Doc } from "../../../new_fields/Doc";
+import { Doc } from "../../../new_fields/Doc";
import { StrCast, BoolCast } from "../../../new_fields/Types";
interface KeyValueProps {
@@ -85,7 +85,7 @@ export default class ImportMetadataEntry extends React.Component<KeyValueProps>
}
render() {
- let keyValueStyle: React.CSSProperties = {
+ const keyValueStyle: React.CSSProperties = {
paddingLeft: 10,
width: "50%",
opacity: this.valid ? 1 : 0.5,
diff --git a/src/client/util/InteractionUtils.tsx b/src/client/util/InteractionUtils.tsx
new file mode 100644
index 000000000..8fc5e8098
--- /dev/null
+++ b/src/client/util/InteractionUtils.tsx
@@ -0,0 +1,234 @@
+export namespace InteractionUtils {
+ export const MOUSETYPE = "mouse";
+ export const TOUCHTYPE = "touch";
+ export const PENTYPE = "pen";
+ export const ERASERTYPE = "eraser";
+
+ const POINTER_PEN_BUTTON = -1;
+ const REACT_POINTER_PEN_BUTTON = 0;
+ const ERASER_BUTTON = 5;
+
+ export function CreatePolyline(points: { X: number, Y: number }[], left: number, top: number, color: string, width: number) {
+ const pts = points.reduce((acc: string, pt: { X: number, Y: number }) => acc + `${pt.X - left},${pt.Y - top} `, "");
+ return (
+ <polyline
+ points={pts}
+ style={{
+ fill: "none",
+ stroke: color,
+ strokeWidth: width
+ }}
+ />
+ );
+ }
+
+ export class MultiTouchEvent<T extends React.TouchEvent | TouchEvent> {
+ constructor(
+ readonly fingers: number,
+ // readonly points: T extends React.TouchEvent ? React.TouchList : TouchList,
+ readonly targetTouches: T extends React.TouchEvent ? React.Touch[] : Touch[],
+ readonly touches: T extends React.TouchEvent ? React.Touch[] : Touch[],
+ readonly changedTouches: T extends React.TouchEvent ? React.Touch[] : Touch[],
+ readonly touchEvent: T extends React.TouchEvent ? React.TouchEvent : TouchEvent
+ ) { }
+ }
+
+ export interface MultiTouchEventDisposer { (): void; }
+
+ export function MakeMultiTouchTarget(
+ element: HTMLElement,
+ startFunc: (e: Event, me: MultiTouchEvent<React.TouchEvent>) => void
+ ): MultiTouchEventDisposer {
+ const onMultiTouchStartHandler = (e: Event) => startFunc(e, (e as CustomEvent<MultiTouchEvent<React.TouchEvent>>).detail);
+ // const onMultiTouchMoveHandler = moveFunc ? (e: Event) => moveFunc(e, (e as CustomEvent<MultiTouchEvent<TouchEvent>>).detail) : undefined;
+ // const onMultiTouchEndHandler = endFunc ? (e: Event) => endFunc(e, (e as CustomEvent<MultiTouchEvent<TouchEvent>>).detail) : undefined;
+ element.addEventListener("dashOnTouchStart", onMultiTouchStartHandler);
+ // if (onMultiTouchMoveHandler) {
+ // element.addEventListener("dashOnTouchMove", onMultiTouchMoveHandler);
+ // }
+ // if (onMultiTouchEndHandler) {
+ // element.addEventListener("dashOnTouchEnd", onMultiTouchEndHandler);
+ // }
+ return () => {
+ element.removeEventListener("dashOnTouchStart", onMultiTouchStartHandler);
+ // if (onMultiTouchMoveHandler) {
+ // element.removeEventListener("dashOnTouchMove", onMultiTouchMoveHandler);
+ // }
+ // if (onMultiTouchEndHandler) {
+ // element.removeEventListener("dashOnTouchend", onMultiTouchEndHandler);
+ // }
+ };
+ }
+
+ export function MakeHoldTouchTarget(
+ element: HTMLElement,
+ func: (e: Event, me: MultiTouchEvent<React.TouchEvent>) => void
+ ): MultiTouchEventDisposer {
+ const handler = (e: Event) => func(e, (e as CustomEvent<MultiTouchEvent<React.TouchEvent>>).detail);
+ element.addEventListener("dashOnTouchHoldStart", handler);
+ return () => {
+ element.removeEventListener("dashOnTouchHoldStart", handler);
+ };
+ }
+
+ export function GetMyTargetTouches(mte: InteractionUtils.MultiTouchEvent<React.TouchEvent | TouchEvent>, prevPoints: Map<number, React.Touch>, ignorePen: boolean): React.Touch[] {
+ const myTouches = new Array<React.Touch>();
+ for (const pt of mte.touches) {
+ if (!ignorePen || ((pt as any).radiusX > 1 && (pt as any).radiusY > 1)) {
+ for (const tPt of mte.targetTouches) {
+ if (tPt?.screenX === pt?.screenX && tPt?.screenY === pt?.screenY) {
+ if (pt && prevPoints.has(pt.identifier)) {
+ myTouches.push(pt);
+ }
+ }
+ }
+ }
+ }
+ // if (mte.touches.length !== myTouches.length) {
+ // throw Error("opo")
+ // }
+ return myTouches;
+ }
+
+ export function IsType(e: PointerEvent | React.PointerEvent, type: string): boolean {
+ switch (type) {
+ // pen and eraser are both pointer type 'pen', but pen is button 0 and eraser is button 5. -syip2
+ case PENTYPE:
+ return e.pointerType === PENTYPE && (e.button === -1 || e.button === 0);
+ case ERASERTYPE:
+ return e.pointerType === PENTYPE && e.button === (e instanceof PointerEvent ? ERASER_BUTTON : ERASER_BUTTON);
+ default:
+ return e.pointerType === type;
+ }
+ }
+
+ export function TwoPointEuclidist(pt1: React.Touch, pt2: React.Touch): number {
+ return Math.sqrt(Math.pow(pt1.clientX - pt2.clientX, 2) + Math.pow(pt1.clientY - pt2.clientY, 2));
+ }
+
+ /**
+ * Returns the centroid of an n-arbitrary long list of points (takes the average the x and y components of each point)
+ * @param pts - n-arbitrary long list of points
+ */
+ export function CenterPoint(pts: React.Touch[]): { X: number, Y: number } {
+ const centerX = pts.map(pt => pt.clientX).reduce((a, b) => a + b, 0) / pts.length;
+ const centerY = pts.map(pt => pt.clientY).reduce((a, b) => a + b, 0) / pts.length;
+ return { X: centerX, Y: centerY };
+ }
+
+ /**
+ * Returns -1 if pinching out, 0 if not pinching, and 1 if pinching in
+ * @param pt1 - new point that corresponds to oldPoint1
+ * @param pt2 - new point that corresponds to oldPoint2
+ * @param oldPoint1 - previous point 1
+ * @param oldPoint2 - previous point 2
+ */
+ export function Pinching(pt1: React.Touch, pt2: React.Touch, oldPoint1: React.Touch, oldPoint2: React.Touch): number {
+ const threshold = 4;
+ const oldDist = TwoPointEuclidist(oldPoint1, oldPoint2);
+ const newDist = TwoPointEuclidist(pt1, pt2);
+
+ /** if they have the same sign, then we are either pinching in or out.
+ * threshold it by 10 (it has to be pinching by at least threshold to be a valid pinch)
+ * so that it can still pan without freaking out
+ */
+ if (Math.sign(oldDist) === Math.sign(newDist) && Math.abs(oldDist - newDist) > threshold) {
+ return Math.sign(oldDist - newDist);
+ }
+ return 0;
+ }
+
+ /**
+ * Returns -1 if pinning and pinching out, 0 if not pinning, and 1 if pinching in
+ * @param pt1 - new point that corresponds to oldPoint1
+ * @param pt2 - new point that corresponds to oldPoint2
+ * @param oldPoint1 - previous point 1
+ * @param oldPoint2 - previous point 2
+ */
+ export function Pinning(pt1: React.Touch, pt2: React.Touch, oldPoint1: React.Touch, oldPoint2: React.Touch): number {
+ const threshold = 4;
+
+ const pt1Dist = TwoPointEuclidist(oldPoint1, pt1);
+ const pt2Dist = TwoPointEuclidist(oldPoint2, pt2);
+
+ const pinching = Pinching(pt1, pt2, oldPoint1, oldPoint2);
+
+ if (pinching !== 0) {
+ if ((pt1Dist < threshold && pt2Dist > threshold) || (pt1Dist > threshold && pt2Dist < threshold)) {
+ return pinching;
+ }
+ }
+ return 0;
+ }
+
+ export function IsDragging(oldTouches: Map<number, React.Touch>, newTouches: React.Touch[], leniency: number): boolean {
+ for (const touch of newTouches) {
+ if (touch) {
+ const oldTouch = oldTouches.get(touch.identifier);
+ if (oldTouch) {
+ if (TwoPointEuclidist(touch, oldTouch) >= leniency) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ // These might not be very useful anymore, but I'll leave them here for now -syip2
+ {
+
+
+ /**
+ * Returns the type of Touch Interaction from a list of points.
+ * Also returns any data that is associated with a Touch Interaction
+ * @param pts - List of points
+ */
+ // export function InterpretPointers(pts: React.Touch[]): { type: Opt<TouchInteraction>, data?: any } {
+ // const leniency = 200;
+ // switch (pts.length) {
+ // case 1:
+ // return { type: OneFinger };
+ // case 2:
+ // return { type: TwoSeperateFingers };
+ // case 3:
+ // let pt1 = pts[0];
+ // let pt2 = pts[1];
+ // let pt3 = pts[2];
+ // if (pt1 && pt2 && pt3) {
+ // let dist12 = TwoPointEuclidist(pt1, pt2);
+ // let dist23 = TwoPointEuclidist(pt2, pt3);
+ // let dist13 = TwoPointEuclidist(pt1, pt3);
+ // console.log(`distances: ${dist12}, ${dist23}, ${dist13}`);
+ // let dist12close = dist12 < leniency;
+ // let dist23close = dist23 < leniency;
+ // let dist13close = dist13 < leniency;
+ // let xor2313 = dist23close ? !dist13close : dist13close;
+ // let xor = dist12close ? !xor2313 : xor2313;
+ // // three input xor because javascript doesn't have logical xor's
+ // if (xor) {
+ // let points: number[] = [];
+ // let min = Math.min(dist12, dist23, dist13);
+ // switch (min) {
+ // case dist12:
+ // points = [0, 1, 2];
+ // break;
+ // case dist23:
+ // points = [1, 2, 0];
+ // break;
+ // case dist13:
+ // points = [0, 2, 1];
+ // break;
+ // }
+ // return { type: TwoToOneFingers, data: points };
+ // }
+ // else {
+ // return { type: ThreeSeperateFingers, data: null };
+ // }
+ // }
+ // default:
+ // return { type: undefined };
+ // }
+ // }
+ }
+} \ No newline at end of file
diff --git a/src/client/util/LinkManager.ts b/src/client/util/LinkManager.ts
index eedc4967d..5f3667acc 100644
--- a/src/client/util/LinkManager.ts
+++ b/src/client/util/LinkManager.ts
@@ -38,16 +38,16 @@ export class LinkManager {
}
public getAllLinks(): Doc[] {
- let ldoc = LinkManager.Instance.LinkManagerDoc;
+ const ldoc = LinkManager.Instance.LinkManagerDoc;
if (ldoc) {
- let docs = DocListCast(ldoc.allLinks);
+ const docs = DocListCast(ldoc.allLinks);
return docs;
}
return [];
}
public addLink(linkDoc: Doc): boolean {
- let linkList = LinkManager.Instance.getAllLinks();
+ const linkList = LinkManager.Instance.getAllLinks();
linkList.push(linkDoc);
if (LinkManager.Instance.LinkManagerDoc) {
LinkManager.Instance.LinkManagerDoc.allLinks = new List<Doc>(linkList);
@@ -57,8 +57,8 @@ export class LinkManager {
}
public deleteLink(linkDoc: Doc): boolean {
- let linkList = LinkManager.Instance.getAllLinks();
- let index = LinkManager.Instance.getAllLinks().indexOf(linkDoc);
+ const linkList = LinkManager.Instance.getAllLinks();
+ const index = LinkManager.Instance.getAllLinks().indexOf(linkDoc);
if (index > -1) {
linkList.splice(index, 1);
if (LinkManager.Instance.LinkManagerDoc) {
@@ -70,24 +70,24 @@ export class LinkManager {
}
// finds all links that contain the given anchor
- public getAllRelatedLinks(anchor: Doc): Doc[] {//List<Doc> {
- let related = LinkManager.Instance.getAllLinks().filter(link => {
- let protomatch1 = Doc.AreProtosEqual(anchor, Cast(link.anchor1, Doc, null));
- let protomatch2 = Doc.AreProtosEqual(anchor, Cast(link.anchor2, Doc, null));
+ public getAllRelatedLinks(anchor: Doc): Doc[] {
+ const related = LinkManager.Instance.getAllLinks().filter(link => {
+ const protomatch1 = Doc.AreProtosEqual(anchor, Cast(link.anchor1, Doc, null));
+ const protomatch2 = Doc.AreProtosEqual(anchor, Cast(link.anchor2, Doc, null));
return protomatch1 || protomatch2 || Doc.AreProtosEqual(link, anchor);
});
return related;
}
public deleteAllLinksOnAnchor(anchor: Doc) {
- let related = LinkManager.Instance.getAllRelatedLinks(anchor);
+ const related = LinkManager.Instance.getAllRelatedLinks(anchor);
related.forEach(linkDoc => LinkManager.Instance.deleteLink(linkDoc));
}
public addGroupType(groupType: string): boolean {
if (LinkManager.Instance.LinkManagerDoc) {
LinkManager.Instance.LinkManagerDoc[groupType] = new List<string>([]);
- let groupTypes = LinkManager.Instance.getAllGroupTypes();
+ const groupTypes = LinkManager.Instance.getAllGroupTypes();
groupTypes.push(groupType);
LinkManager.Instance.LinkManagerDoc.allGroupTypes = new List<string>(groupTypes);
return true;
@@ -99,8 +99,8 @@ export class LinkManager {
public deleteGroupType(groupType: string): boolean {
if (LinkManager.Instance.LinkManagerDoc) {
if (LinkManager.Instance.LinkManagerDoc[groupType]) {
- let groupTypes = LinkManager.Instance.getAllGroupTypes();
- let index = groupTypes.findIndex(type => type.toUpperCase() === groupType.toUpperCase());
+ const groupTypes = LinkManager.Instance.getAllGroupTypes();
+ const index = groupTypes.findIndex(type => type.toUpperCase() === groupType.toUpperCase());
if (index > -1) groupTypes.splice(index, 1);
LinkManager.Instance.LinkManagerDoc.allGroupTypes = new List<string>(groupTypes);
LinkManager.Instance.LinkManagerDoc[groupType] = undefined;
@@ -146,8 +146,8 @@ export class LinkManager {
}
public addGroupToAnchor(linkDoc: Doc, anchor: Doc, groupDoc: Doc, replace: boolean = false) {
- let groups = LinkManager.Instance.getAnchorGroups(linkDoc, anchor);
- let index = groups.findIndex(gDoc => {
+ const groups = LinkManager.Instance.getAnchorGroups(linkDoc, anchor);
+ const index = groups.findIndex(gDoc => {
return StrCast(groupDoc.type).toUpperCase() === StrCast(gDoc.type).toUpperCase();
});
if (index > -1 && replace) {
@@ -161,32 +161,32 @@ export class LinkManager {
// removes group doc of given group type only from given anchor on given link
public removeGroupFromAnchor(linkDoc: Doc, anchor: Doc, groupType: string) {
- let groups = LinkManager.Instance.getAnchorGroups(linkDoc, anchor);
- let newGroups = groups.filter(groupDoc => StrCast(groupDoc.type).toUpperCase() !== groupType.toUpperCase());
+ const groups = LinkManager.Instance.getAnchorGroups(linkDoc, anchor);
+ const newGroups = groups.filter(groupDoc => StrCast(groupDoc.type).toUpperCase() !== groupType.toUpperCase());
LinkManager.Instance.setAnchorGroups(linkDoc, anchor, newGroups);
}
// returns map of group type to anchor's links in that group type
public getRelatedGroupedLinks(anchor: Doc): Map<string, Array<Doc>> {
- let related = this.getAllRelatedLinks(anchor);
- let anchorGroups = new Map<string, Array<Doc>>();
+ const related = this.getAllRelatedLinks(anchor);
+ const anchorGroups = new Map<string, Array<Doc>>();
related.forEach(link => {
- let groups = LinkManager.Instance.getAnchorGroups(link, anchor);
+ const groups = LinkManager.Instance.getAnchorGroups(link, anchor);
if (groups.length > 0) {
groups.forEach(groupDoc => {
- let groupType = StrCast(groupDoc.type);
+ const groupType = StrCast(groupDoc.type);
if (groupType === "") {
- let group = anchorGroups.get("*");
+ const group = anchorGroups.get("*");
anchorGroups.set("*", group ? [...group, link] : [link]);
} else {
- let group = anchorGroups.get(groupType);
+ const group = anchorGroups.get(groupType);
anchorGroups.set(groupType, group ? [...group, link] : [link]);
}
});
} else {
// if link is in no groups then put it in default group
- let group = anchorGroups.get("*");
+ const group = anchorGroups.get("*");
anchorGroups.set("*", group ? [...group, link] : [link]);
}
@@ -212,11 +212,11 @@ export class LinkManager {
// returns a list of all metadata docs associated with the given group type
public getAllMetadataDocsInGroup(groupType: string): Array<Doc> {
- let md: Doc[] = [];
- let allLinks = LinkManager.Instance.getAllLinks();
+ const md: Doc[] = [];
+ const allLinks = LinkManager.Instance.getAllLinks();
allLinks.forEach(linkDoc => {
- let anchor1Groups = LinkManager.Instance.getAnchorGroups(linkDoc, Cast(linkDoc.anchor1, Doc, null));
- let anchor2Groups = LinkManager.Instance.getAnchorGroups(linkDoc, Cast(linkDoc.anchor2, Doc, null));
+ const anchor1Groups = LinkManager.Instance.getAnchorGroups(linkDoc, Cast(linkDoc.anchor1, Doc, null));
+ const anchor2Groups = LinkManager.Instance.getAnchorGroups(linkDoc, Cast(linkDoc.anchor2, Doc, null));
anchor1Groups.forEach(groupDoc => { if (StrCast(groupDoc.type).toUpperCase() === groupType.toUpperCase()) { const meta = Cast(groupDoc.metadata, Doc, null); meta && md.push(meta); } });
anchor2Groups.forEach(groupDoc => { if (StrCast(groupDoc.type).toUpperCase() === groupType.toUpperCase()) { const meta = Cast(groupDoc.metadata, Doc, null); meta && md.push(meta); } });
});
@@ -225,8 +225,8 @@ export class LinkManager {
// checks if a link with the given anchors exists
public doesLinkExist(anchor1: Doc, anchor2: Doc): boolean {
- let allLinks = LinkManager.Instance.getAllLinks();
- let index = allLinks.findIndex(linkDoc => {
+ const allLinks = LinkManager.Instance.getAllLinks();
+ const index = allLinks.findIndex(linkDoc => {
return (Doc.AreProtosEqual(Cast(linkDoc.anchor1, Doc, null), anchor1) && Doc.AreProtosEqual(Cast(linkDoc.anchor2, Doc, null), anchor2)) ||
(Doc.AreProtosEqual(Cast(linkDoc.anchor1, Doc, null), anchor2) && Doc.AreProtosEqual(Cast(linkDoc.anchor2, Doc, null), anchor1));
});
@@ -237,14 +237,12 @@ export class LinkManager {
//TODO This should probably return undefined if there isn't an opposite anchor
//TODO This should also await the return value of the anchor so we don't filter out promises
public getOppositeAnchor(linkDoc: Doc, anchor: Doc): Doc | undefined {
- let a1 = Cast(linkDoc.anchor1, Doc, null);
- let a2 = Cast(linkDoc.anchor2, Doc, null);
+ const a1 = Cast(linkDoc.anchor1, Doc, null);
+ const a2 = Cast(linkDoc.anchor2, Doc, null);
if (Doc.AreProtosEqual(anchor, a1)) return a2;
if (Doc.AreProtosEqual(anchor, a2)) return a1;
if (Doc.AreProtosEqual(anchor, linkDoc)) return linkDoc;
}
}
-Scripting.addGlobal(function links(doc: any) {
- return new List(LinkManager.Instance.getAllRelatedLinks(doc));
-});
+Scripting.addGlobal(function links(doc: any) { return new List(LinkManager.Instance.getAllRelatedLinks(doc)); }); \ No newline at end of file
diff --git a/src/client/util/ParagraphNodeSpec.ts b/src/client/util/ParagraphNodeSpec.ts
index 3a993e1ff..0a3b68217 100644
--- a/src/client/util/ParagraphNodeSpec.ts
+++ b/src/client/util/ParagraphNodeSpec.ts
@@ -34,6 +34,7 @@ const ParagraphNodeSpec: NodeSpec = {
color: { default: null },
id: { default: null },
indent: { default: null },
+ inset: { default: null },
lineSpacing: { default: null },
// TODO: Add UI to let user edit / clear padding.
paddingBottom: { default: null },
@@ -76,6 +77,7 @@ function toDOM(node: Node): DOMOutputSpec {
const {
align,
indent,
+ inset,
lineSpacing,
paddingTop,
paddingBottom,
@@ -105,6 +107,14 @@ function toDOM(node: Node): DOMOutputSpec {
style += `padding-bottom: ${paddingBottom};`;
}
+ if (indent) {
+ style += `text-indent: ${indent}; padding-left: ${indent < 0 ? -indent : undefined};`;
+ }
+
+ if (inset) {
+ style += `margin-left: ${inset}; margin-right: ${inset};`;
+ }
+
style && (attrs.style = style);
if (indent) {
diff --git a/src/client/util/ProsemirrorExampleTransfer.ts b/src/client/util/ProsemirrorExampleTransfer.ts
index 003ff6272..da3815181 100644
--- a/src/client/util/ProsemirrorExampleTransfer.ts
+++ b/src/client/util/ProsemirrorExampleTransfer.ts
@@ -4,8 +4,8 @@ import { undoInputRule } from "prosemirror-inputrules";
import { Schema } from "prosemirror-model";
import { liftListItem, sinkListItem } from "./prosemirrorPatches.js";
import { splitListItem, wrapInList, } from "prosemirror-schema-list";
-import { EditorState, Transaction, TextSelection, NodeSelection } from "prosemirror-state";
-import { TooltipTextMenu } from "./TooltipTextMenu";
+import { EditorState, Transaction, TextSelection } from "prosemirror-state";
+import { SelectionManager } from "./SelectionManager";
const mac = typeof navigator !== "undefined" ? /Mac/.test(navigator.platform) : false;
@@ -15,22 +15,22 @@ export let updateBullets = (tx2: Transaction, schema: Schema, mapStyle?: string)
let fontSize: number | undefined = undefined;
tx2.doc.descendants((node: any, offset: any, index: any) => {
if (node.type === schema.nodes.ordered_list || node.type === schema.nodes.list_item) {
- let path = (tx2.doc.resolve(offset) as any).path;
+ const path = (tx2.doc.resolve(offset) as any).path;
let depth = Array.from(path).reduce((p: number, c: any) => p + (c.hasOwnProperty("type") && c.type === schema.nodes.ordered_list ? 1 : 0), 0);
if (node.type === schema.nodes.ordered_list) depth++;
fontSize = depth === 1 && node.attrs.setFontSize ? Number(node.attrs.setFontSize) : fontSize;
- let fsize = fontSize && node.type === schema.nodes.ordered_list ? Math.max(6, fontSize - (depth - 1) * 4) : undefined;
+ const fsize = fontSize && node.type === schema.nodes.ordered_list ? Math.max(6, fontSize - (depth - 1) * 4) : undefined;
tx2.setNodeMarkup(offset, node.type, { ...node.attrs, mapStyle: mapStyle ? mapStyle : node.attrs.mapStyle, bulletStyle: depth, inheritedFontSize: fsize }, node.marks);
}
});
return tx2;
};
export default function buildKeymap<S extends Schema<any>>(schema: S, mapKeys?: KeyMap): KeyMap {
- let keys: { [key: string]: any } = {}, type;
+ const keys: { [key: string]: any } = {};
function bind(key: string, cmd: any) {
if (mapKeys) {
- let mapped = mapKeys[key];
+ const mapped = mapKeys[key];
if (mapped === false) return;
if (mapped) key = mapped;
}
@@ -46,7 +46,11 @@ export default function buildKeymap<S extends Schema<any>>(schema: S, mapKeys?:
bind("Alt-ArrowUp", joinUp);
bind("Alt-ArrowDown", joinDown);
bind("Mod-BracketLeft", lift);
- bind("Escape", selectParentNode);
+ bind("Escape", (state: EditorState<S>, dispatch: (tx: Transaction<S>) => void) => {
+ dispatch(state.tr.setSelection(TextSelection.create(state.doc, state.selection.from, state.selection.from)));
+ (document.activeElement as any).blur?.();
+ SelectionManager.DeselectAll();
+ });
bind("Mod-b", toggleMark(schema.marks.strong));
bind("Mod-B", toggleMark(schema.marks.strong));
@@ -79,7 +83,7 @@ export default function buildKeymap<S extends Schema<any>>(schema: S, mapKeys?:
// });
- let cmd = chainCommands(exitCode, (state, dispatch) => {
+ const cmd = chainCommands(exitCode, (state, dispatch) => {
if (dispatch) {
dispatch(state.tr.replaceSelectionWith(schema.nodes.hard_break.create()).scrollIntoView());
return true;
@@ -99,27 +103,25 @@ export default function buildKeymap<S extends Schema<any>>(schema: S, mapKeys?:
bind("Shift-Ctrl-" + i, setBlockType(schema.nodes.heading, { level: i }));
}
- let hr = schema.nodes.horizontal_rule;
+ const hr = schema.nodes.horizontal_rule;
bind("Mod-_", (state: EditorState<S>, dispatch: (tx: Transaction<S>) => void) => {
dispatch(state.tr.replaceSelectionWith(hr.create()).scrollIntoView());
return true;
});
- bind("Mod-s", TooltipTextMenu.insertStar);
-
bind("Tab", (state: EditorState<S>, dispatch: (tx: Transaction<S>) => void) => {
- var ref = state.selection;
- var range = ref.$from.blockRange(ref.$to);
- var marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());
+ const ref = state.selection;
+ const range = ref.$from.blockRange(ref.$to);
+ const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());
if (!sinkListItem(schema.nodes.list_item)(state, (tx2: Transaction) => {
- let tx3 = updateBullets(tx2, schema);
+ const tx3 = updateBullets(tx2, schema);
marks && tx3.ensureMarks([...marks]);
marks && tx3.setStoredMarks([...marks]);
dispatch(tx3);
})) { // couldn't sink into an existing list, so wrap in a new one
- let newstate = state.applyTransaction(state.tr.setSelection(TextSelection.create(state.doc, range!.start, range!.end)));
+ const newstate = state.applyTransaction(state.tr.setSelection(TextSelection.create(state.doc, range!.start, range!.end)));
if (!wrapInList(schema.nodes.ordered_list)(newstate.state, (tx2: Transaction) => {
- let tx3 = updateBullets(tx2, schema);
+ const tx3 = updateBullets(tx2, schema);
// when promoting to a list, assume list will format things so don't copy the stored marks.
marks && tx3.ensureMarks([...marks]);
marks && tx3.setStoredMarks([...marks]);
@@ -131,10 +133,10 @@ export default function buildKeymap<S extends Schema<any>>(schema: S, mapKeys?:
});
bind("Shift-Tab", (state: EditorState<S>, dispatch: (tx: Transaction<S>) => void) => {
- var marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());
+ const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());
if (!liftListItem(schema.nodes.list_item)(state.tr, (tx2: Transaction) => {
- let tx3 = updateBullets(tx2, schema);
+ const tx3 = updateBullets(tx2, schema);
marks && tx3.ensureMarks([...marks]);
marks && tx3.setStoredMarks([...marks]);
dispatch(tx3);
@@ -143,14 +145,14 @@ export default function buildKeymap<S extends Schema<any>>(schema: S, mapKeys?:
}
});
- let splitMetadata = (marks: any, tx: Transaction) => {
+ const splitMetadata = (marks: any, tx: Transaction) => {
marks && tx.ensureMarks(marks.filter((val: any) => val.type !== schema.marks.metadata && val.type !== schema.marks.metadataKey && val.type !== schema.marks.metadataVal));
marks && tx.setStoredMarks(marks.filter((val: any) => val.type !== schema.marks.metadata && val.type !== schema.marks.metadataKey && val.type !== schema.marks.metadataVal));
return tx;
};
- bind("Enter", (state: EditorState<S>, dispatch: (tx: Transaction<S>) => void) => {
- var marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());
- if (!splitListItem(schema.nodes.list_item)(state, (tx3: Transaction) => dispatch(tx3))) {
+ bind("Enter", (state: EditorState<S>, dispatch: (tx: Transaction<Schema<any, any>>) => void) => {
+ const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());
+ if (!splitListItem(schema.nodes.list_item)(state, dispatch)) {
if (!splitBlockKeepMarks(state, (tx3: Transaction) => {
splitMetadata(marks, tx3);
if (!liftListItem(schema.nodes.list_item)(tx3, dispatch as ((tx: Transaction<Schema<any, any>>) => void))) {
@@ -163,18 +165,18 @@ export default function buildKeymap<S extends Schema<any>>(schema: S, mapKeys?:
return true;
});
bind("Space", (state: EditorState<S>, dispatch: (tx: Transaction<S>) => void) => {
- var marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());
+ const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks());
dispatch(splitMetadata(marks, state.tr));
return false;
});
bind(":", (state: EditorState<S>, dispatch: (tx: Transaction<S>) => void) => {
- let range = state.selection.$from.blockRange(state.selection.$to, (node: any) => {
+ const range = state.selection.$from.blockRange(state.selection.$to, (node: any) => {
return !node.marks || !node.marks.find((m: any) => m.type === schema.marks.metadata);
});
- let path = (state.doc.resolve(state.selection.from - 1) as any).path;
- let spaceSeparator = path[path.length - 3].childCount > 1 ? 0 : -1;
- let textsel = TextSelection.create(state.doc, range!.end - path[path.length - 3].lastChild.nodeSize + spaceSeparator, range!.end);
- let text = range ? state.doc.textBetween(textsel.from, textsel.to) : "";
+ const path = (state.doc.resolve(state.selection.from - 1) as any).path;
+ const spaceSeparator = path[path.length - 3].childCount > 1 ? 0 : -1;
+ const textsel = TextSelection.create(state.doc, range!.end - path[path.length - 3].lastChild.nodeSize + spaceSeparator, range!.end);
+ const text = range ? state.doc.textBetween(textsel.from, textsel.to) : "";
let whitespace = text.length - 1;
for (; whitespace >= 0 && text[whitespace] !== " "; whitespace--) { }
if (text.endsWith(":")) {
diff --git a/src/client/util/RichTextMenu.scss b/src/client/util/RichTextMenu.scss
new file mode 100644
index 000000000..43cc23ecd
--- /dev/null
+++ b/src/client/util/RichTextMenu.scss
@@ -0,0 +1,121 @@
+@import "../views/globalCssVariables";
+
+.button-dropdown-wrapper {
+ position: relative;
+
+ .dropdown-button {
+ width: 15px;
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+
+ .dropdown-button-combined {
+ width: 50px;
+ display: flex;
+ justify-content: space-between;
+
+ svg:nth-child(2) {
+ margin-top: 2px;
+ }
+ }
+
+ .dropdown {
+ position: absolute;
+ top: 35px;
+ left: 0;
+ background-color: #323232;
+ color: $light-color-secondary;
+ border: 1px solid #4d4d4d;
+ border-radius: 0 6px 6px 6px;
+ box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25);
+ min-width: 150px;
+ padding: 5px;
+ font-size: 12px;
+ z-index: 10001;
+
+ button {
+ background-color: #323232;
+ border: 1px solid black;
+ border-radius: 1px;
+ padding: 6px;
+ margin: 5px 0;
+ font-size: 10px;
+
+ &:hover {
+ background-color: black;
+ }
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+
+ input {
+ color: black;
+ }
+}
+
+.link-menu {
+ .divider {
+ background-color: white;
+ height: 1px;
+ width: 100%;
+ }
+}
+
+.color-preview-button {
+ .color-preview {
+ width: 100%;
+ height: 3px;
+ margin-top: 3px;
+ }
+}
+
+.color-wrapper {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+
+ button.color-button {
+ width: 20px;
+ height: 20px;
+ border-radius: 15px !important;
+ margin: 3px;
+ border: 2px solid transparent !important;
+ padding: 3px;
+
+ &.active {
+ border: 2px solid white !important;
+ }
+ }
+}
+
+select {
+ background-color: #323232;
+ color: white;
+ border: 1px solid black;
+ // border-top: none;
+ // border-bottom: none;
+ font-size: 12px;
+ height: 100%;
+ margin-right: 3px;
+
+ &:focus,
+ &:hover {
+ background-color: black;
+ }
+
+ &::-ms-expand {
+ color: white;
+ }
+}
+
+.row-2 {
+ display: flex;
+ justify-content: space-between;
+
+ >div {
+ display: flex;
+ }
+} \ No newline at end of file
diff --git a/src/client/util/RichTextMenu.tsx b/src/client/util/RichTextMenu.tsx
new file mode 100644
index 000000000..e07efe056
--- /dev/null
+++ b/src/client/util/RichTextMenu.tsx
@@ -0,0 +1,860 @@
+import React = require("react");
+import AntimodeMenu from "../views/AntimodeMenu";
+import { observable, action, } from "mobx";
+import { observer } from "mobx-react";
+import { Mark, MarkType, Node as ProsNode, NodeType, ResolvedPos, Schema } from "prosemirror-model";
+import { schema } from "./RichTextSchema";
+import { EditorView } from "prosemirror-view";
+import { EditorState, NodeSelection, TextSelection } from "prosemirror-state";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { IconProp, library } from '@fortawesome/fontawesome-svg-core';
+import { faBold, faItalic, faUnderline, faStrikethrough, faSubscript, faSuperscript, faIndent, faEyeDropper, faCaretDown, faPalette, faHighlighter, faLink, faPaintRoller, faSleigh } from "@fortawesome/free-solid-svg-icons";
+import { MenuItem, Dropdown } from "prosemirror-menu";
+import { updateBullets } from "./ProsemirrorExampleTransfer";
+import { FieldViewProps } from "../views/nodes/FieldView";
+import { NumCast, Cast, StrCast } from "../../new_fields/Types";
+import { FormattedTextBoxProps } from "../views/nodes/FormattedTextBox";
+import { unimplementedFunction, Utils } from "../../Utils";
+import { wrapInList } from "prosemirror-schema-list";
+import { PastelSchemaPalette, DarkPastelSchemaPalette } from '../../new_fields/SchemaHeaderField';
+import "./RichTextMenu.scss";
+import { DocServer } from "../DocServer";
+import { Doc } from "../../new_fields/Doc";
+import { SelectionManager } from "./SelectionManager";
+import { LinkManager } from "./LinkManager";
+const { toggleMark, setBlockType } = require("prosemirror-commands");
+
+library.add(faBold, faItalic, faUnderline, faStrikethrough, faSuperscript, faSubscript, faIndent, faEyeDropper, faCaretDown, faPalette, faHighlighter, faLink, faPaintRoller);
+
+@observer
+export default class RichTextMenu extends AntimodeMenu {
+ static Instance: RichTextMenu;
+ public overMenu: boolean = false; // kind of hacky way to prevent selects not being selectable
+
+ private view?: EditorView;
+ public editorProps: FieldViewProps & FormattedTextBoxProps | undefined;
+
+ public _brushMap: Map<string, Set<Mark>> = new Map();
+ private fontSizeOptions: { mark: Mark | null, title: string, label: string, command: any, hidden?: boolean, style?: {} }[];
+ private fontFamilyOptions: { mark: Mark | null, title: string, label: string, command: any, hidden?: boolean, style?: {} }[];
+ private listTypeOptions: { node: NodeType | any | null, title: string, label: string, command: any, style?: {} }[];
+ private fontColors: (string | undefined)[];
+ private highlightColors: (string | undefined)[];
+
+ @observable private boldActive: boolean = false;
+ @observable private italicsActive: boolean = false;
+ @observable private underlineActive: boolean = false;
+ @observable private strikethroughActive: boolean = false;
+ @observable private subscriptActive: boolean = false;
+ @observable private superscriptActive: boolean = false;
+
+ @observable private activeFontSize: string = "";
+ @observable private activeFontFamily: string = "";
+ @observable private activeListType: string = "";
+
+ @observable private brushIsEmpty: boolean = true;
+ @observable private brushMarks: Set<Mark> = new Set();
+ @observable private showBrushDropdown: boolean = false;
+
+ @observable private activeFontColor: string = "black";
+ @observable private showColorDropdown: boolean = false;
+
+ @observable private activeHighlightColor: string = "transparent";
+ @observable private showHighlightDropdown: boolean = false;
+
+ @observable private currentLink: string | undefined = "";
+ @observable private showLinkDropdown: boolean = false;
+
+ constructor(props: Readonly<{}>) {
+ super(props);
+ RichTextMenu.Instance = this;
+ this._canFade = false;
+
+ this.fontSizeOptions = [
+ { mark: schema.marks.pFontSize.create({ fontSize: 7 }), title: "Set font size", label: "7pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 8 }), title: "Set font size", label: "8pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 9 }), title: "Set font size", label: "9pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 10 }), title: "Set font size", label: "10pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 12 }), title: "Set font size", label: "12pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 14 }), title: "Set font size", label: "14pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 16 }), title: "Set font size", label: "16pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 18 }), title: "Set font size", label: "18pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 20 }), title: "Set font size", label: "20pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 24 }), title: "Set font size", label: "24pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 32 }), title: "Set font size", label: "32pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 48 }), title: "Set font size", label: "48pt", command: this.changeFontSize },
+ { mark: schema.marks.pFontSize.create({ fontSize: 72 }), title: "Set font size", label: "72pt", command: this.changeFontSize },
+ { mark: null, title: "", label: "various", command: unimplementedFunction, hidden: true },
+ { mark: null, title: "", label: "13pt", command: unimplementedFunction, hidden: true }, // this is here because the default size is 13, but there is no actual 13pt option
+ ];
+
+ this.fontFamilyOptions = [
+ { mark: schema.marks.pFontFamily.create({ family: "Times New Roman" }), title: "Set font family", label: "Times New Roman", command: this.changeFontFamily, style: { fontFamily: "Times New Roman" } },
+ { mark: schema.marks.pFontFamily.create({ family: "Arial" }), title: "Set font family", label: "Arial", command: this.changeFontFamily, style: { fontFamily: "Arial" } },
+ { mark: schema.marks.pFontFamily.create({ family: "Georgia" }), title: "Set font family", label: "Georgia", command: this.changeFontFamily, style: { fontFamily: "Georgia" } },
+ { mark: schema.marks.pFontFamily.create({ family: "Comic Sans MS" }), title: "Set font family", label: "Comic Sans MS", command: this.changeFontFamily, style: { fontFamily: "Comic Sans MS" } },
+ { mark: schema.marks.pFontFamily.create({ family: "Tahoma" }), title: "Set font family", label: "Tahoma", command: this.changeFontFamily, style: { fontFamily: "Tahoma" } },
+ { mark: schema.marks.pFontFamily.create({ family: "Impact" }), title: "Set font family", label: "Impact", command: this.changeFontFamily, style: { fontFamily: "Impact" } },
+ { mark: schema.marks.pFontFamily.create({ family: "Crimson Text" }), title: "Set font family", label: "Crimson Text", command: this.changeFontFamily, style: { fontFamily: "Crimson Text" } },
+ { mark: null, title: "", label: "various", command: unimplementedFunction, hidden: true },
+ // { mark: null, title: "", label: "default", command: unimplementedFunction, hidden: true },
+ ];
+
+ this.listTypeOptions = [
+ { node: schema.nodes.ordered_list.create({ mapStyle: "bullet" }), title: "Set list type", label: ":", command: this.changeListType },
+ { node: schema.nodes.ordered_list.create({ mapStyle: "decimal" }), title: "Set list type", label: "1.1", command: this.changeListType },
+ { node: schema.nodes.ordered_list.create({ mapStyle: "multi" }), title: "Set list type", label: "1.A", command: this.changeListType },
+ { node: undefined, title: "Set list type", label: "Remove", command: this.changeListType },
+ ];
+
+ this.fontColors = [
+ DarkPastelSchemaPalette.get("pink2"),
+ DarkPastelSchemaPalette.get("purple4"),
+ DarkPastelSchemaPalette.get("bluegreen1"),
+ DarkPastelSchemaPalette.get("yellow4"),
+ DarkPastelSchemaPalette.get("red2"),
+ DarkPastelSchemaPalette.get("bluegreen7"),
+ DarkPastelSchemaPalette.get("bluegreen5"),
+ DarkPastelSchemaPalette.get("orange1"),
+ "#757472",
+ "#000"
+ ];
+
+ this.highlightColors = [
+ PastelSchemaPalette.get("pink2"),
+ PastelSchemaPalette.get("purple4"),
+ PastelSchemaPalette.get("bluegreen1"),
+ PastelSchemaPalette.get("yellow4"),
+ PastelSchemaPalette.get("red2"),
+ PastelSchemaPalette.get("bluegreen7"),
+ PastelSchemaPalette.get("bluegreen5"),
+ PastelSchemaPalette.get("orange1"),
+ "white",
+ "transparent"
+ ];
+ }
+
+ @action
+ changeView(view: EditorView) {
+ this.view = view;
+ }
+
+ update(view: EditorView, lastState: EditorState | undefined) {
+ this.updateFromDash(view, lastState, this.editorProps);
+ }
+
+
+ public MakeLinkToSelection = (linkDocId: string, title: string, location: string, targetDocId: string): string => {
+ if (this.view) {
+ const link = this.view.state.schema.marks.link.create({ href: Utils.prepend("/doc/" + linkDocId), title: title, location: location, targetId: targetDocId });
+ this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link).
+ addMark(this.view.state.selection.from, this.view.state.selection.to, link));
+ return this.view.state.selection.$from.nodeAfter?.text || "";
+ }
+ return "";
+ }
+
+ @action
+ public async updateFromDash(view: EditorView, lastState: EditorState | undefined, props: any) {
+ if (!view) {
+ console.log("no editor? why?");
+ return;
+ }
+ this.view = view;
+ const state = view.state;
+ props && (this.editorProps = props);
+
+ // Don't do anything if the document/selection didn't change
+ if (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) return;
+
+ // update active marks
+ const activeMarks = this.getActiveMarksOnSelection();
+ this.setActiveMarkButtons(activeMarks);
+
+ // update active font family and size
+ const active = this.getActiveFontStylesOnSelection();
+ const activeFamilies = active && active.get("families");
+ const activeSizes = active && active.get("sizes");
+
+ this.activeFontFamily = !activeFamilies || activeFamilies.length === 0 ? "Arial" : activeFamilies.length === 1 ? String(activeFamilies[0]) : "various";
+ this.activeFontSize = !activeSizes || activeSizes.length === 0 ? "13pt" : activeSizes.length === 1 ? String(activeSizes[0]) + "pt" : "various";
+
+ // update link in current selection
+ const targetTitle = await this.getTextLinkTargetTitle();
+ this.setCurrentLink(targetTitle);
+ }
+
+ setMark = (mark: Mark, state: EditorState<any>, dispatch: any) => {
+ if (mark) {
+ const node = (state.selection as NodeSelection).node;
+ if (node?.type === schema.nodes.ordered_list) {
+ let attrs = node.attrs;
+ if (mark.type === schema.marks.pFontFamily) attrs = { ...attrs, setFontFamily: mark.attrs.family };
+ if (mark.type === schema.marks.pFontSize) attrs = { ...attrs, setFontSize: mark.attrs.fontSize };
+ if (mark.type === schema.marks.pFontColor) attrs = { ...attrs, setFontColor: mark.attrs.color };
+ const tr = updateBullets(state.tr.setNodeMarkup(state.selection.from, node.type, attrs), state.schema);
+ dispatch(tr.setSelection(new NodeSelection(tr.doc.resolve(state.selection.from))));
+ } else {
+ toggleMark(mark.type, mark.attrs)(state, (tx: any) => {
+ const { from, $from, to, empty } = tx.selection;
+ if (!tx.doc.rangeHasMark(from, to, mark.type)) {
+ toggleMark(mark.type, mark.attrs)({ tr: tx, doc: tx.doc, selection: tx.selection, storedMarks: tx.storedMarks }, dispatch);
+ } else dispatch(tx);
+ });
+ }
+ }
+ }
+
+ // finds font sizes and families in selection
+ getActiveFontStylesOnSelection() {
+ if (!this.view) return;
+
+ const activeFamilies: string[] = [];
+ const activeSizes: string[] = [];
+ const state = this.view.state;
+ const pos = this.view.state.selection.$from;
+ const ref_node = this.reference_node(pos);
+ if (ref_node && ref_node !== this.view.state.doc && ref_node.isText) {
+ ref_node.marks.forEach(m => {
+ m.type === state.schema.marks.pFontFamily && activeFamilies.push(m.attrs.family);
+ m.type === state.schema.marks.pFontSize && activeSizes.push(String(m.attrs.fontSize) + "pt");
+ });
+ }
+
+ const styles = new Map<String, String[]>();
+ styles.set("families", activeFamilies);
+ styles.set("sizes", activeSizes);
+ return styles;
+ }
+
+ getMarksInSelection(state: EditorState<any>) {
+ const found = new Set<Mark>();
+ const { from, to } = state.selection as TextSelection;
+ state.doc.nodesBetween(from, to, (node) => node.marks.forEach(m => found.add(m)));
+ return found;
+ }
+
+ //finds all active marks on selection in given group
+ getActiveMarksOnSelection() {
+ if (!this.view) return;
+
+ const markGroup = [schema.marks.strong, schema.marks.em, schema.marks.underline, schema.marks.strikethrough, schema.marks.superscript, schema.marks.subscript];
+ if (this.view.state.storedMarks) return this.view.state.storedMarks.map(mark => mark.type);
+ //current selection
+ const { empty, ranges, $to } = this.view.state.selection as TextSelection;
+ const state = this.view.state;
+ let activeMarks: MarkType[] = [];
+ if (!empty) {
+ activeMarks = markGroup.filter(mark => {
+ const has = false;
+ for (let i = 0; !has && i < ranges.length; i++) {
+ return state.doc.rangeHasMark(ranges[i].$from.pos, ranges[i].$to.pos, mark);
+ }
+ return false;
+ });
+ }
+ else {
+ const pos = this.view.state.selection.$from;
+ const ref_node: ProsNode | null = this.reference_node(pos);
+ if (ref_node !== null && ref_node !== this.view.state.doc) {
+ if (ref_node.isText) {
+ }
+ else {
+ return [];
+ }
+ activeMarks = markGroup.filter(mark_type => {
+ if (mark_type === state.schema.marks.pFontSize) {
+ return ref_node.marks.some(m => m.type.name === state.schema.marks.pFontSize.name);
+ }
+ const mark = state.schema.mark(mark_type);
+ return ref_node.marks.includes(mark);
+ });
+ }
+ }
+ return activeMarks;
+ }
+
+ destroy() {
+ }
+
+ @action
+ setActiveMarkButtons(activeMarks: MarkType[] | undefined) {
+ if (!activeMarks) return;
+
+ this.boldActive = false;
+ this.italicsActive = false;
+ this.underlineActive = false;
+ this.strikethroughActive = false;
+ this.subscriptActive = false;
+ this.superscriptActive = false;
+
+ activeMarks.forEach(mark => {
+ switch (mark.name) {
+ case "strong": this.boldActive = true; break;
+ case "em": this.italicsActive = true; break;
+ case "underline": this.underlineActive = true; break;
+ case "strikethrough": this.strikethroughActive = true; break;
+ case "subscript": this.subscriptActive = true; break;
+ case "superscript": this.superscriptActive = true; break;
+ }
+ });
+ }
+
+ createButton(faIcon: string, title: string, isActive: boolean = false, command?: any, onclick?: any) {
+ const self = this;
+ function onClick(e: React.PointerEvent) {
+ e.preventDefault();
+ e.stopPropagation();
+ self.view && self.view.focus();
+ self.view && command && command(self.view.state, self.view.dispatch, self.view);
+ self.view && onclick && onclick(self.view.state, self.view.dispatch, self.view);
+ self.setActiveMarkButtons(self.getActiveMarksOnSelection());
+ }
+
+ return (
+ <button className={"antimodeMenu-button" + (isActive ? " active" : "")} key={title} title={title} onPointerDown={onClick}>
+ <FontAwesomeIcon icon={faIcon as IconProp} size="lg" />
+ </button>
+ );
+ }
+
+ createMarksDropdown(activeOption: string, options: { mark: Mark | null, title: string, label: string, command: (mark: Mark, view: EditorView) => void, hidden?: boolean, style?: {} }[], key: string): JSX.Element {
+ const items = options.map(({ title, label, hidden, style }) => {
+ if (hidden) {
+ return label === activeOption ?
+ <option value={label} title={title} key={label} style={style ? style : {}} selected hidden>{label}</option> :
+ <option value={label} title={title} key={label} style={style ? style : {}} hidden>{label}</option>;
+ }
+ return label === activeOption ?
+ <option value={label} title={title} key={label} style={style ? style : {}} selected>{label}</option> :
+ <option value={label} title={title} key={label} style={style ? style : {}}>{label}</option>;
+ });
+
+ const self = this;
+ function onChange(e: React.ChangeEvent<HTMLSelectElement>) {
+ e.stopPropagation();
+ e.preventDefault();
+ options.forEach(({ label, mark, command }) => {
+ if (e.target.value === label) {
+ self.view && mark && command(mark, self.view);
+ }
+ });
+ }
+ return <select onChange={onChange} key={key}>{items}</select>;
+ }
+
+ createNodesDropdown(activeOption: string, options: { node: NodeType | any | null, title: string, label: string, command: (node: NodeType | any) => void, hidden?: boolean, style?: {} }[], key: string): JSX.Element {
+ const items = options.map(({ title, label, hidden, style }) => {
+ if (hidden) {
+ return label === activeOption ?
+ <option value={label} title={title} key={label} style={style ? style : {}} selected hidden>{label}</option> :
+ <option value={label} title={title} key={label} style={style ? style : {}} hidden>{label}</option>;
+ }
+ return label === activeOption ?
+ <option value={label} title={title} key={label} style={style ? style : {}} selected>{label}</option> :
+ <option value={label} title={title} key={label} style={style ? style : {}}>{label}</option>;
+ });
+
+ const self = this;
+ function onChange(val: string) {
+ options.forEach(({ label, node, command }) => {
+ if (val === label) {
+ self.view && node && command(node);
+ }
+ });
+ }
+ return <select onChange={e => onChange(e.target.value)} key={key}>{items}</select>;
+ }
+
+ changeFontSize = (mark: Mark, view: EditorView) => {
+ this.setMark(view.state.schema.marks.pFontSize.create({ fontSize: mark.attrs.fontSize }), view.state, view.dispatch);
+ }
+
+ changeFontFamily = (mark: Mark, view: EditorView) => {
+ this.setMark(view.state.schema.marks.pFontFamily.create({ family: mark.attrs.family }), view.state, view.dispatch);
+ }
+
+ // TODO: remove doesn't work
+ //remove all node type and apply the passed-in one to the selected text
+ changeListType = (nodeType: NodeType | undefined) => {
+ if (!this.view) return;
+
+ if (nodeType === schema.nodes.bullet_list) {
+ wrapInList(nodeType)(this.view.state, this.view.dispatch);
+ } else {
+ const marks = this.view.state.storedMarks || (this.view.state.selection.$to.parentOffset && this.view.state.selection.$from.marks());
+ if (!wrapInList(schema.nodes.ordered_list)(this.view.state, (tx2: any) => {
+ const tx3 = updateBullets(tx2, schema, nodeType && (nodeType as any).attrs.mapStyle);
+ marks && tx3.ensureMarks([...marks]);
+ marks && tx3.setStoredMarks([...marks]);
+
+ this.view!.dispatch(tx2);
+ })) {
+ const tx2 = this.view.state.tr;
+ const tx3 = updateBullets(tx2, schema, nodeType && (nodeType as any).attrs.mapStyle);
+ marks && tx3.ensureMarks([...marks]);
+ marks && tx3.setStoredMarks([...marks]);
+
+ this.view.dispatch(tx3);
+ }
+ }
+ }
+
+ insertSummarizer(state: EditorState<any>, dispatch: any) {
+ if (state.selection.empty) return false;
+ const mark = state.schema.marks.summarize.create();
+ const tr = state.tr;
+ tr.addMark(state.selection.from, state.selection.to, mark);
+ const content = tr.selection.content();
+ const newNode = state.schema.nodes.summary.create({ visibility: false, text: content, textslice: content.toJSON() });
+ dispatch && dispatch(tr.replaceSelectionWith(newNode).removeMark(tr.selection.from - 1, tr.selection.from, mark));
+ return true;
+ }
+
+ @action toggleBrushDropdown() { this.showBrushDropdown = !this.showBrushDropdown; }
+
+ // todo: add brushes to brushMap to save with a style name
+ onBrushNameKeyPress = (e: React.KeyboardEvent) => {
+ if (e.key === "Enter") {
+ RichTextMenu.Instance.brushMarks && RichTextMenu.Instance._brushMap.set(this._brushNameRef.current!.value, RichTextMenu.Instance.brushMarks);
+ this._brushNameRef.current!.style.background = "lightGray";
+ }
+ }
+ _brushNameRef = React.createRef<HTMLInputElement>();
+
+ createBrushButton() {
+ const self = this;
+ function onBrushClick(e: React.PointerEvent) {
+ e.preventDefault();
+ e.stopPropagation();
+ self.view && self.view.focus();
+ self.view && self.fillBrush(self.view.state, self.view.dispatch);
+ }
+
+ let label = "Stored marks: ";
+ if (this.brushMarks && this.brushMarks.size > 0) {
+ this.brushMarks.forEach((mark: Mark) => {
+ const markType = mark.type;
+ label += markType.name;
+ label += ", ";
+ });
+ label = label.substring(0, label.length - 2);
+ } else {
+ label = "No marks are currently stored";
+ }
+
+ const button =
+ <button className="antimodeMenu-button" title="" onPointerDown={onBrushClick} style={this.brushMarks && this.brushMarks.size > 0 ? { backgroundColor: "121212" } : {}}>
+ <FontAwesomeIcon icon="paint-roller" size="lg" style={{ transition: "transform 0.1s", transform: this.brushMarks && this.brushMarks.size > 0 ? "rotate(45deg)" : "" }} />
+ </button>;
+
+ const dropdownContent =
+ <div className="dropdown">
+ <p>{label}</p>
+ <button onPointerDown={this.clearBrush}>Clear brush</button>
+ <input placeholder="-brush name-" ref={this._brushNameRef} onKeyPress={this.onBrushNameKeyPress}></input>
+ </div>;
+
+ return (
+ <ButtonDropdown view={this.view} key={"brush dropdown"} button={button} dropdownContent={dropdownContent} />
+ );
+ }
+
+ @action
+ clearBrush() {
+ RichTextMenu.Instance.brushIsEmpty = true;
+ RichTextMenu.Instance.brushMarks = new Set();
+ }
+
+ @action
+ fillBrush(state: EditorState<any>, dispatch: any) {
+ if (!this.view) return;
+
+ if (this.brushIsEmpty) {
+ const selected_marks = this.getMarksInSelection(this.view.state);
+ if (selected_marks.size >= 0) {
+ this.brushMarks = selected_marks;
+ this.brushIsEmpty = !this.brushIsEmpty;
+ }
+ }
+ else {
+ const { from, to, $from } = this.view.state.selection;
+ if (!this.view.state.selection.empty && $from && $from.nodeAfter) {
+ if (this.brushMarks && to - from > 0) {
+ this.view.dispatch(this.view.state.tr.removeMark(from, to));
+ Array.from(this.brushMarks).filter(m => m.type !== schema.marks.user_mark).forEach((mark: Mark) => {
+ this.setMark(mark, this.view!.state, this.view!.dispatch);
+ });
+ }
+ }
+ else {
+ this.brushIsEmpty = !this.brushIsEmpty;
+ }
+ }
+ }
+
+ @action toggleColorDropdown() { this.showColorDropdown = !this.showColorDropdown; }
+ @action setActiveColor(color: string) { this.activeFontColor = color; }
+
+ createColorButton() {
+ const self = this;
+ function onColorClick(e: React.PointerEvent) {
+ e.preventDefault();
+ e.stopPropagation();
+ self.view && self.view.focus();
+ self.view && self.insertColor(self.activeFontColor, self.view.state, self.view.dispatch);
+ }
+ function changeColor(e: React.PointerEvent, color: string) {
+ e.preventDefault();
+ e.stopPropagation();
+ self.view && self.view.focus();
+ self.setActiveColor(color);
+ self.view && self.insertColor(self.activeFontColor, self.view.state, self.view.dispatch);
+ }
+
+ const button =
+ <button className="antimodeMenu-button color-preview-button" title="" onPointerDown={onColorClick}>
+ <FontAwesomeIcon icon="palette" size="lg" />
+ <div className="color-preview" style={{ backgroundColor: this.activeFontColor }}></div>
+ </button>;
+
+ const dropdownContent =
+ <div className="dropdown" >
+ <p>Change font color:</p>
+ <div className="color-wrapper">
+ {this.fontColors.map(color => {
+ if (color) {
+ return this.activeFontColor === color ?
+ <button className="color-button active" key={"active" + color} style={{ backgroundColor: color }} onPointerDown={e => changeColor(e, color)}></button> :
+ <button className="color-button" key={"other" + color} style={{ backgroundColor: color }} onPointerDown={e => changeColor(e, color)}></button>;
+ }
+ })}
+ </div>
+ </div>;
+
+ return (
+ <ButtonDropdown view={this.view} key={"color dropdown"} button={button} dropdownContent={dropdownContent} />
+ );
+ }
+
+ public insertColor(color: String, state: EditorState<any>, dispatch: any) {
+ const colorMark = state.schema.mark(state.schema.marks.pFontColor, { color: color });
+ if (state.selection.empty) {
+ dispatch(state.tr.addStoredMark(colorMark));
+ return false;
+ }
+ this.setMark(colorMark, state, dispatch);
+ }
+
+ @action toggleHighlightDropdown() { this.showHighlightDropdown = !this.showHighlightDropdown; }
+ @action setActiveHighlight(color: string) { this.activeHighlightColor = color; }
+
+ createHighlighterButton() {
+ const self = this;
+ function onHighlightClick(e: React.PointerEvent) {
+ e.preventDefault();
+ e.stopPropagation();
+ self.view && self.view.focus();
+ self.view && self.insertHighlight(self.activeHighlightColor, self.view.state, self.view.dispatch);
+ }
+ function changeHighlight(e: React.PointerEvent, color: string) {
+ e.preventDefault();
+ e.stopPropagation();
+ self.view && self.view.focus();
+ self.setActiveHighlight(color);
+ self.view && self.insertHighlight(self.activeHighlightColor, self.view.state, self.view.dispatch);
+ }
+
+ const button =
+ <button className="antimodeMenu-button color-preview-button" title="" key="highilghter-button" onPointerDown={onHighlightClick}>
+ <FontAwesomeIcon icon="highlighter" size="lg" />
+ <div className="color-preview" style={{ backgroundColor: this.activeHighlightColor }}></div>
+ </button>;
+
+ const dropdownContent =
+ <div className="dropdown">
+ <p>Change highlight color:</p>
+ <div className="color-wrapper">
+ {this.highlightColors.map(color => {
+ if (color) {
+ return this.activeHighlightColor === color ?
+ <button className="color-button active" key={`active ${color}`} style={{ backgroundColor: color }} onPointerDown={e => changeHighlight(e, color)}>{color === "transparent" ? "X" : ""}</button> :
+ <button className="color-button" key={`inactive ${color}`} style={{ backgroundColor: color }} onPointerDown={e => changeHighlight(e, color)}>{color === "transparent" ? "X" : ""}</button>;
+ }
+ })}
+ </div>
+ </div>;
+
+ return (
+ <ButtonDropdown view={this.view} key={"highlighter"} button={button} dropdownContent={dropdownContent} />
+ );
+ }
+
+ insertHighlight(color: String, state: EditorState<any>, dispatch: any) {
+ if (state.selection.empty) return false;
+ toggleMark(state.schema.marks.marker, { highlight: color })(state, dispatch);
+ }
+
+ @action toggleLinkDropdown() { this.showLinkDropdown = !this.showLinkDropdown; }
+ @action setCurrentLink(link: string) { this.currentLink = link; }
+
+ createLinkButton() {
+ const self = this;
+
+ function onLinkChange(e: React.ChangeEvent<HTMLInputElement>) {
+ self.setCurrentLink(e.target.value);
+ }
+
+ const link = this.currentLink ? this.currentLink : "";
+
+ const button = <FontAwesomeIcon icon="link" size="lg" />;
+
+ const dropdownContent =
+ <div className="dropdown link-menu">
+ <p>Linked to:</p>
+ <input value={link} placeholder="Enter URL" onChange={onLinkChange} />
+ <button className="make-button" onPointerDown={e => this.makeLinkToURL(link, "onRight")}>Apply hyperlink</button>
+ <div className="divider"></div>
+ <button className="remove-button" onPointerDown={e => this.deleteLink()}>Remove link</button>
+ </div>;
+
+ return (
+ <ButtonDropdown view={this.view} key={"link button"} button={button} dropdownContent={dropdownContent} openDropdownOnButton={true} />
+ );
+ }
+
+ async getTextLinkTargetTitle() {
+ if (!this.view) return;
+
+ const node = this.view.state.selection.$from.nodeAfter;
+ const link = node && node.marks.find(m => m.type.name === "link");
+ if (link) {
+ const href = link.attrs.href;
+ if (href) {
+ if (href.indexOf(Utils.prepend("/doc/")) === 0) {
+ const linkclicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0];
+ if (linkclicked) {
+ const linkDoc = await DocServer.GetRefField(linkclicked);
+ if (linkDoc instanceof Doc) {
+ const anchor1 = await Cast(linkDoc.anchor1, Doc);
+ const anchor2 = await Cast(linkDoc.anchor2, Doc);
+ const currentDoc = SelectionManager.SelectedDocuments().length && SelectionManager.SelectedDocuments()[0].props.Document;
+ if (currentDoc && anchor1 && anchor2) {
+ if (Doc.AreProtosEqual(currentDoc, anchor1)) {
+ return StrCast(anchor2.title);
+ }
+ if (Doc.AreProtosEqual(currentDoc, anchor2)) {
+ return StrCast(anchor1.title);
+ }
+ }
+ }
+ }
+ } else {
+ return href;
+ }
+ } else {
+ return link.attrs.title;
+ }
+ }
+ }
+
+ // TODO: should check for valid URL
+ makeLinkToURL = (target: String, lcoation: string) => {
+ if (!this.view) return;
+
+ let node = this.view.state.selection.$from.nodeAfter;
+ let link = this.view.state.schema.mark(this.view.state.schema.marks.link, { href: target, location: location });
+ this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link));
+ this.view.dispatch(this.view.state.tr.addMark(this.view.state.selection.from, this.view.state.selection.to, link));
+ node = this.view.state.selection.$from.nodeAfter;
+ link = node && node.marks.find(m => m.type.name === "link");
+ }
+
+ deleteLink = () => {
+ if (!this.view) return;
+
+ const node = this.view.state.selection.$from.nodeAfter;
+ const link = node && node.marks.find(m => m.type === this.view!.state.schema.marks.link);
+ const href = link!.attrs.href;
+ if (href) {
+ if (href.indexOf(Utils.prepend("/doc/")) === 0) {
+ const linkclicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0];
+ if (linkclicked) {
+ DocServer.GetRefField(linkclicked).then(async linkDoc => {
+ if (linkDoc instanceof Doc) {
+ LinkManager.Instance.deleteLink(linkDoc);
+ this.view!.dispatch(this.view!.state.tr.removeMark(this.view!.state.selection.from, this.view!.state.selection.to, this.view!.state.schema.marks.link));
+ }
+ });
+ }
+ } else {
+ if (node) {
+ const { tr, schema, selection } = this.view.state;
+ const extension = this.linkExtend(selection.$anchor, href);
+ this.view.dispatch(tr.removeMark(extension.from, extension.to, schema.marks.link));
+ }
+ }
+ }
+ }
+
+ linkExtend($start: ResolvedPos, href: string) {
+ const mark = this.view!.state.schema.marks.link;
+
+ let startIndex = $start.index();
+ let endIndex = $start.indexAfter();
+
+ while (startIndex > 0 && $start.parent.child(startIndex - 1).marks.filter(m => m.type === mark && m.attrs.href === href).length) startIndex--;
+ while (endIndex < $start.parent.childCount && $start.parent.child(endIndex).marks.filter(m => m.type === mark && m.attrs.href === href).length) endIndex++;
+
+ let startPos = $start.start();
+ let endPos = startPos;
+ for (let i = 0; i < endIndex; i++) {
+ const size = $start.parent.child(i).nodeSize;
+ if (i < startIndex) startPos += size;
+ endPos += size;
+ }
+ return { from: startPos, to: endPos };
+ }
+
+ reference_node(pos: ResolvedPos<any>): ProsNode | null {
+ if (!this.view) return null;
+
+ let ref_node: ProsNode = this.view.state.doc;
+ if (pos.nodeBefore !== null && pos.nodeBefore !== undefined) {
+ ref_node = pos.nodeBefore;
+ }
+ else if (pos.nodeAfter !== null && pos.nodeAfter !== undefined) {
+ ref_node = pos.nodeAfter;
+ }
+ else if (pos.pos > 0) {
+ let skip = false;
+ for (let i: number = pos.pos - 1; i > 0; i--) {
+ this.view.state.doc.nodesBetween(i, pos.pos, (node: ProsNode) => {
+ if (node.isLeaf && !skip) {
+ ref_node = node;
+ skip = true;
+ }
+
+ });
+ }
+ }
+ if (!ref_node.isLeaf && ref_node.childCount > 0) {
+ ref_node = ref_node.child(0);
+ }
+ return ref_node;
+ }
+
+ @action onPointerEnter(e: React.PointerEvent) { RichTextMenu.Instance.overMenu = true; }
+ @action onPointerLeave(e: React.PointerEvent) { RichTextMenu.Instance.overMenu = false; }
+
+ @action
+ toggleMenuPin = (e: React.MouseEvent) => {
+ this.Pinned = !this.Pinned;
+ if (!this.Pinned) {
+ this.fadeOut(true);
+ }
+ }
+
+ render() {
+
+ const row1 = <div className="antimodeMenu-row" key="row1">{[
+ this.createButton("bold", "Bold", this.boldActive, toggleMark(schema.marks.strong)),
+ this.createButton("italic", "Italic", this.italicsActive, toggleMark(schema.marks.em)),
+ this.createButton("underline", "Underline", this.underlineActive, toggleMark(schema.marks.underline)),
+ this.createButton("strikethrough", "Strikethrough", this.strikethroughActive, toggleMark(schema.marks.strikethrough)),
+ this.createButton("superscript", "Superscript", this.superscriptActive, toggleMark(schema.marks.superscript)),
+ this.createButton("subscript", "Subscript", this.subscriptActive, toggleMark(schema.marks.subscript)),
+ this.createColorButton(),
+ this.createHighlighterButton(),
+ this.createLinkButton(),
+ this.createBrushButton(),
+ this.createButton("indent", "Summarize", undefined, this.insertSummarizer),
+ ]}</div>;
+
+ const row2 = <div className="antimodeMenu-row row-2" key="antimodemenu row2">
+ <div key="row">
+ {[this.createMarksDropdown(this.activeFontSize, this.fontSizeOptions, "font size"),
+ this.createMarksDropdown(this.activeFontFamily, this.fontFamilyOptions, "font family"),
+ this.createNodesDropdown(this.activeListType, this.listTypeOptions, "nodes")]}
+ </div>
+ <div key="button">
+ <button className="antimodeMenu-button" key="pin menu" title="Pin menu" onClick={this.toggleMenuPin} style={this.Pinned ? { backgroundColor: "#121212" } : {}}>
+ <FontAwesomeIcon icon="thumbtack" size="lg" style={{ transition: "transform 0.1s", transform: this.Pinned ? "rotate(45deg)" : "" }} />
+ </button>
+ {this.getDragger()}
+ </div>
+ </div>;
+
+ return (
+ <div className="richTextMenu" onPointerEnter={this.onPointerEnter} onPointerLeave={this.onPointerLeave}>
+ {this.getElementWithRows([row1, row2], 2, false)}
+ </div>
+ );
+ }
+}
+
+interface ButtonDropdownProps {
+ view?: EditorView;
+ button: JSX.Element;
+ dropdownContent: JSX.Element;
+ openDropdownOnButton?: boolean;
+}
+
+@observer
+class ButtonDropdown extends React.Component<ButtonDropdownProps> {
+
+ @observable private showDropdown: boolean = false;
+ private ref: HTMLDivElement | null = null;
+
+ componentDidMount() {
+ document.addEventListener("pointerdown", this.onBlur);
+ }
+
+ componentWillUnmount() {
+ document.removeEventListener("pointerdown", this.onBlur);
+ }
+
+ @action
+ setShowDropdown(show: boolean) {
+ this.showDropdown = show;
+ }
+ @action
+ toggleDropdown() {
+ this.showDropdown = !this.showDropdown;
+ }
+
+ onDropdownClick = (e: React.PointerEvent) => {
+ e.preventDefault();
+ e.stopPropagation();
+ this.props.view && this.props.view.focus();
+ this.toggleDropdown();
+ }
+
+ onBlur = (e: PointerEvent) => {
+ setTimeout(() => {
+ if (this.ref !== null && !this.ref.contains(e.target as Node)) {
+ this.setShowDropdown(false);
+ }
+ }, 0);
+ }
+
+ render() {
+ return (
+ <div className="button-dropdown-wrapper" ref={node => this.ref = node}>
+ {this.props.openDropdownOnButton ?
+ <button className="antimodeMenu-button dropdown-button-combined" onPointerDown={this.onDropdownClick}>
+ {this.props.button}
+ <FontAwesomeIcon icon="caret-down" size="sm" />
+ </button> :
+ <>
+ {this.props.button}
+ <button className="dropdown-button antimodeMenu-button" key="antimodebutton" onPointerDown={this.onDropdownClick}>
+ <FontAwesomeIcon icon="caret-down" size="sm" />
+ </button>
+ </>}
+
+ {this.showDropdown ? this.props.dropdownContent : (null)}
+ </div>
+ );
+ }
+} \ No newline at end of file
diff --git a/src/client/util/RichTextRules.ts b/src/client/util/RichTextRules.ts
index ebb9bda8a..8411cc6ee 100644
--- a/src/client/util/RichTextRules.ts
+++ b/src/client/util/RichTextRules.ts
@@ -2,11 +2,16 @@ import { textblockTypeInputRule, smartQuotes, emDash, ellipsis, InputRule } from
import { schema } from "./RichTextSchema";
import { wrappingInputRule } from "./prosemirrorPatches";
import { NodeSelection, TextSelection } from "prosemirror-state";
-import { NumCast, Cast } from "../../new_fields/Types";
-import { Doc } from "../../new_fields/Doc";
+import { StrCast, Cast, NumCast } from "../../new_fields/Types";
+import { Doc, DataSym } from "../../new_fields/Doc";
import { FormattedTextBox } from "../views/nodes/FormattedTextBox";
-import { Docs } from "../documents/Documents";
+import { Docs, DocUtils } from "../documents/Documents";
import { Id } from "../../new_fields/FieldSymbols";
+import { DocServer } from "../DocServer";
+import { returnFalse, Utils } from "../../Utils";
+import RichTextMenu from "./RichTextMenu";
+import { RichTextField } from "../../new_fields/RichTextField";
+import { ComputedField } from "../../new_fields/ScriptField";
export const inpRules = {
rules: [
@@ -59,137 +64,226 @@ export const inpRules = {
}
),
+ // set the font size using #<font-size>
new InputRule(
- new RegExp(/^#([0-9]+)\s$/),
+ new RegExp(/%([0-9]+)\s$/),
(state, match, start, end) => {
- let size = Number(match[1]);
- let ruleProvider = FormattedTextBox.InputBoxOverlay!.props.ruleProvider;
- let heading = NumCast(FormattedTextBox.InputBoxOverlay!.props.Document.heading);
- if (ruleProvider && heading) {
- (Cast(FormattedTextBox.InputBoxOverlay!.props.Document, Doc) as Doc).heading = Number(match[1]);
- return state.tr.deleteRange(start, end);
+ const size = Number(match[1]);
+ return state.tr.deleteRange(start, end).addStoredMark(schema.marks.pFontSize.create({ fontSize: size }));
+ }),
+
+ // create a text display of a metadata field on this or another document, or create a hyperlink portal to another document
+ new InputRule(
+ new RegExp(/\[\[([a-zA-Z_ \-0-9]*)(:[a-zA-Z_ \-0-9]+)?\]\]$/),
+ (state, match, start, end) => {
+ if (!match[2]) {
+ const docId = match[1];
+ DocServer.GetRefField(docId).then(docx => {
+ const target = ((docx instanceof Doc) && docx) || Docs.Create.FreeformDocument([], { title: docId, _width: 500, _height: 500, _LODdisable: true, }, docId);
+ DocUtils.Publish(target, docId, returnFalse, returnFalse);
+ DocUtils.MakeLink({ doc: (schema as any).Document }, { doc: target }, "portal link", "");
+ });
+ const link = state.schema.marks.link.create({ href: Utils.prepend("/doc/" + docId), location: "onRight", title: docId, targetId: docId });
+ return state.tr.deleteRange(end - 1, end).deleteRange(start, start + 2).addMark(start, end - 3, link);
}
- return state.tr.deleteRange(start, end).addStoredMark(schema.marks.pFontSize.create({ fontSize: Number(match[1]) }));
+ const fieldView = state.schema.nodes.dashField.create({ fieldKey: match[2]?.substring(1), docid: match[1] });
+ return state.tr.deleteRange(start, end).insert(start, fieldView);
+ }),
+ // create a text display of a metadata field on this or another document, or create a hyperlink portal to another document
+ new InputRule(
+ new RegExp(/\{\{([a-zA-Z_ \-0-9]*)(:[a-zA-Z_ \-0-9]+)?\}\}$/),
+ (state, match, start, end) => {
+ const docId = match[1];
+ DocServer.GetRefField(docId).then(docx => {
+ if (!(docx instanceof Doc && docx)) {
+ const docx = Docs.Create.FreeformDocument([], { title: docId, _width: 500, _height: 500, _LODdisable: true }, docId);
+ DocUtils.Publish(docx, docId, returnFalse, returnFalse);
+ }
+ });
+ const node = (state.doc.resolve(start) as any).nodeAfter;
+ const dashDoc = schema.nodes.dashDoc.create({ width: 75, height: 75, title: "dashDoc", docid: docId, float: "right", fieldKey: match[2]?.substring(1), alias: Utils.GenerateGuid() });
+ const sm = state.storedMarks || undefined;
+ return node ? state.tr.replaceRangeWith(start, end, dashDoc).setStoredMarks([...node.marks, ...(sm ? sm : [])]) : state.tr;
}),
new InputRule(
- new RegExp(/t/),
+ new RegExp(/##$/),
(state, match, start, end) => {
- if (state.selection.to === state.selection.from) return null;
- let node = (state.doc.resolve(start) as any).nodeAfter;
- return node ? state.tr.addMark(start, end, schema.marks.user_tag.create({ userid: Doc.CurrentUserEmail, tag: "todo", modified: Math.round(Date.now() / 1000 / 60) })) : state.tr;
+ const schemaDoc = Doc.GetDataDoc((schema as any).Document);
+ const textDoc = Doc.GetProto(Cast(schemaDoc[DataSym], Doc, null)!);
+ const numInlines = NumCast(textDoc.inlineTextCount);
+ textDoc.inlineTextCount = numInlines + 1;
+ const inlineFieldKey = "inline" + numInlines; // which field on the text document this annotation will write to
+ const inlineLayoutKey = "layout_" + inlineFieldKey; // the field holding the layout string that will render the inline annotation
+ const textDocInline = Docs.Create.TextDocument("", { layoutKey: inlineLayoutKey, _width: 75, _height: 35, annotationOn: textDoc, _autoHeight: true, fontSize: 9, title: "inline comment" });
+ textDocInline.title = inlineFieldKey; // give the annotation its own title
+ textDocInline.customTitle = true; // And make sure that it's 'custom' so that editing text doesn't change the title of the containing doc
+ textDocInline.isTemplateForField = inlineFieldKey; // this is needed in case the containing text doc is converted to a template at some point
+ textDocInline.proto = textDoc; // make the annotation inherit from the outer text doc so that it can resolve any nested field references, e.g., [[field]]
+ textDocInline._textContext = ComputedField.MakeFunction(`copyField(this.${inlineFieldKey})`, { this: Doc.name });
+ textDoc[inlineLayoutKey] = FormattedTextBox.LayoutString(inlineFieldKey); // create a layout string for the layout key that will render the annotation text
+ textDoc[inlineFieldKey] = ""; // set a default value for the annotation
+ const node = (state.doc.resolve(start) as any).nodeAfter;
+ const newNode = schema.nodes.dashComment.create({ docid: textDocInline[Id] });
+ const dashDoc = schema.nodes.dashDoc.create({ width: 75, height: 35, title: "dashDoc", docid: textDocInline[Id], float: "right" });
+ const sm = state.storedMarks || undefined;
+ const replaced = node ? state.tr.insert(start, newNode).replaceRangeWith(start + 1, end + 1, dashDoc).insertText(" ", start + 2).setStoredMarks([...node.marks, ...(sm ? sm : [])]) :
+ state.tr;
+ return replaced;
}),
+ // stop using active style
new InputRule(
- new RegExp(/i/),
+ new RegExp(/%%$/),
(state, match, start, end) => {
- if (state.selection.to === state.selection.from) return null;
- let node = (state.doc.resolve(start) as any).nodeAfter;
- return node ? state.tr.addMark(start, end, schema.marks.user_tag.create({ userid: Doc.CurrentUserEmail, tag: "ignore", modified: Math.round(Date.now() / 1000 / 60) })) : state.tr;
+ const tr = state.tr.deleteRange(start, end);
+ const marks = state.tr.selection.$anchor.nodeBefore?.marks;
+ return marks ? Array.from(marks).filter(m => m !== state.schema.marks.user_mark).reduce((tr, m) => tr.removeStoredMark(m), tr) : tr;
}),
+
+ // set the Todo user-tag on the current selection (assumes % was used to initiate an EnteringStyle mode)
new InputRule(
- new RegExp(/\!/),
+ new RegExp(/[ti!x]$/),
(state, match, start, end) => {
- if (state.selection.to === state.selection.from) return null;
- let node = (state.doc.resolve(start) as any).nodeAfter;
- return node ? state.tr.addMark(start, end, schema.marks.user_tag.create({ userid: Doc.CurrentUserEmail, tag: "important", modified: Math.round(Date.now() / 1000 / 60) })) : state.tr;
+ if (state.selection.to === state.selection.from || !(schema as any).EnteringStyle) return null;
+ const tag = match[0] === "t" ? "todo" : match[0] === "i" ? "ignore" : match[0] === "x" ? "disagree" : match[0] === "!" ? "important" : "??";
+ const node = (state.doc.resolve(start) as any).nodeAfter;
+ if (node?.marks.findIndex((m: any) => m.type === schema.marks.user_tag) !== -1) return state.tr.removeMark(start, end, schema.marks.user_tag);
+ return node ? state.tr.addMark(start, end, schema.marks.user_tag.create({ userid: Doc.CurrentUserEmail, tag: tag, modified: Math.round(Date.now() / 1000 / 60) })) : state.tr;
}),
+
+ // set the First-line indent node type for the selection's paragraph (assumes % was used to initiate an EnteringStyle mode)
new InputRule(
- new RegExp(/\x/),
+ new RegExp(/(%d|d)$/),
(state, match, start, end) => {
- if (state.selection.to === state.selection.from) return null;
- let node = (state.doc.resolve(start) as any).nodeAfter;
- return node ? state.tr.addMark(start, end, schema.marks.user_tag.create({ userid: Doc.CurrentUserEmail, tag: "disagree", modified: Math.round(Date.now() / 1000 / 60) })) : state.tr;
+ if (!match[0].startsWith("%") && !(schema as any).EnteringStyle) return null;
+ const pos = (state.doc.resolve(start) as any);
+ for (let depth = pos.path.length / 3 - 1; depth >= 0; depth--) {
+ const node = pos.node(depth);
+ if (node.type === schema.nodes.paragraph) {
+ const replaced = state.tr.setNodeMarkup(pos.pos - pos.parentOffset - 1, node.type, { ...node.attrs, indent: node.attrs.indent === 25 ? undefined : 25 });
+ const result = replaced.setSelection(new TextSelection(replaced.doc.resolve(start)));
+ return match[0].startsWith("%") ? result.deleteRange(start, end) : result;
+ }
+ }
+ return null;
}),
+
+ // set the Hanging indent node type for the current selection's paragraph (assumes % was used to initiate an EnteringStyle mode)
new InputRule(
- new RegExp(/^\^\^\s$/),
+ new RegExp(/(%h|h)$/),
(state, match, start, end) => {
- let node = (state.doc.resolve(start) as any).nodeAfter;
- let sm = state.storedMarks || undefined;
- let ruleProvider = FormattedTextBox.InputBoxOverlay!.props.ruleProvider;
- let heading = NumCast(FormattedTextBox.InputBoxOverlay!.props.Document.heading);
- if (ruleProvider && heading) {
- ruleProvider["ruleAlign_" + heading] = "center";
- return node ? state.tr.deleteRange(start, end).setStoredMarks([...node.marks, ...(sm ? sm : [])]) : state.tr;
+ if (!match[0].startsWith("%") && !(schema as any).EnteringStyle) return null;
+ const pos = (state.doc.resolve(start) as any);
+ for (let depth = pos.path.length / 3 - 1; depth >= 0; depth--) {
+ const node = pos.node(depth);
+ if (node.type === schema.nodes.paragraph) {
+ const replaced = state.tr.setNodeMarkup(pos.pos - pos.parentOffset - 1, node.type, { ...node.attrs, indent: node.attrs.indent === -25 ? undefined : -25 });
+ const result = replaced.setSelection(new TextSelection(replaced.doc.resolve(start)));
+ return match[0].startsWith("%") ? result.deleteRange(start, end) : result;
+ }
}
- let replaced = node ? state.tr.replaceRangeWith(start, end, schema.nodes.paragraph.create({ align: "center" })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) :
- state.tr;
- return replaced.setSelection(new TextSelection(replaced.doc.resolve(end - 2)));
+ return null;
}),
+ // set the Quoted indent node type for the current selection's paragraph (assumes % was used to initiate an EnteringStyle mode)
new InputRule(
- new RegExp(/^\[\[\s$/),
+ new RegExp(/(%q|q)$/),
(state, match, start, end) => {
- let node = (state.doc.resolve(start) as any).nodeAfter;
- let sm = state.storedMarks || undefined;
- let ruleProvider = FormattedTextBox.InputBoxOverlay!.props.ruleProvider;
- let heading = NumCast(FormattedTextBox.InputBoxOverlay!.props.Document.heading);
- if (ruleProvider && heading) {
- ruleProvider["ruleAlign_" + heading] = "left";
- return node ? state.tr.deleteRange(start, end).setStoredMarks([...node.marks, ...(sm ? sm : [])]) : state.tr;
+ if (!match[0].startsWith("%") && !(schema as any).EnteringStyle) return null;
+ const pos = (state.doc.resolve(start) as any);
+ if (state.selection instanceof NodeSelection && state.selection.node.type === schema.nodes.ordered_list) {
+ const node = state.selection.node;
+ return state.tr.setNodeMarkup(pos.pos, node.type, { ...node.attrs, indent: node.attrs.indent === 30 ? undefined : 30 });
}
- let replaced = node ? state.tr.replaceRangeWith(start, end, schema.nodes.paragraph.create({ align: "left" })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) :
+ for (let depth = pos.path.length / 3 - 1; depth >= 0; depth--) {
+ const node = pos.node(depth);
+ if (node.type === schema.nodes.paragraph) {
+ const replaced = state.tr.setNodeMarkup(pos.pos - pos.parentOffset - 1, node.type, { ...node.attrs, inset: node.attrs.inset === 30 ? undefined : 30 });
+ const result = replaced.setSelection(new TextSelection(replaced.doc.resolve(start)));
+ return match[0].startsWith("%") ? result.deleteRange(start, end) : result;
+ }
+ }
+ return null;
+ }),
+
+
+ // center justify text
+ new InputRule(
+ new RegExp(/%\^$/),
+ (state, match, start, end) => {
+ const node = (state.doc.resolve(start) as any).nodeAfter;
+ const sm = state.storedMarks || undefined;
+ const replaced = node ? state.tr.replaceRangeWith(start, end, schema.nodes.paragraph.create({ align: "center" })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) :
state.tr;
return replaced.setSelection(new TextSelection(replaced.doc.resolve(end - 2)));
}),
+ // left justify text
new InputRule(
- new RegExp(/^\]\]\s$/),
+ new RegExp(/%\[$/),
(state, match, start, end) => {
- let node = (state.doc.resolve(start) as any).nodeAfter;
- let sm = state.storedMarks || undefined;
- let ruleProvider = FormattedTextBox.InputBoxOverlay!.props.ruleProvider;
- let heading = NumCast(FormattedTextBox.InputBoxOverlay!.props.Document.heading);
- if (ruleProvider && heading) {
- ruleProvider["ruleAlign_" + heading] = "right";
- return node ? state.tr.deleteRange(start, end).setStoredMarks([...node.marks, ...(sm ? sm : [])]) : state.tr;
- }
- let replaced = node ? state.tr.replaceRangeWith(start, end, schema.nodes.paragraph.create({ align: "right" })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) :
+ const node = (state.doc.resolve(start) as any).nodeAfter;
+ const sm = state.storedMarks || undefined;
+ const replaced = node ? state.tr.replaceRangeWith(start, end, schema.nodes.paragraph.create({ align: "left" })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) :
state.tr;
return replaced.setSelection(new TextSelection(replaced.doc.resolve(end - 2)));
}),
+ // right justify text
new InputRule(
- new RegExp(/##\s$/),
+ new RegExp(/%\]$/),
(state, match, start, end) => {
- let node = (state.doc.resolve(start) as any).nodeAfter;
- let sm = state.storedMarks || undefined;
- let target = Docs.Create.TextDocument({ width: 75, height: 35, autoHeight: true, fontSize: 9, title: "inline comment" });
- let replaced = node ? state.tr.insertText("←", start).replaceRangeWith(start + 1, end + 1, schema.nodes.dashDoc.create({
- width: 75, height: 35,
- title: "dashDoc", docid: target[Id],
- float: "right"
- })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) :
+ const node = (state.doc.resolve(start) as any).nodeAfter;
+ const sm = state.storedMarks || undefined;
+ const replaced = node ? state.tr.replaceRangeWith(start, end, schema.nodes.paragraph.create({ align: "right" })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) :
state.tr;
- return replaced.setSelection(new TextSelection(replaced.doc.resolve(end - 1)));
+ return replaced.setSelection(new TextSelection(replaced.doc.resolve(end - 2)));
}),
new InputRule(
- new RegExp(/\(\(/),
+ new RegExp(/%\(/),
(state, match, start, end) => {
- let node = (state.doc.resolve(start) as any).nodeAfter;
- let sm = state.storedMarks || undefined;
- let mark = state.schema.marks.highlight.create();
- let selected = state.tr.setSelection(new TextSelection(state.doc.resolve(start), state.doc.resolve(end))).addMark(start, end, mark);
- let content = selected.selection.content();
- let replaced = node ? selected.replaceRangeWith(start, start,
- schema.nodes.star.create({ visibility: true, text: content, textslice: content.toJSON() })).setStoredMarks([...node.marks, ...(sm ? sm : [])]) :
+ const node = (state.doc.resolve(start) as any).nodeAfter;
+ const sm = state.storedMarks || [];
+ const mark = state.schema.marks.summarizeInclusive.create();
+ sm.push(mark);
+ const selected = state.tr.setSelection(new TextSelection(state.doc.resolve(start), state.doc.resolve(end))).addMark(start, end, mark);
+ const content = selected.selection.content();
+ const replaced = node ? selected.replaceRangeWith(start, end,
+ schema.nodes.summary.create({ visibility: true, text: content, textslice: content.toJSON() })) :
state.tr;
- return replaced.setSelection(new TextSelection(replaced.doc.resolve(end + 1)));
+ return replaced.setSelection(new TextSelection(replaced.doc.resolve(end + 1))).setStoredMarks([...node.marks, ...sm]);
}),
new InputRule(
- new RegExp(/\)\)/),
+ new RegExp(/%\)/),
(state, match, start, end) => {
- let mark = state.schema.marks.highlight.create();
- return state.tr.removeStoredMark(mark);
+ return state.tr.deleteRange(start, end).removeStoredMark(state.schema.marks.summarizeInclusive.create());
}),
new InputRule(
- new RegExp(/\^f\s$/),
+ new RegExp(/%f$/),
(state, match, start, end) => {
- let newNode = schema.nodes.footnote.create({});
- let tr = state.tr;
+ const newNode = schema.nodes.footnote.create({});
+ const tr = state.tr;
tr.deleteRange(start, end).replaceSelectionWith(newNode); // replace insertion with a footnote.
return tr.setSelection(new NodeSelection( // select the footnote node to open its display
tr.doc.resolve( // get the location of the footnote node by subtracting the nodesize of the footnote from the current insertion point anchor (which will be immediately after the footnote node)
tr.selection.anchor - tr.selection.$anchor.nodeBefore!.nodeSize)));
}),
- // let newNode = schema.nodes.footnote.create({});
- // if (dispatch && state.selection.from === state.selection.to) {
- // return true;
- // }
+
+ // activate a style by name using prefix '%'
+ new InputRule(
+ new RegExp(/%[a-z]+$/),
+ (state, match, start, end) => {
+ const color = match[0].substring(1, match[0].length);
+ const marks = RichTextMenu.Instance._brushMap.get(color);
+ if (marks) {
+ const tr = state.tr.deleteRange(start, end);
+ return marks ? Array.from(marks).reduce((tr, m) => tr.addStoredMark(m), tr) : tr;
+ }
+ const isValidColor = (strColor: string) => {
+ const s = new Option().style;
+ s.color = strColor;
+ return s.color === strColor.toLowerCase(); // 'false' if color wasn't assigned
+ };
+ if (isValidColor(color)) {
+ return state.tr.deleteRange(start, end).addStoredMark(schema.marks.pFontColor.create({ color: color }));
+ }
+ return null;
+ }),
]
};
diff --git a/src/client/util/RichTextSchema.tsx b/src/client/util/RichTextSchema.tsx
index 0a717dff1..287a1049b 100644
--- a/src/client/util/RichTextSchema.tsx
+++ b/src/client/util/RichTextSchema.tsx
@@ -1,4 +1,4 @@
-import { action, observable, runInAction, reaction, IReactionDisposer } from "mobx";
+import { reaction, IReactionDisposer, observable, runInAction } from "mobx";
import { baseKeymap, toggleMark } from "prosemirror-commands";
import { redo, undo } from "prosemirror-history";
import { keymap } from "prosemirror-keymap";
@@ -8,7 +8,7 @@ import { EditorState, NodeSelection, TextSelection, Plugin } from "prosemirror-s
import { StepMap } from "prosemirror-transform";
import { EditorView } from "prosemirror-view";
import * as ReactDOM from 'react-dom';
-import { Doc, WidthSym, HeightSym } from "../../new_fields/Doc";
+import { Doc, WidthSym, HeightSym, DataSym, Field } from "../../new_fields/Doc";
import { emptyFunction, returnEmptyString, returnFalse, returnOne, Utils } from "../../Utils";
import { DocServer } from "../DocServer";
import { DocumentView } from "../views/nodes/DocumentView";
@@ -16,10 +16,14 @@ import { DocumentManager } from "./DocumentManager";
import ParagraphNodeSpec from "./ParagraphNodeSpec";
import { Transform } from "./Transform";
import React = require("react");
-import { BoolCast, NumCast } from "../../new_fields/Types";
+import { BoolCast, NumCast, StrCast } from "../../new_fields/Types";
import { FormattedTextBox } from "../views/nodes/FormattedTextBox";
+import { ObjectField } from "../../new_fields/ObjectField";
+import { ComputedField } from "../../new_fields/ScriptField";
+import { observer } from "mobx-react";
+import { Id } from "../../new_fields/FieldSymbols";
-const pDOM: DOMOutputSpecArray = ["p", 0], blockquoteDOM: DOMOutputSpecArray = ["blockquote", 0], hrDOM: DOMOutputSpecArray = ["hr"],
+const blockquoteDOM: DOMOutputSpecArray = ["blockquote", 0], hrDOM: DOMOutputSpecArray = ["hr"],
preDOM: DOMOutputSpecArray = ["pre", ["code", 0]], brDOM: DOMOutputSpecArray = ["br"], ulDOM: DOMOutputSpecArray = ["ul", 0];
// :: Object
@@ -30,7 +34,6 @@ export const nodes: { [index: string]: NodeSpec } = {
content: "block+"
},
-
footnote: {
group: "inline",
content: "inline*",
@@ -45,15 +48,6 @@ export const nodes: { [index: string]: NodeSpec } = {
parseDOM: [{ tag: "footnote" }]
},
- // // :: NodeSpec A plain paragraph textblock. Represented in the DOM
- // // as a `<p>` element.
- // paragraph: {
- // content: "inline*",
- // group: "block",
- // parseDOM: [{ tag: "p" }],
- // toDOM() { return pDOM; }
- // },
-
paragraph: ParagraphNodeSpec,
// :: NodeSpec A blockquote (`<blockquote>`) wrapping one or more blocks.
@@ -107,7 +101,19 @@ export const nodes: { [index: string]: NodeSpec } = {
group: "inline"
},
- star: {
+ dashComment: {
+ attrs: {
+ docid: { default: "" },
+ },
+ inline: true,
+ group: "inline",
+ toDOM(node) {
+ const attrs = { style: `width: 40px` };
+ return ["span", { ...node.attrs, ...attrs }, "←"];
+ },
+ },
+
+ summary: {
inline: true,
attrs: {
visibility: { default: false },
@@ -119,15 +125,6 @@ export const nodes: { [index: string]: NodeSpec } = {
const attrs = { style: `width: 40px` };
return ["span", { ...node.attrs, ...attrs }];
},
- // parseDOM: [{
- // tag: "star", getAttrs(dom: any) {
- // return {
- // visibility: dom.getAttribute("visibility"),
- // oldtext: dom.getAttribute("oldtext"),
- // oldtextlen: dom.getAttribute("oldtextlen"),
- // }
- // }
- // }]
},
// :: NodeSpec An inline image (`<img>`) node. Supports `src`,
@@ -171,21 +168,27 @@ export const nodes: { [index: string]: NodeSpec } = {
title: { default: null },
float: { default: "right" },
location: { default: "onRight" },
+ hidden: { default: false },
+ fieldKey: { default: "" },
+ docid: { default: "" },
+ alias: { default: "" }
+ },
+ group: "inline",
+ draggable: false,
+ toDOM(node) {
+ const attrs = { style: `width: ${node.attrs.width}, height: ${node.attrs.height}` };
+ return ["div", { ...node.attrs, ...attrs }];
+ }
+ },
+
+ dashField: {
+ inline: true,
+ attrs: {
+ fieldKey: { default: "" },
docid: { default: "" }
},
group: "inline",
- draggable: true,
- // parseDOM: [{
- // tag: "img[src]", getAttrs(dom: any) {
- // return {
- // src: dom.getAttribute("src"),
- // title: dom.getAttribute("title"),
- // alt: dom.getAttribute("alt"),
- // width: Math.min(100, Number(dom.getAttribute("width"))),
- // };
- // }
- // }],
- // TODO if we don't define toDom, dragging the image crashes. Why?
+ draggable: false,
toDOM(node) {
const attrs = { style: `width: ${node.attrs.width}, height: ${node.attrs.height}` };
return ["div", { ...node.attrs, ...attrs }];
@@ -235,20 +238,21 @@ export const nodes: { [index: string]: NodeSpec } = {
bulletStyle: { default: 0 },
mapStyle: { default: "decimal" },
setFontSize: { default: undefined },
- setFontFamily: { default: undefined },
+ setFontFamily: { default: "inherit" },
+ setFontColor: { default: "inherit" },
inheritedFontSize: { default: undefined },
- visibility: { default: true }
+ visibility: { default: true },
+ indent: { default: undefined }
},
toDOM(node: Node<any>) {
- const bs = node.attrs.bulletStyle;
if (node.attrs.mapStyle === "bullet") return ['ul', 0];
- const decMap = bs ? "decimal" + bs : "";
- const multiMap = bs === 1 ? "decimal1" : bs === 2 ? "upper-alpha" : bs === 3 ? "lower-roman" : bs === 4 ? "lower-alpha" : "";
- let map = node.attrs.mapStyle === "decimal" ? decMap : multiMap;
- let fsize = node.attrs.setFontSize ? node.attrs.setFontSize : node.attrs.inheritedFontSize;
- let ffam = node.attrs.setFontFamily;
- return node.attrs.visibility ? ['ol', { class: `${map}-ol`, style: `list-style: none; font-size: ${fsize}; font-family: ${ffam}` }, 0] :
- ['ol', { class: `${map}-ol`, style: `list-style: none; font-size: ${fsize}; font-family: ${ffam}` }];
+ const map = node.attrs.bulletStyle ? node.attrs.mapStyle + node.attrs.bulletStyle : "";
+ const fsize = node.attrs.setFontSize ? node.attrs.setFontSize : node.attrs.inheritedFontSize;
+ const ffam = node.attrs.setFontFamily;
+ const color = node.attrs.setFontColor;
+ return node.attrs.visibility ?
+ ['ol', { class: `${map}-ol`, style: `list-style: none; font-size: ${fsize}; font-family: ${ffam}; color:${color}; margin-left: ${node.attrs.indent}` }, 0] :
+ ['ol', { class: `${map}-ol`, style: `list-style: none;` }];
}
},
@@ -271,10 +275,7 @@ export const nodes: { [index: string]: NodeSpec } = {
...listItem,
content: 'paragraph block*',
toDOM(node: any) {
- const bs = node.attrs.bulletStyle;
- const decMap = bs ? "decimal" + bs : "";
- const multiMap = bs === 1 ? "decimal1" : bs === 2 ? "upper-alpha" : bs === 3 ? "lower-roman" : bs === 4 ? "lower-alpha" : "";
- let map = node.attrs.mapStyle === "decimal" ? decMap : node.attrs.mapStyle === "multi" ? multiMap : "";
+ const map = node.attrs.bulletStyle ? node.attrs.mapStyle + node.attrs.bulletStyle : "";
return node.attrs.visibility ? ["li", { class: `${map}` }, 0] : ["li", { class: `${map}` }, "..."];
//return ["li", { class: `${map}` }, 0];
}
@@ -293,6 +294,8 @@ export const marks: { [index: string]: MarkSpec } = {
link: {
attrs: {
href: {},
+ targetId: { default: "" },
+ showPreview: { default: true },
location: { default: null },
title: { default: null },
docref: { default: false } // flags whether the linked text comes from a document within Dash. If so, an attribution label is appended after the text
@@ -300,29 +303,30 @@ export const marks: { [index: string]: MarkSpec } = {
inclusive: false,
parseDOM: [{
tag: "a[href]", getAttrs(dom: any) {
- return { href: dom.getAttribute("href"), location: dom.getAttribute("location"), title: dom.getAttribute("title") };
+ return { href: dom.getAttribute("href"), location: dom.getAttribute("location"), title: dom.getAttribute("title"), targetId: dom.getAttribute("id") };
}
}],
toDOM(node: any) {
return node.attrs.docref && node.attrs.title ?
["div", ["span", `"`], ["span", 0], ["span", `"`], ["br"], ["a", { ...node.attrs, class: "prosemirror-attribution", title: `${node.attrs.title}` }, node.attrs.title], ["br"]] :
- ["a", { ...node.attrs, title: `${node.attrs.title}` }, 0];
+ ["a", { ...node.attrs, id: node.attrs.targetId, title: `${node.attrs.title}` }, 0];
}
},
+
// :: MarkSpec Coloring on text. Has `color` attribute that defined the color of the marked text.
- color: {
+ pFontColor: {
attrs: {
color: { default: "#000" }
},
- inclusive: false,
+ inclusive: true,
parseDOM: [{
tag: "span", getAttrs(dom: any) {
return { color: dom.getAttribute("color") };
}
}],
toDOM(node: any) {
- return node.attrs.color ? ['span', { style: 'color:' + node.attrs.color }] : ['span', { style: 'color: black' }];
+ return node.attrs.color ? ['span', { style: 'color:' + node.attrs.color }] : ['span', 0];
}
},
@@ -330,7 +334,7 @@ export const marks: { [index: string]: MarkSpec } = {
attrs: {
highlight: { default: "transparent" }
},
- inclusive: false,
+ inclusive: true,
parseDOM: [{
tag: "span", getAttrs(dom: any) {
return { highlight: dom.getAttribute("backgroundColor") };
@@ -413,16 +417,16 @@ export const marks: { [index: string]: MarkSpec } = {
}
},
- highlight: {
+ summarizeInclusive: {
parseDOM: [
{
tag: "span",
getAttrs: (p: any) => {
if (typeof (p) !== "string") {
- let style = getComputedStyle(p);
+ const style = getComputedStyle(p);
if (style.textDecoration === "underline") return null;
if (p.parentElement.outerHTML.indexOf("text-decoration: underline") !== -1 &&
- p.parentElement.outerHTML.indexOf("text-decoration-style: dotted") !== -1) {
+ p.parentElement.outerHTML.indexOf("text-decoration-style: solid") !== -1) {
return null;
}
}
@@ -433,6 +437,31 @@ export const marks: { [index: string]: MarkSpec } = {
inclusive: true,
toDOM() {
return ['span', {
+ style: 'text-decoration: underline; text-decoration-style: solid; text-decoration-color: rgba(204, 206, 210, 0.92)'
+ }];
+ }
+ },
+
+ summarize: {
+ inclusive: false,
+ parseDOM: [
+ {
+ tag: "span",
+ getAttrs: (p: any) => {
+ if (typeof (p) !== "string") {
+ const style = getComputedStyle(p);
+ if (style.textDecoration === "underline") return null;
+ if (p.parentElement.outerHTML.indexOf("text-decoration: underline") !== -1 &&
+ p.parentElement.outerHTML.indexOf("text-decoration-style: dotted") !== -1) {
+ return null;
+ }
+ }
+ return false;
+ }
+ },
+ ],
+ toDOM() {
+ return ['span', {
style: 'text-decoration: underline; text-decoration-style: dotted; text-decoration-color: rgba(204, 206, 210, 0.92)'
}];
}
@@ -444,7 +473,7 @@ export const marks: { [index: string]: MarkSpec } = {
tag: "span",
getAttrs: (p: any) => {
if (typeof (p) !== "string") {
- let style = getComputedStyle(p);
+ const style = getComputedStyle(p);
if (style.textDecoration === "underline" || p.parentElement.outerHTML.indexOf("text-decoration-style:line") !== -1) {
return null;
}
@@ -475,35 +504,30 @@ export const marks: { [index: string]: MarkSpec } = {
user_mark: {
attrs: {
userid: { default: "" },
- opened: { default: true },
modified: { default: "when?" }, // 5 second intervals since 1970
},
group: "inline",
toDOM(node: any) {
- let uid = node.attrs.userid.replace(".", "").replace("@", "");
- let min = Math.round(node.attrs.modified / 12);
- let hr = Math.round(min / 60);
- let day = Math.round(hr / 60 / 24);
- let remote = node.attrs.userid !== Doc.CurrentUserEmail ? " userMark-remote" : "";
- return node.attrs.opened ?
- ['span', { class: "userMark-" + uid + remote + " userMark-min-" + min + " userMark-hr-" + hr + " userMark-day-" + day }, 0] :
- ['span', { class: "userMark-" + uid + remote + " userMark-min-" + min + " userMark-hr-" + hr + " userMark-day-" + day }, ['span', 0]];
+ const uid = node.attrs.userid.replace(".", "").replace("@", "");
+ const min = Math.round(node.attrs.modified / 12);
+ const hr = Math.round(min / 60);
+ const day = Math.round(hr / 60 / 24);
+ const remote = node.attrs.userid !== Doc.CurrentUserEmail ? " userMark-remote" : "";
+ return ['span', { class: "userMark-" + uid + remote + " userMark-min-" + min + " userMark-hr-" + hr + " userMark-day-" + day }, 0];
}
},
// the id of the user who entered the text
user_tag: {
attrs: {
userid: { default: "" },
- opened: { default: true },
modified: { default: "when?" }, // 5 second intervals since 1970
tag: { default: "" }
},
group: "inline",
+ inclusive: false,
toDOM(node: any) {
- let uid = node.attrs.userid.replace(".", "").replace("@", "");
- return node.attrs.opened ?
- ['span', { class: "userTag-" + uid + " userTag-" + node.attrs.tag }, 0] :
- ['span', { class: "userTag-" + uid + " userTag-" + node.attrs.tag }, ['span', 0]];
+ const uid = node.attrs.userid.replace(".", "").replace("@", "");
+ return ['span', { class: "userTag-" + uid + " userTag-" + node.attrs.tag }, 0];
}
},
@@ -521,7 +545,7 @@ export const marks: { [index: string]: MarkSpec } = {
},
parseDOM: [{
tag: "span", getAttrs(dom: any) {
- let cstyle = getComputedStyle(dom);
+ const cstyle = getComputedStyle(dom);
if (cstyle.font) {
if (cstyle.font.indexOf("Times New Roman") !== -1) return { family: "Times New Roman" };
if (cstyle.font.indexOf("Arial") !== -1) return { family: "Arial" };
@@ -537,18 +561,6 @@ export const marks: { [index: string]: MarkSpec } = {
}]
},
- pFontColor: {
- attrs: {
- color: { default: "yellow" }
- },
- parseDOM: [{ style: 'background: #d9dbdd' }],
- toDOM: (node) => {
- return ['span', {
- style: `color: ${node.attrs.color}`
- }];
- }
- },
-
/** FONT SIZES */
pFontSize: {
attrs: {
@@ -586,7 +598,7 @@ export class ImageResizeView {
this._handle.style.display = "none";
this._handle.style.bottom = "-10px";
this._handle.style.right = "-10px";
- let self = this;
+ const self = this;
this._img.onclick = function (e: any) {
e.stopPropagation();
e.preventDefault();
@@ -607,8 +619,8 @@ export class ImageResizeView {
this._handle.onpointerdown = function (e: any) {
e.preventDefault();
e.stopPropagation();
- let wid = Number(getComputedStyle(self._img).width.replace(/px/, ""));
- let hgt = Number(getComputedStyle(self._img).height.replace(/px/, ""));
+ const wid = Number(getComputedStyle(self._img).width.replace(/px/, ""));
+ const hgt = Number(getComputedStyle(self._img).height.replace(/px/, ""));
const startX = e.pageX;
const startWidth = parseFloat(node.attrs.width);
const onpointermove = (e: any) => {
@@ -621,7 +633,7 @@ export class ImageResizeView {
const onpointerup = () => {
document.removeEventListener("pointermove", onpointermove);
document.removeEventListener("pointerup", onpointerup);
- let pos = view.state.selection.from;
+ const pos = view.state.selection.from;
view.dispatch(view.state.tr.setNodeMarkup(getPos(), null, { ...node.attrs, width: self._outer.style.width, height: self._outer.style.height }));
view.dispatch(view.state.tr.setSelection(new NodeSelection(view.state.doc.resolve(pos))));
};
@@ -648,6 +660,58 @@ export class ImageResizeView {
}
}
+
+export class DashDocCommentView {
+ _collapsed: HTMLElement;
+ _view: any;
+ constructor(node: any, view: any, getPos: any) {
+ this._collapsed = document.createElement("span");
+ this._collapsed.className = "formattedTextBox-inlineComment";
+ this._collapsed.id = "DashDocCommentView-" + node.attrs.docid;
+ this._view = view;
+ const targetNode = () => { // search forward in the prosemirror doc for the attached dashDocNode that is the target of the comment anchor
+ for (let i = getPos() + 1; i < view.state.doc.content.size; i++) {
+ const m = view.state.doc.nodeAt(i);
+ if (m && m.type === view.state.schema.nodes.dashDoc && m.attrs.docid === node.attrs.docid) {
+ return { node: m, pos: i, hidden: m.attrs.hidden } as { node: any, pos: number, hidden: boolean };
+ }
+ }
+ const dashDoc = view.state.schema.nodes.dashDoc.create({ width: 75, height: 35, title: "dashDoc", docid: node.attrs.docid, float: "right" });
+ view.dispatch(view.state.tr.insert(getPos() + 1, dashDoc));
+ setTimeout(() => { try { view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.tr.doc, getPos() + 2))); } catch (e) { } }, 0);
+ return undefined;
+ };
+ this._collapsed.onpointerdown = (e: any) => {
+ e.stopPropagation();
+ };
+ this._collapsed.onpointerup = (e: any) => {
+ const target = targetNode();
+ if (target) {
+ const expand = target.hidden;
+ const tr = view.state.tr.setNodeMarkup(target.pos, undefined, { ...target.node.attrs, hidden: target.node.attrs.hidden ? false : true });
+ view.dispatch(tr.setSelection(TextSelection.create(tr.doc, getPos() + (expand ? 2 : 1)))); // update the attrs
+ setTimeout(() => {
+ expand && DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc));
+ try { view.dispatch(view.state.tr.setSelection(TextSelection.create(view.state.tr.doc, getPos() + (expand ? 2 : 1)))); } catch (e) { }
+ }, 0);
+ }
+ e.stopPropagation();
+ };
+ this._collapsed.onpointerenter = (e: any) => {
+ DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowHighlight(dashDoc, false));
+ e.preventDefault();
+ e.stopPropagation();
+ };
+ this._collapsed.onpointerleave = (e: any) => {
+ DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && Doc.linkFollowUnhighlight());
+ e.preventDefault();
+ e.stopPropagation();
+ };
+ (this as any).dom = this._collapsed;
+ }
+ selectNode() { }
+}
+
export class DashDocView {
_dashSpan: HTMLDivElement;
_outer: HTMLElement;
@@ -656,81 +720,178 @@ export class DashDocView {
_textBox: FormattedTextBox;
getDocTransform = () => {
- let { scale, translateX, translateY } = Utils.GetScreenTransform(this._outer);
+ const { scale, translateX, translateY } = Utils.GetScreenTransform(this._outer);
return new Transform(-translateX, -translateY, 1).scale(1 / this.contentScaling() / scale);
}
- contentScaling = () => NumCast(this._dashDoc!.nativeWidth) > 0 && !this._dashDoc!.ignoreAspect ? this._dashDoc![WidthSym]() / NumCast(this._dashDoc!.nativeWidth) : 1;
+ contentScaling = () => NumCast(this._dashDoc!._nativeWidth) > 0 && !this._dashDoc!.ignoreAspect ? this._dashDoc![WidthSym]() / NumCast(this._dashDoc!._nativeWidth) : 1;
+ outerFocus = (target: Doc) => this._textBox.props.focus(this._textBox.props.Document); // ideally, this would scroll to show the focus target
constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) {
this._textBox = tbox;
this._dashSpan = document.createElement("div");
this._outer = document.createElement("span");
this._outer.style.position = "relative";
+ this._outer.style.textIndent = "0";
this._outer.style.width = node.attrs.width;
this._outer.style.height = node.attrs.height;
- this._outer.style.display = "inline-block";
- this._outer.style.overflow = "hidden";
+ this._outer.style.display = node.attrs.hidden ? "none" : "inline-block";
+ // this._outer.style.overflow = "hidden"; // bcz: not sure if this is needed. if it's used, then the doc doesn't highlight when you hover over a docComment
(this._outer.style as any).float = node.attrs.float;
this._dashSpan.style.width = node.attrs.width;
this._dashSpan.style.height = node.attrs.height;
this._dashSpan.style.position = "absolute";
this._dashSpan.style.display = "inline-block";
- let removeDoc = () => {
- let pos = getPos();
- let ns = new NodeSelection(view.state.doc.resolve(pos));
+ this._dashSpan.onpointerleave = () => {
+ const ele = document.getElementById("DashDocCommentView-" + node.attrs.docid);
+ if (ele) {
+ (ele as HTMLDivElement).style.backgroundColor = "";
+ }
+ };
+ this._dashSpan.onpointerenter = () => {
+ const ele = document.getElementById("DashDocCommentView-" + node.attrs.docid);
+ if (ele) {
+ (ele as HTMLDivElement).style.backgroundColor = "orange";
+ }
+ };
+ const removeDoc = () => {
+ const pos = getPos();
+ const ns = new NodeSelection(view.state.doc.resolve(pos));
view.dispatch(view.state.tr.setSelection(ns).deleteSelection());
return true;
};
- DocServer.GetRefField(node.attrs.docid).then(async dashDoc => {
- if (dashDoc instanceof Doc) {
- self._dashDoc = dashDoc;
- if (node.attrs.width !== dashDoc.width + "px" || node.attrs.height !== dashDoc.height + "px") {
- view.dispatch(view.state.tr.setNodeMarkup(getPos(), null, { ...node.attrs, width: dashDoc.width + "px", height: dashDoc.height + "px" }));
- }
- this._reactionDisposer && this._reactionDisposer();
- this._reactionDisposer = reaction(() => dashDoc[HeightSym]() + dashDoc[WidthSym](), () => {
- this._dashSpan.style.height = this._outer.style.height = dashDoc[HeightSym]() + "px";
- this._dashSpan.style.width = this._outer.style.width = dashDoc[WidthSym]() + "px";
+ const alias = node.attrs.alias;
+
+ const docid = node.attrs.docid || tbox.props.DataDoc?.[Id] || tbox.dataDoc?.[Id];
+ DocServer.GetRefField(docid + alias).then(async dashDoc => {
+ if (!(dashDoc instanceof Doc)) {
+ alias && DocServer.GetRefField(docid).then(async dashDocBase => {
+ if (dashDocBase instanceof Doc) {
+ const aliasedDoc = Doc.MakeDelegate(dashDocBase, docid + alias);
+ aliasedDoc.layoutKey = "layout_" + node.attrs.fieldKey;
+ self.doRender(aliasedDoc, removeDoc, node, view, getPos);
+ }
});
- ReactDOM.render(<DocumentView
- fitToBox={BoolCast(dashDoc.fitToBox)}
- Document={dashDoc}
- addDocument={returnFalse}
- removeDocument={removeDoc}
- ruleProvider={undefined}
- ScreenToLocalTransform={this.getDocTransform}
- addDocTab={self._textBox.props.addDocTab}
- pinToPres={returnFalse}
- renderDepth={1}
- PanelWidth={self._dashDoc[WidthSym]}
- PanelHeight={self._dashDoc[HeightSym]}
- focus={emptyFunction}
- backgroundColor={returnEmptyString}
- parentActive={returnFalse}
- whenActiveChanged={returnFalse}
- bringToFront={emptyFunction}
- zoomToScale={emptyFunction}
- getScale={returnOne}
- dontRegisterView={true}
- ContainingCollectionView={undefined}
- ContainingCollectionDoc={undefined}
- ContentScaling={this.contentScaling}
- />, this._dashSpan);
+ } else {
+ self.doRender(dashDoc, removeDoc, node, view, getPos);
}
});
- let self = this;
- this._dashSpan.onkeydown = function (e: any) { e.stopPropagation(); };
+ const self = this;
+ this._dashSpan.onkeydown = function (e: any) {
+ e.stopPropagation();
+ if (e.key === "Tab" || e.key === "Enter") {
+ e.preventDefault();
+ }
+ };
this._dashSpan.onkeypress = function (e: any) { e.stopPropagation(); };
this._dashSpan.onwheel = function (e: any) { e.preventDefault(); };
this._dashSpan.onkeyup = function (e: any) { e.stopPropagation(); };
this._outer.appendChild(this._dashSpan);
(this as any).dom = this._outer;
}
+ doRender(dashDoc: Doc, removeDoc: any, node: any, view: any, getPos: any) {
+ this._dashDoc = dashDoc;
+ dashDoc._hideSidebar = true;
+ if (node.attrs.width !== dashDoc._width + "px" || node.attrs.height !== dashDoc._height + "px") {
+ try { // bcz: an exception will be thrown if two aliases are open at the same time when a doc view comment is made
+ view.dispatch(view.state.tr.setNodeMarkup(getPos(), null, { ...node.attrs, width: dashDoc._width + "px", height: dashDoc._height + "px" }));
+ } catch (e) {
+ console.log(e);
+ }
+ }
+ const self = this;
+ const finalLayout = Doc.expandTemplateLayout(dashDoc, !Doc.AreProtosEqual(this._textBox.dataDoc, this._textBox.Document) ? this._textBox.dataDoc : undefined);
+ if (!finalLayout) setTimeout(() => self.doRender(dashDoc, removeDoc, node, view, getPos), 0);
+ else {
+ const layoutKey = StrCast(finalLayout.layoutKey);
+ const finalKey = layoutKey && StrCast(finalLayout[layoutKey]).split("'")?.[1];
+ if (finalLayout !== dashDoc && finalKey) {
+ const finalLayoutField = finalLayout[finalKey];
+ if (finalLayoutField instanceof ObjectField) {
+ finalLayout._textTemplate = ComputedField.MakeFunction(`copyField(this.${finalKey})`, { this: Doc.name });
+ }
+ }
+ this._reactionDisposer && this._reactionDisposer();
+ this._reactionDisposer = reaction(() => [finalLayout[WidthSym](), finalLayout[HeightSym]()], (dim) => {
+ this._dashSpan.style.width = this._outer.style.width = dim[0] + "px";
+ this._dashSpan.style.height = this._outer.style.height = dim[1] + "px";
+ }, { fireImmediately: true });
+ ReactDOM.render(<DocumentView
+ Document={finalLayout}
+ DataDoc={!node.attrs.docid ? this._textBox.dataDoc : undefined}
+ LibraryPath={this._textBox.props.LibraryPath}
+ fitToBox={BoolCast(dashDoc._fitToBox)}
+ addDocument={returnFalse}
+ removeDocument={removeDoc}
+ ScreenToLocalTransform={this.getDocTransform}
+ addDocTab={this._textBox.props.addDocTab}
+ pinToPres={returnFalse}
+ renderDepth={1}
+ PanelWidth={finalLayout[WidthSym]}
+ PanelHeight={finalLayout[HeightSym]}
+ focus={this.outerFocus}
+ backgroundColor={returnEmptyString}
+ parentActive={returnFalse}
+ whenActiveChanged={returnFalse}
+ bringToFront={emptyFunction}
+ zoomToScale={emptyFunction}
+ getScale={returnOne}
+ dontRegisterView={false}
+ ContainingCollectionView={undefined}
+ ContainingCollectionDoc={undefined}
+ ContentScaling={this.contentScaling}
+ />, this._dashSpan);
+ }
+ }
destroy() {
this._reactionDisposer && this._reactionDisposer();
}
}
+
+export class DashFieldView {
+ _fieldWrapper: HTMLDivElement;
+ _labelSpan: HTMLSpanElement;
+ _fieldSpan: HTMLSpanElement;
+ _reactionDisposer: IReactionDisposer | undefined;
+ _textBoxDoc: Doc;
+ @observable _dashDoc: Doc | undefined;
+
+ constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) {
+ this._textBoxDoc = tbox.props.Document;
+ this._fieldWrapper = document.createElement("div");
+ this._fieldWrapper.style.width = node.attrs.width;
+ this._fieldWrapper.style.height = node.attrs.height;
+ this._fieldWrapper.style.position = "relative";
+ this._fieldWrapper.style.display = "inline";
+
+ this._fieldSpan = document.createElement("span");
+ this._fieldSpan.style.position = "relative";
+ this._fieldSpan.style.display = "inline";
+
+ this._labelSpan = document.createElement("span");
+ this._labelSpan.style.position = "relative";
+ this._labelSpan.style.display = "inline";
+ this._labelSpan.style.fontWeight = "bold";
+ this._labelSpan.style.fontSize = "larger";
+ this._labelSpan.innerHTML = `${node.attrs.fieldKey}: `;
+ if (node.attrs.docid) {
+ const self = this;
+ DocServer.GetRefField(node.attrs.docid).then(async dashDoc => dashDoc instanceof Doc && runInAction(() => self._dashDoc = dashDoc));
+ } else {
+ this._dashDoc = tbox.props.DataDoc || tbox.dataDoc;
+ }
+ this._reactionDisposer?.();
+ this._reactionDisposer = reaction(() => this._dashDoc?.[node.attrs.fieldKey], fval => this._fieldSpan.innerHTML = Field.toString(fval as Field), { fireImmediately: true });
+
+ this._fieldWrapper.appendChild(this._labelSpan);
+ this._fieldWrapper.appendChild(this._fieldSpan);
+ (this as any).dom = this._fieldWrapper;
+ }
+ destroy() {
+ this._reactionDisposer?.();
+ }
+}
+
export class OrderedListView {
update(node: any) {
return false; // if attr's of an ordered_list (e.g., bulletStyle) change, return false forces the dom node to be recreated which is necessary for the bullet labels to update
@@ -771,7 +932,7 @@ export class FootnoteView {
}
open() {
// Append a tooltip to the outer node
- let tooltip = this.dom.appendChild(document.createElement("div"));
+ const tooltip = this.dom.appendChild(document.createElement("div"));
tooltip.className = "footnote-tooltip";
// And put a sub-ProseMirror into that
this.innerView = new EditorView(tooltip, {
@@ -786,7 +947,8 @@ export class FootnoteView {
}),
new Plugin({
view(newView) {
- return FormattedTextBox.getToolTip(newView);
+ // TODO -- make this work with RichTextMenu
+ // return FormattedTextBox.getToolTip(newView);
}
})
],
@@ -826,14 +988,14 @@ export class FootnoteView {
this.dom.textContent = "";
}
dispatchInner(tr: any) {
- let { state, transactions } = this.innerView.state.applyTransaction(tr);
+ const { state, transactions } = this.innerView.state.applyTransaction(tr);
this.innerView.updateState(state);
if (!tr.getMeta("fromOutside")) {
- let outerTr = this.outerView.state.tr, offsetMap = StepMap.offset(this.getPos() + 1);
- for (let transaction of transactions) {
- let steps = transaction.steps;
- for (let step of steps) {
+ const outerTr = this.outerView.state.tr, offsetMap = StepMap.offset(this.getPos() + 1);
+ for (const transaction of transactions) {
+ const steps = transaction.steps;
+ for (const step of steps) {
outerTr.step(step.map(offsetMap));
}
}
@@ -844,11 +1006,11 @@ export class FootnoteView {
if (!node.sameMarkup(this.node)) return false;
this.node = node;
if (this.innerView) {
- let state = this.innerView.state;
- let start = node.content.findDiffStart(state.doc.content);
+ const state = this.innerView.state;
+ const start = node.content.findDiffStart(state.doc.content);
if (start !== null) {
let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content);
- let overlap = start - Math.min(endA, endB);
+ const overlap = start - Math.min(endA, endB);
if (overlap > 0) { endA += overlap; endB += overlap; }
this.innerView.dispatch(
state.tr
@@ -870,7 +1032,7 @@ export class FootnoteView {
ignoreMutation() { return true; }
}
-export class SummarizedView {
+export class SummaryView {
_collapsed: HTMLElement;
_view: any;
constructor(node: any, view: any, getPos: any) {
@@ -894,7 +1056,7 @@ export class SummarizedView {
view.dispatch(view.state.tr.
setSelection(textSelection). // select the current summarized text (or where it will be if its collapsed)
replaceSelection(!visible ? new Slice(Fragment.fromArray([]), 0, 0) : node.attrs.text). // collapse/expand it
- setNodeMarkup(getPos(), undefined, attrs)); // update the attrs
+ setNodeMarkup(getPos(), undefined, attrs)); // update the attrs
e.preventDefault();
e.stopPropagation();
this._collapsed.className = this.className(visible);
@@ -908,15 +1070,16 @@ export class SummarizedView {
className = (visible: boolean) => "formattedTextBox-summarizer" + (visible ? "" : "-collapsed");
updateSummarizedText(start?: any) {
- let mark = this._view.state.schema.marks.highlight.create();
+ const mtype = this._view.state.schema.marks.summarize;
+ const mtypeInc = this._view.state.schema.marks.summarizeInclusive;
let endPos = start;
- let visited = new Set();
+ const visited = new Set();
for (let i: number = start + 1; i < this._view.state.doc.nodeSize - 1; i++) {
let skip = false;
this._view.state.doc.nodesBetween(start, i, (node: Node, pos: number, parent: Node, index: number) => {
if (node.isLeaf && !visited.has(node) && !skip) {
- if (node.marks.find((m: any) => m.type === mark.type)) {
+ if (node.marks.find((m: any) => m.type === mtype || m.type === mtypeInc)) {
visited.add(node);
endPos = i + node.nodeSize - 1;
}
@@ -940,8 +1103,8 @@ export const schema = new Schema({ nodes, marks });
const fromJson = schema.nodeFromJSON;
schema.nodeFromJSON = (json: any) => {
- let node = fromJson(json);
- if (json.type === "star") {
+ const node = fromJson(json);
+ if (json.type === schema.marks.summarize.name) {
node.attrs.text = Slice.fromJSON(schema, node.attrs.textslice);
}
return node;
diff --git a/src/client/util/Scripting.ts b/src/client/util/Scripting.ts
index ff4451824..0fa96963e 100644
--- a/src/client/util/Scripting.ts
+++ b/src/client/util/Scripting.ts
@@ -94,16 +94,16 @@ function Run(script: string | undefined, customParams: string[], diagnostics: an
return { compiled: false, errors: diagnostics };
}
- let paramNames = Object.keys(scriptingGlobals);
- let params = paramNames.map(key => scriptingGlobals[key]);
+ const paramNames = Object.keys(scriptingGlobals);
+ const params = paramNames.map(key => scriptingGlobals[key]);
// let fieldTypes = [Doc, ImageField, PdfField, VideoField, AudioField, List, RichTextField, ScriptField, ComputedField, CompileScript];
// let paramNames = ["Docs", ...fieldTypes.map(fn => fn.name)];
// let params: any[] = [Docs, ...fieldTypes];
- let compiledFunction = new Function(...paramNames, `return ${script}`);
- let { capturedVariables = {} } = options;
- let run = (args: { [name: string]: any } = {}, onError?: (e: any) => void, errorVal?: any): ScriptResult => {
- let argsArray: any[] = [];
- for (let name of customParams) {
+ const compiledFunction = new Function(...paramNames, `return ${script}`);
+ const { capturedVariables = {} } = options;
+ const run = (args: { [name: string]: any } = {}, onError?: (e: any) => void, errorVal?: any): ScriptResult => {
+ const argsArray: any[] = [];
+ for (const name of customParams) {
if (name === "this") {
continue;
}
@@ -113,7 +113,7 @@ function Run(script: string | undefined, customParams: string[], diagnostics: an
argsArray.push(capturedVariables[name]);
}
}
- let thisParam = args.this || capturedVariables.this;
+ const thisParam = args.this || capturedVariables.this;
let batch: { end(): void } | undefined = undefined;
try {
if (!options.editable) {
@@ -146,7 +146,7 @@ class ScriptingCompilerHost {
// getSourceFile(fileName: string, languageVersion: ts.ScriptTarget, onError?: ((message: string) => void) | undefined, shouldCreateNewSourceFile?: boolean | undefined): ts.SourceFile | undefined {
getSourceFile(fileName: string, languageVersion: any, onError?: ((message: string) => void) | undefined, shouldCreateNewSourceFile?: boolean | undefined): any | undefined {
- let contents = this.readFile(fileName);
+ const contents = this.readFile(fileName);
if (contents !== undefined) {
return ts.createSourceFile(fileName, contents, languageVersion, true);
}
@@ -180,7 +180,7 @@ class ScriptingCompilerHost {
return this.files.some(file => file.fileName === fileName);
}
readFile(fileName: string): string | undefined {
- let file = this.files.find(file => file.fileName === fileName);
+ const file = this.files.find(file => file.fileName === fileName);
if (file) {
return file.content;
}
@@ -218,7 +218,7 @@ export function CompileScript(script: string, options: ScriptOptions = {}): Comp
if (options.globals) {
Scripting.setScriptingGlobals(options.globals);
}
- let host = new ScriptingCompilerHost;
+ const host = new ScriptingCompilerHost;
if (options.traverser) {
const sourceFile = ts.createSourceFile('script.ts', script, ts.ScriptTarget.ES2015, true);
const onEnter = typeof options.traverser === "object" ? options.traverser.onEnter : options.traverser;
@@ -240,7 +240,7 @@ export function CompileScript(script: string, options: ScriptOptions = {}): Comp
script = printer.printFile(transformed[0]);
result.dispose();
}
- let paramNames: string[] = [];
+ const paramNames: string[] = [];
if ("this" in params || "this" in capturedVariables) {
paramNames.push("this");
}
@@ -248,7 +248,7 @@ export function CompileScript(script: string, options: ScriptOptions = {}): Comp
if (key === "this") continue;
paramNames.push(key);
}
- let paramList = paramNames.map(key => {
+ const paramList = paramNames.map(key => {
const val = params[key];
return `${key}: ${val}`;
});
@@ -258,18 +258,18 @@ export function CompileScript(script: string, options: ScriptOptions = {}): Comp
paramNames.push(key);
paramList.push(`${key}: ${typeof val === "object" ? Object.getPrototypeOf(val).constructor.name : typeof val}`);
}
- let paramString = paramList.join(", ");
- let funcScript = `(function(${paramString})${requiredType ? `: ${requiredType}` : ''} {
+ const paramString = paramList.join(", ");
+ const funcScript = `(function(${paramString})${requiredType ? `: ${requiredType}` : ''} {
${addReturn ? `return ${script};` : script}
})`;
host.writeFile("file.ts", funcScript);
if (typecheck) host.writeFile('node_modules/typescript/lib/lib.d.ts', typescriptlib);
- let program = ts.createProgram(["file.ts"], {}, host);
- let testResult = program.emit();
- let outputText = host.readFile("file.js");
+ const program = ts.createProgram(["file.ts"], {}, host);
+ const testResult = program.emit();
+ const outputText = host.readFile("file.js");
- let diagnostics = ts.getPreEmitDiagnostics(program).concat(testResult.diagnostics);
+ const diagnostics = ts.getPreEmitDiagnostics(program).concat(testResult.diagnostics);
const result = Run(outputText, paramNames, diagnostics, script, options);
diff --git a/src/client/util/SearchUtil.ts b/src/client/util/SearchUtil.ts
index a8f4013f4..64874b994 100644
--- a/src/client/util/SearchUtil.ts
+++ b/src/client/util/SearchUtil.ts
@@ -34,37 +34,37 @@ export namespace SearchUtil {
export function Search(query: string, returnDocs: false, options?: SearchParams): Promise<IdSearchResult>;
export async function Search(query: string, returnDocs: boolean, options: SearchParams = {}) {
query = query || "*"; //If we just have a filter query, search for * as the query
- let result: IdSearchResult = JSON.parse(await rp.get(Utils.prepend("/search"), {
- qs: { ...options, q: query },
- }));
+ const rpquery = Utils.prepend("/search");
+ const gotten = await rp.get(rpquery, { qs: { ...options, q: query } });
+ const result: IdSearchResult = gotten.startsWith("<") ? { ids: [], docs: [], numFound: 0, lines: [] } : JSON.parse(gotten);
if (!returnDocs) {
return result;
}
- let { ids, numFound, highlighting } = result;
+ const { ids, highlighting } = result;
- let txtresult = query !== "*" && JSON.parse(await rp.get(Utils.prepend("/textsearch"), {
+ const txtresult = query !== "*" && JSON.parse(await rp.get(Utils.prepend("/textsearch"), {
qs: { ...options, q: query },
}));
- let fileids = txtresult ? txtresult.ids : [];
- let newIds: string[] = [];
- let newLines: string[][] = [];
+ const fileids = txtresult ? txtresult.ids : [];
+ const newIds: string[] = [];
+ const newLines: string[][] = [];
await Promise.all(fileids.map(async (tr: string, i: number) => {
- let docQuery = "fileUpload_t:" + tr.substr(0, 7); //If we just have a filter query, search for * as the query
- let docResult = JSON.parse(await rp.get(Utils.prepend("/search"), { qs: { ...options, q: docQuery } }));
+ const docQuery = "fileUpload_t:" + tr.substr(0, 7); //If we just have a filter query, search for * as the query
+ const docResult = JSON.parse(await rp.get(Utils.prepend("/search"), { qs: { ...options, q: docQuery } }));
newIds.push(...docResult.ids);
newLines.push(...docResult.ids.map((dr: any) => txtresult.lines[i]));
}));
- let theDocs: Doc[] = [];
- let theLines: string[][] = [];
+ const theDocs: Doc[] = [];
+ const theLines: string[][] = [];
const textDocMap = await DocServer.GetRefFields(newIds);
const textDocs = newIds.map((id: string) => textDocMap[id]).map(doc => doc as Doc);
for (let i = 0; i < textDocs.length; i++) {
- let testDoc = textDocs[i];
- if (testDoc instanceof Doc && testDoc.type !== DocumentType.KVP && theDocs.findIndex(d => Doc.AreProtosEqual(d, testDoc)) === -1) {
+ const testDoc = textDocs[i];
+ if (testDoc instanceof Doc && testDoc.type !== DocumentType.KVP && testDoc.type !== DocumentType.EXTENSION && theDocs.findIndex(d => Doc.AreProtosEqual(d, testDoc)) === -1) {
theDocs.push(Doc.GetProto(testDoc));
theLines.push(newLines[i].map(line => line.replace(query, query.toUpperCase())));
}
@@ -73,8 +73,8 @@ export namespace SearchUtil {
const docMap = await DocServer.GetRefFields(ids);
const docs = ids.map((id: string) => docMap[id]).map(doc => doc as Doc);
for (let i = 0; i < ids.length; i++) {
- let testDoc = docs[i];
- if (testDoc instanceof Doc && testDoc.type !== DocumentType.KVP && (options.allowAliases || theDocs.findIndex(d => Doc.AreProtosEqual(d, testDoc)) === -1)) {
+ const testDoc = docs[i];
+ if (testDoc instanceof Doc && testDoc.type !== DocumentType.KVP && testDoc.type !== DocumentType.EXTENSION && (options.allowAliases || theDocs.findIndex(d => Doc.AreProtosEqual(d, testDoc)) === -1)) {
theDocs.push(testDoc);
theLines.push([]);
}
diff --git a/src/client/util/SelectionManager.ts b/src/client/util/SelectionManager.ts
index 2d717ca57..86a7a620e 100644
--- a/src/client/util/SelectionManager.ts
+++ b/src/client/util/SelectionManager.ts
@@ -1,46 +1,50 @@
-import { observable, action, runInAction, IReactionDisposer, reaction, autorun } from "mobx";
-import { Doc, Opt } from "../../new_fields/Doc";
+import { observable, action, runInAction, ObservableMap } from "mobx";
+import { Doc } from "../../new_fields/Doc";
import { DocumentView } from "../views/nodes/DocumentView";
-import { FormattedTextBox } from "../views/nodes/FormattedTextBox";
-import { NumCast, StrCast } from "../../new_fields/Types";
-import { InkingControl } from "../views/InkingControl";
+import { computedFn } from "mobx-utils";
+import { List } from "../../new_fields/List";
+import { DocumentDecorations } from "../views/DocumentDecorations";
+import RichTextMenu from "./RichTextMenu";
export namespace SelectionManager {
class Manager {
@observable IsDragging: boolean = false;
- @observable SelectedDocuments: Array<DocumentView> = [];
+ SelectedDocuments: ObservableMap<DocumentView, boolean> = new ObservableMap();
@action
SelectDoc(docView: DocumentView, ctrlPressed: boolean): void {
// if doc is not in SelectedDocuments, add it
- if (manager.SelectedDocuments.indexOf(docView) === -1) {
+ if (!manager.SelectedDocuments.get(docView)) {
if (!ctrlPressed) {
this.DeselectAll();
}
- manager.SelectedDocuments.push(docView);
+ manager.SelectedDocuments.set(docView, true);
// console.log(manager.SelectedDocuments);
docView.props.whenActiveChanged(true);
- } else if (!ctrlPressed && manager.SelectedDocuments.length > 1) {
- manager.SelectedDocuments.map(dv => dv !== docView && dv.props.whenActiveChanged(false));
- manager.SelectedDocuments = [docView];
+ } else if (!ctrlPressed && Array.from(manager.SelectedDocuments.entries()).length > 1) {
+ Array.from(manager.SelectedDocuments.keys()).map(dv => dv !== docView && dv.props.whenActiveChanged(false));
+ manager.SelectedDocuments.clear();
+ manager.SelectedDocuments.set(docView, true);
}
+ Doc.UserDoc().SelectedDocs = new List(SelectionManager.SelectedDocuments().map(dv => dv.props.Document));
}
@action
DeselectDoc(docView: DocumentView): void {
- let ind = manager.SelectedDocuments.indexOf(docView);
- if (ind !== -1) {
- manager.SelectedDocuments.splice(ind, 1);
+ if (manager.SelectedDocuments.get(docView)) {
+ manager.SelectedDocuments.delete(docView);
docView.props.whenActiveChanged(false);
+ Doc.UserDoc().SelectedDocs = new List(SelectionManager.SelectedDocuments().map(dv => dv.props.Document));
}
}
@action
DeselectAll(): void {
- manager.SelectedDocuments.map(dv => dv.props.whenActiveChanged(false));
- manager.SelectedDocuments = [];
+ Array.from(manager.SelectedDocuments.keys()).map(dv => dv.props.whenActiveChanged(false));
+ manager.SelectedDocuments.clear();
+ Doc.UserDoc().SelectedDocs = new List<Doc>([]);
}
}
@@ -53,14 +57,18 @@ export namespace SelectionManager {
manager.SelectDoc(docView, ctrlPressed);
}
- export function IsSelected(doc: DocumentView): boolean {
- return manager.SelectedDocuments.indexOf(doc) !== -1;
+ export function IsSelected(doc: DocumentView, outsideReaction?: boolean): boolean {
+ return outsideReaction ?
+ manager.SelectedDocuments.get(doc) ? true : false :
+ computedFn(function isSelected(doc: DocumentView) {
+ return manager.SelectedDocuments.get(doc) ? true : false;
+ })(doc);
}
export function DeselectAll(except?: Doc): void {
let found: DocumentView | undefined = undefined;
if (except) {
- for (const view of manager.SelectedDocuments) {
+ for (const view of Array.from(manager.SelectedDocuments.keys())) {
if (view.props.Document === except) found = view;
}
}
@@ -73,6 +81,7 @@ export namespace SelectionManager {
export function GetIsDragging() { return manager.IsDragging; }
export function SelectedDocuments(): Array<DocumentView> {
- return manager.SelectedDocuments.slice();
+ return Array.from(manager.SelectedDocuments.keys());
}
}
+
diff --git a/src/client/util/SerializationHelper.ts b/src/client/util/SerializationHelper.ts
index ff048f647..1f6b939d3 100644
--- a/src/client/util/SerializationHelper.ts
+++ b/src/client/util/SerializationHelper.ts
@@ -1,7 +1,6 @@
-import { PropSchema, serialize, deserialize, custom, setDefaultModelSchema, getDefaultModelSchema, primitive, SKIP } from "serializr";
-import { Field, Doc } from "../../new_fields/Doc";
+import { PropSchema, serialize, deserialize, custom, setDefaultModelSchema, getDefaultModelSchema } from "serializr";
+import { Field } from "../../new_fields/Doc";
import { ClientUtils } from "./ClientUtils";
-import { emptyFunction } from "../../Utils";
let serializing = 0;
export function afterDocDeserialize(cb: (err: any, val: any) => void, err: any, newValue: any) {
@@ -65,8 +64,8 @@ export namespace SerializationHelper {
}
}
-let serializationTypes: { [name: string]: { ctor: { new(): any }, afterDeserialize?: (obj: any) => void | Promise<any> } } = {};
-let reverseMap: { [ctor: string]: string } = {};
+const serializationTypes: { [name: string]: { ctor: { new(): any }, afterDeserialize?: (obj: any) => void | Promise<any> } } = {};
+const reverseMap: { [ctor: string]: string } = {};
export interface DeserializableOpts {
(constructor: { new(...args: any[]): any }): void;
diff --git a/src/client/util/SettingsManager.scss b/src/client/util/SettingsManager.scss
new file mode 100644
index 000000000..7a0fb0741
--- /dev/null
+++ b/src/client/util/SettingsManager.scss
@@ -0,0 +1,136 @@
+@import "../views/globalCssVariables";
+
+.dialogue-box {
+ background-color: whitesmoke !important;
+ color: grey;
+ width: 450px;
+ height: 300px;
+
+ button {
+ background: $lighter-alt-accent;
+ outline: none;
+ border-radius: 5px;
+ border: 0px;
+ color: #fcfbf7;
+ text-transform: uppercase;
+ letter-spacing: 2px;
+ font-size: 75%;
+ padding: 10px;
+ margin: 10px;
+ transition: transform 0.2s;
+ margin: 2px;
+ }
+}
+
+.settings-interface {
+ display: flex;
+ flex-direction: column;
+
+ button {
+ width: 100%;
+ align-self: center;
+ background: $darker-alt-accent;
+ margin-top: 4px;
+ }
+
+ .delete-button {
+ background: rgb(227, 86, 86);
+ }
+
+ .close-button {
+ position: absolute;
+ right: 1em;
+ top: 1em;
+ }
+
+ .settings-heading {
+ letter-spacing: .5em;
+ }
+
+
+ .settings-body {
+ display: flex;
+ justify-content: space-between;
+
+ .settings-type {
+ display: flex;
+ flex-direction: column;
+ flex-basis: 30%;
+
+ }
+
+ .settings-content {
+ padding-left: 1em;
+ padding-right: 1em;
+ display: flex;
+ flex-direction: column;
+ flex-basis: 70%;
+ justify-content: space-around;
+ text-align: left;
+
+ ::placeholder {
+ color: $intermediate-color;
+ }
+
+ input {
+ border-radius: 5px;
+ border: none;
+ padding: 4px;
+ min-width: 100%;
+ margin: 2px 0;
+ }
+
+ .error-text {
+ color: #C40233;
+ }
+
+ .success-text {
+ color: #009F6B;
+ }
+
+ p {
+ padding: 0 0 .1em .2em;
+ }
+
+ }
+ }
+
+ .focus-span {
+ text-decoration: underline;
+ }
+
+ h1 {
+ color: $dark-color;
+ text-transform: uppercase;
+ letter-spacing: 2px;
+ font-size: 120%;
+ }
+
+ .container {
+ display: block;
+ position: relative;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ font-size: 22px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ width: 700px;
+ min-width: 700px;
+ max-width: 700px;
+ text-align: left;
+ font-style: normal;
+ font-size: 15;
+ font-weight: normal;
+ padding: 0;
+
+ .padding {
+ padding: 0 0 0 20px;
+ color: black;
+ }
+
+
+
+ }
+} \ No newline at end of file
diff --git a/src/client/util/SettingsManager.tsx b/src/client/util/SettingsManager.tsx
new file mode 100644
index 000000000..ff0b22381
--- /dev/null
+++ b/src/client/util/SettingsManager.tsx
@@ -0,0 +1,131 @@
+import { observable, runInAction, action } from "mobx";
+import * as React from "react";
+import MainViewModal from "../views/MainViewModal";
+import { observer } from "mobx-react";
+import { library } from '@fortawesome/fontawesome-svg-core';
+import * as fa from '@fortawesome/free-solid-svg-icons';
+import { SelectionManager } from "./SelectionManager";
+import "./SettingsManager.scss";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { Networking } from "../Network";
+
+library.add(fa.faWindowClose);
+
+@observer
+export default class SettingsManager extends React.Component<{}> {
+ public static Instance: SettingsManager;
+ @observable private isOpen = false;
+ @observable private dialogueBoxOpacity = 1;
+ @observable private overlayOpacity = 0.4;
+ @observable private settingsContent = "password";
+ @observable private errorText = "";
+ @observable private successText = "";
+ private curr_password_ref = React.createRef<HTMLInputElement>();
+ private new_password_ref = React.createRef<HTMLInputElement>();
+ private new_confirm_ref = React.createRef<HTMLInputElement>();
+
+ public open = action(() => {
+ SelectionManager.DeselectAll();
+ this.isOpen = true;
+ });
+
+ public close = action(() => {
+ this.isOpen = false;
+ });
+
+ constructor(props: {}) {
+ super(props);
+ SettingsManager.Instance = this;
+ }
+
+ @action
+ private dispatchRequest = async () => {
+ const curr_pass = this.curr_password_ref.current?.value;
+ const new_pass = this.new_password_ref.current?.value;
+ const new_confirm = this.new_confirm_ref.current?.value;
+
+ if (!(curr_pass && new_pass && new_confirm)) {
+ this.changeAlertText("Hey, we're missing some fields!", "");
+ return;
+ }
+
+ const passwordBundle = {
+ curr_pass,
+ new_pass,
+ new_confirm
+ };
+
+ const { error } = await Networking.PostToServer('/internalResetPassword', passwordBundle);
+ if (error) {
+ this.changeAlertText("Uh oh! " + error[0].msg + "...", "");
+ return;
+ }
+
+ this.changeAlertText("", "Password successfully updated!");
+ }
+
+ @action
+ private changeAlertText = (errortxt: string, successtxt: string) => {
+ this.errorText = errortxt;
+ this.successText = successtxt;
+ }
+
+ @action
+ onClick = (event: any) => {
+ this.settingsContent = event.currentTarget.value;
+ this.errorText = "";
+ this.successText = "";
+ }
+
+ private get settingsInterface() {
+ return (
+ <div className={"settings-interface"}>
+ <div className="settings-heading">
+ <h1>settings</h1>
+ <div className={"close-button"} onClick={this.close}>
+ <FontAwesomeIcon icon={fa.faWindowClose} size={"lg"} />
+ </div>
+ </div>
+ <div className="settings-body">
+ <div className="settings-type">
+ <button onClick={this.onClick} value="password">reset password</button>
+ <button onClick={this.onClick} value="data">reset data</button>
+ </div>
+ {this.settingsContent === "password" ?
+ <div className="settings-content">
+ <input placeholder="current password" ref={this.curr_password_ref} />
+ <input placeholder="new password" ref={this.new_password_ref} />
+ <input placeholder="confirm new password" ref={this.new_confirm_ref} />
+ {this.errorText ? <div className="error-text">{this.errorText}</div> : undefined}
+ {this.successText ? <div className="success-text">{this.successText}</div> : undefined}
+ <button onClick={this.dispatchRequest}>submit</button>
+ <a href="/forgotPassword">forgot password?</a>
+
+ </div>
+ : undefined}
+ {this.settingsContent === "data" ?
+ <div className="settings-content">
+ <p>WARNING: <br />
+ THIS WILL ERASE ALL YOUR CURRENT DOCUMENTS STORED ON DASH. IF YOU WISH TO PROCEED, CLICK THE BUTTON BELOW.</p>
+ <button className="delete-button">DELETE</button>
+ </div>
+ : undefined}
+ </div>
+
+ </div>
+ );
+ }
+
+ render() {
+ return (
+ <MainViewModal
+ contents={this.settingsInterface}
+ isDisplayed={this.isOpen}
+ interactive={true}
+ dialogueBoxDisplayedOpacity={this.dialogueBoxOpacity}
+ overlayDisplayedOpacity={this.overlayOpacity}
+ />
+ );
+ }
+
+} \ No newline at end of file
diff --git a/src/client/util/SharingManager.tsx b/src/client/util/SharingManager.tsx
index 2082d6324..7496ac73c 100644
--- a/src/client/util/SharingManager.tsx
+++ b/src/client/util/SharingManager.tsx
@@ -4,13 +4,11 @@ import MainViewModal from "../views/MainViewModal";
import { Doc, Opt, DocCastAsync } from "../../new_fields/Doc";
import { DocServer } from "../DocServer";
import { Cast, StrCast } from "../../new_fields/Types";
-import { RouteStore } from "../../server/RouteStore";
import * as RequestPromise from "request-promise";
import { Utils } from "../../Utils";
import "./SharingManager.scss";
import { Id } from "../../new_fields/FieldSymbols";
import { observer } from "mobx-react";
-import { MainView } from "../views/MainView";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { library } from '@fortawesome/fontawesome-svg-core';
import * as fa from '@fortawesome/free-solid-svg-icons';
@@ -104,10 +102,10 @@ export default class SharingManager extends React.Component<{}> {
}
populateUsers = async () => {
- let userList = await RequestPromise.get(Utils.prepend(RouteStore.getUsers));
+ const userList = await RequestPromise.get(Utils.prepend("/getUsers"));
const raw = JSON.parse(userList) as User[];
const evaluating = raw.map(async user => {
- let isCandidate = user.email !== Doc.CurrentUserEmail;
+ const isCandidate = user.email !== Doc.CurrentUserEmail;
if (isCandidate) {
const userDocument = await DocServer.GetRefField(user.userDocumentId);
if (userDocument instanceof Doc) {
@@ -131,7 +129,7 @@ export default class SharingManager extends React.Component<{}> {
if (state === SharingPermissions.None) {
const metadata = (await DocCastAsync(manager[key]));
if (metadata) {
- let sharedAlias = (await DocCastAsync(metadata.sharedAlias))!;
+ const sharedAlias = (await DocCastAsync(metadata.sharedAlias))!;
Doc.RemoveDocFromList(notificationDoc, storage, sharedAlias);
manager[key] = undefined;
}
@@ -146,7 +144,7 @@ export default class SharingManager extends React.Component<{}> {
}
private setExternalSharing = (state: string) => {
- let sharingDoc = this.sharingDoc;
+ const sharingDoc = this.sharingDoc;
if (!sharingDoc) {
return;
}
@@ -157,7 +155,7 @@ export default class SharingManager extends React.Component<{}> {
if (!this.targetDoc) {
return undefined;
}
- let baseUrl = Utils.prepend("/doc/" + this.targetDoc[Id]);
+ const baseUrl = Utils.prepend("/doc/" + this.targetDoc[Id]);
return `${baseUrl}?sharing=true`;
}
@@ -179,7 +177,7 @@ export default class SharingManager extends React.Component<{}> {
}
private focusOn = (contents: string) => {
- let title = this.targetDoc ? StrCast(this.targetDoc.title) : "";
+ const title = this.targetDoc ? StrCast(this.targetDoc.title) : "";
return (
<span
className={"focus-span"}
diff --git a/src/client/util/TooltipLinkingMenu.tsx b/src/client/util/TooltipLinkingMenu.tsx
deleted file mode 100644
index e6d6c471f..000000000
--- a/src/client/util/TooltipLinkingMenu.tsx
+++ /dev/null
@@ -1,72 +0,0 @@
-import { EditorState } from "prosemirror-state";
-import { EditorView } from "prosemirror-view";
-import { FieldViewProps } from "../views/nodes/FieldView";
-import "./TooltipTextMenu.scss";
-import React = require("react");
-const { toggleMark, setBlockType, wrapIn } = require("prosemirror-commands");
-
-const SVG = "http://www.w3.org/2000/svg";
-
-//appears above a selection of text in a RichTextBox to give user options such as Bold, Italics, etc.
-export class TooltipLinkingMenu {
-
- private tooltip: HTMLElement;
- private view: EditorView;
- private editorProps: FieldViewProps;
-
- constructor(view: EditorView, editorProps: FieldViewProps) {
- this.view = view;
- this.editorProps = editorProps;
- this.tooltip = document.createElement("div");
- this.tooltip.className = "tooltipMenu linking";
-
- //add the div which is the tooltip
- view.dom.parentNode!.parentNode!.appendChild(this.tooltip);
-
- let target = "https://www.google.com";
-
- let link = document.createElement("a");
- link.href = target;
- link.textContent = target;
- link.target = "_blank";
- link.style.color = "white";
- this.tooltip.appendChild(link);
-
- this.update(view, undefined);
- }
-
- //updates the tooltip menu when the selection changes
- update(view: EditorView, lastState: EditorState | undefined) {
- let state = view.state;
- // Don't do anything if the document/selection didn't change
- if (lastState && lastState.doc.eq(state.doc) &&
- lastState.selection.eq(state.selection)) return;
-
- // Hide the tooltip if the selection is empty
- if (state.selection.empty) {
- this.tooltip.style.display = "none";
- return;
- }
-
- console.log("STORED:");
- console.log(state.doc.content.firstChild!.content);
-
- // Otherwise, reposition it and update its content
- this.tooltip.style.display = "";
- let { from, to } = state.selection;
- let start = view.coordsAtPos(from), end = view.coordsAtPos(to);
- // The box in which the tooltip is positioned, to use as base
- let box = this.tooltip.offsetParent!.getBoundingClientRect();
- // Find a center-ish x position from the selection endpoints (when
- // crossing lines, end may be more to the left)
- let left = Math.max((start.left + end.left) / 2, start.left + 3);
- this.tooltip.style.left = (left - box.left) * this.editorProps.ScreenToLocalTransform().Scale + "px";
- let width = Math.abs(start.left - end.left) / 2 * this.editorProps.ScreenToLocalTransform().Scale;
- let mid = Math.min(start.left, end.left) + width;
-
- this.tooltip.style.width = "auto";
- this.tooltip.style.bottom = (box.bottom - start.top) * this.editorProps.ScreenToLocalTransform().Scale + "px";
- }
-
- destroy() { this.tooltip.remove(); }
-}
diff --git a/src/client/util/TooltipTextMenu.tsx b/src/client/util/TooltipTextMenu.tsx
deleted file mode 100644
index 5136089b3..000000000
--- a/src/client/util/TooltipTextMenu.tsx
+++ /dev/null
@@ -1,1519 +0,0 @@
-import { action } from "mobx";
-import { Dropdown, icons, MenuItem } from "prosemirror-menu"; //no import css
-import { Mark, MarkType, Node as ProsNode, NodeType, ResolvedPos, Schema } from "prosemirror-model";
-import { wrapInList } from 'prosemirror-schema-list';
-import { EditorState, NodeSelection, TextSelection, Transaction } from "prosemirror-state";
-import { EditorView } from "prosemirror-view";
-import { Doc, Field, Opt } from "../../new_fields/Doc";
-import { Id } from "../../new_fields/FieldSymbols";
-import { Utils } from "../../Utils";
-import { DocServer } from "../DocServer";
-import { FieldViewProps } from "../views/nodes/FieldView";
-import { FormattedTextBoxProps } from "../views/nodes/FormattedTextBox";
-import { DocumentManager } from "./DocumentManager";
-import { DragManager } from "./DragManager";
-import { LinkManager } from "./LinkManager";
-import { schema } from "./RichTextSchema";
-import "./TooltipTextMenu.scss";
-import { Cast, NumCast, StrCast } from '../../new_fields/Types';
-import { updateBullets } from './ProsemirrorExampleTransfer';
-import { DocumentDecorations } from '../views/DocumentDecorations';
-import { SelectionManager } from './SelectionManager';
-import { PastelSchemaPalette, DarkPastelSchemaPalette } from '../../new_fields/SchemaHeaderField';
-const { toggleMark, setBlockType } = require("prosemirror-commands");
-const { openPrompt, TextField } = require("./ProsemirrorCopy/prompt.js");
-
-//appears above a selection of text in a RichTextBox to give user options such as Bold, Italics, etc.
-export class TooltipTextMenu {
-
- public static Toolbar: HTMLDivElement | undefined;
-
- // editor state properties
- private view: EditorView;
- private editorProps: FieldViewProps & FormattedTextBoxProps | undefined;
-
- private fontStyles: Mark[] = [];
- private fontSizes: Mark[] = [];
- private listTypes: (NodeType | any)[] = [];
- private listTypeToIcon: Map<NodeType | any, string> = new Map();
- private _activeMarks: Mark[] = [];
- private _marksToDoms: Map<Mark, HTMLSpanElement> = new Map();
- private _collapsed: boolean = false;
-
- // editor doms
- public tooltip: HTMLElement = document.createElement("div");
- private wrapper: HTMLDivElement = document.createElement("div");
-
- // editor button doms
- private colorDom?: Node;
- private colorDropdownDom?: Node;
- private highlightDom?: Node;
- private highlightDropdownDom?: Node;
- private linkEditor?: HTMLDivElement;
- private linkText?: HTMLDivElement;
- private linkDrag?: HTMLImageElement;
- private _linkDropdownDom?: Node;
- private _brushdom?: Node;
- private _brushDropdownDom?: Node;
- private fontSizeDom?: Node;
- private fontStyleDom?: Node;
- private listTypeBtnDom?: Node;
- private basicTools?: HTMLElement;
-
-
- constructor(view: EditorView) {
- this.view = view;
-
- // initialize the tooltip -- sets this.tooltip
- this.initTooltip(view);
-
- // initialize the wrapper
- this.wrapper = document.createElement("div");
- this.wrapper.className = "wrapper";
- this.wrapper.appendChild(this.tooltip);
-
- // initialize the dragger -- appends it to the wrapper
- this.createDragger();
-
- TooltipTextMenu.Toolbar = this.wrapper;
- }
-
- private async initTooltip(view: EditorView) {
- // initialize tooltip dom
- this.tooltip = document.createElement("div");
- this.tooltip.className = "tooltipMenu";
- this.basicTools = document.createElement("div");
- this.basicTools.className = "basic-tools";
-
- // init buttons to the tooltip -- paths to svgs are obtained from fontawesome
- let items = [
- { command: toggleMark(schema.marks.strong), dom: this.svgIcon("strong", "Bold", "M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z") },
- { command: toggleMark(schema.marks.em), dom: this.svgIcon("em", "Italic", "M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z") },
- { command: toggleMark(schema.marks.underline), dom: this.svgIcon("underline", "Underline", "M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z") },
- { command: toggleMark(schema.marks.strikethrough), dom: this.svgIcon("strikethrough", "Strikethrough", "M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z") },
- { command: toggleMark(schema.marks.superscript), dom: this.svgIcon("superscript", "Superscript", "M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z") },
- { command: toggleMark(schema.marks.subscript), dom: this.svgIcon("subscript", "Subscript", "M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z") },
- // { command: toggleMark(schema.marks.highlight), dom: this.icon("H", 'blue', 'Blue') }
- ];
-
- // add menu items
- this._marksToDoms = new Map();
- items.forEach(({ dom, command }) => {
- this.tooltip.appendChild(dom);
- switch (dom.title) {
- case "Bold":
- this._marksToDoms.set(schema.mark(schema.marks.strong), dom);
- this.basicTools && this.basicTools.appendChild(dom.cloneNode(true));
- break;
- case "Italic":
- this._marksToDoms.set(schema.mark(schema.marks.em), dom);
- this.basicTools && this.basicTools.appendChild(dom.cloneNode(true));
- break;
- case "Underline":
- this._marksToDoms.set(schema.mark(schema.marks.underline), dom);
- this.basicTools && this.basicTools.appendChild(dom.cloneNode(true));
- break;
- }
-
- //pointer down handler to activate button effects
- dom.addEventListener("pointerdown", e => {
- e.preventDefault();
- this.view.focus();
- if (dom.contains(e.target as Node)) {
- e.stopPropagation();
- command(this.view.state, this.view.dispatch, this.view);
- // if (this.view.state.selection.empty) {
- // if (dom.style.color === "white") { dom.style.color = "greenyellow"; }
- // else { dom.style.color = "white"; }
- // }
- }
- });
-
- });
-
- // highlight menu
- this.highlightDom = this.createHighlightTool().render(this.view).dom;
- this.highlightDropdownDom = this.createHighlightDropdown().render(this.view).dom;
- this.tooltip.appendChild(this.highlightDom);
- this.tooltip.appendChild(this.highlightDropdownDom);
-
- // color menu
- this.colorDom = this.createColorTool().render(this.view).dom;
- this.colorDropdownDom = this.createColorDropdown().render(this.view).dom;
- this.tooltip.appendChild(this.colorDom);
- this.tooltip.appendChild(this.colorDropdownDom);
-
- // link menu
- this.updateLinkMenu();
- let dropdown = await this.createLinkDropdown();
- this._linkDropdownDom = dropdown.render(this.view).dom;
- this.tooltip.appendChild(this._linkDropdownDom);
-
- // list of font styles
- this.initFontStyles();
-
- // font sizes
- this.initFontSizes();
-
- // list types
- this.initListTypes();
-
- // init brush tool
- this._brushdom = this.createBrush().render(this.view).dom;
- this.tooltip.appendChild(this._brushdom);
- this._brushDropdownDom = this.createBrushDropdown().render(this.view).dom;
- this.tooltip.appendChild(this._brushDropdownDom);
-
- // star
- this.tooltip.appendChild(this.createStar().render(this.view).dom);
-
- // list types dropdown
- this.updateListItemDropdown(":", this.listTypeBtnDom);
-
- await this.updateFromDash(view, undefined, undefined);
- }
-
- initFontStyles() {
- this.fontStyles.push(schema.marks.pFontFamily.create({ family: "Times New Roman" }));
- this.fontStyles.push(schema.marks.pFontFamily.create({ family: "Arial" }));
- this.fontStyles.push(schema.marks.pFontFamily.create({ family: "Georgia" }));
- this.fontStyles.push(schema.marks.pFontFamily.create({ family: "Comic Sans MS" }));
- this.fontStyles.push(schema.marks.pFontFamily.create({ family: "Tahoma" }));
- this.fontStyles.push(schema.marks.pFontFamily.create({ family: "Impact" }));
- this.fontStyles.push(schema.marks.pFontFamily.create({ family: "Crimson Text" }));
- }
-
- initFontSizes() {
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 10 }));
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 12 }));
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 14 }));
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 16 }));
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 18 }));
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 20 }));
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 24 }));
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 32 }));
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 48 }));
- this.fontSizes.push(schema.marks.pFontSize.create({ fontSize: 72 }));
- }
-
- initListTypes() {
- this.listTypeToIcon = new Map();
- //this.listTypeToIcon.set(schema.nodes.bullet_list, ":");
- this.listTypeToIcon.set(schema.nodes.ordered_list.create({ mapStyle: "bullet" }), ":");
- this.listTypeToIcon.set(schema.nodes.ordered_list.create({ mapStyle: "decimal" }), "1.1)");
- this.listTypeToIcon.set(schema.nodes.ordered_list.create({ mapStyle: "multi" }), "1.A)");
- // this.listTypeToIcon.set(schema.nodes.bullet_list, "⬜");
- this.listTypes = Array.from(this.listTypeToIcon.keys());
- }
-
- // creates dragger element that allows dragging and collapsing (on double click)
- // of editor and appends it to the wrapper
- createDragger() {
- let draggerWrapper = document.createElement("div");
- draggerWrapper.className = "dragger-wrapper";
-
- let dragger = document.createElement("div");
- dragger.className = "dragger";
-
- let line1 = document.createElement("span");
- line1.className = "dragger-line";
- let line2 = document.createElement("span");
- line2.className = "dragger-line";
- let line3 = document.createElement("span");
- line3.className = "dragger-line";
-
- dragger.appendChild(line1);
- dragger.appendChild(line2);
- dragger.appendChild(line3);
-
- draggerWrapper.appendChild(dragger);
-
- this.wrapper.appendChild(draggerWrapper);
- this.dragElement(draggerWrapper);
- }
-
- dragElement(elmnt: HTMLElement) {
- var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
- if (elmnt) {
- // if present, the header is where you move the DIV from:
- elmnt.onpointerdown = dragMouseDown;
- elmnt.ondblclick = onClick;
- }
- const self = this;
-
- function dragMouseDown(e: PointerEvent) {
- e = e || window.event;
- //e.preventDefault();
- // get the mouse cursor position at startup:
- pos3 = e.clientX;
- pos4 = e.clientY;
- document.onpointerup = closeDragElement;
- // call a function whenever the cursor moves:
- document.onpointermove = elementDrag;
- }
-
- function onClick(e: MouseEvent) {
- self._collapsed = !self._collapsed;
- const children = self.wrapper.childNodes;
- if (self._collapsed && children.length > 0) {
- self.wrapper.removeChild(self.tooltip);
- self.basicTools && self.wrapper.prepend(self.basicTools);
- }
- else {
- self.wrapper.prepend(self.tooltip);
- self.basicTools && self.wrapper.removeChild(self.basicTools);
- }
- }
-
- function elementDrag(e: PointerEvent) {
- e = e || window.event;
- //e.preventDefault();
- // calculate the new cursor position:
- pos1 = pos3 - e.clientX;
- pos2 = pos4 - e.clientY;
- pos3 = e.clientX;
- pos4 = e.clientY;
- // set the element's new position:
- // elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
- // elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
-
- self.wrapper.style.top = (self.wrapper.offsetTop - pos2) + "px";
- self.wrapper.style.left = (self.wrapper.offsetLeft - pos1) + "px";
- }
-
- function closeDragElement() {
- // stop moving when mouse button is released:
- document.onpointerup = null;
- document.onpointermove = null;
- //self.highlightSearchTerms(self.state, ["hello"]);
- //FormattedTextBox.Instance.unhighlightSearchTerms();
- }
- }
-
- //label of dropdown will change to given label
- updateFontSizeDropdown(label: string) {
- //font SIZES
- let fontSizeBtns: MenuItem[] = [];
- this.fontSizes.forEach(mark => {
- fontSizeBtns.push(this.dropdownFontSizeBtn(String(mark.attrs.fontSize), "color: black; width: 50px;", mark, this.view, this.changeToFontSize));
- });
-
- let newfontSizeDom = (new Dropdown(fontSizeBtns, {
- label: label,
- css: "color:black; min-width: 60px;"
- }) as MenuItem).render(this.view).dom;
- if (this.fontSizeDom) { this.tooltip.replaceChild(newfontSizeDom, this.fontSizeDom); }
- else {
- this.tooltip.appendChild(newfontSizeDom);
- }
- this.fontSizeDom = newfontSizeDom;
- }
-
- //label of dropdown will change to given label
- updateFontStyleDropdown(label: string) {
- //font STYLES
- let fontBtns: MenuItem[] = [];
- this.fontStyles.forEach((mark) => {
- fontBtns.push(this.dropdownFontFamilyBtn(mark.attrs.family, "color: black; font-family: " + mark.attrs.family + ", sans-serif; width: 125px;", mark, this.view, this.changeToFontFamily));
- });
-
- let newfontStyleDom = (new Dropdown(fontBtns, {
- label: label,
- css: "color:black; width: 125px;"
- }) as MenuItem).render(this.view).dom;
- if (this.fontStyleDom) { this.tooltip.replaceChild(newfontStyleDom, this.fontStyleDom); }
- else {
- this.tooltip.appendChild(newfontStyleDom);
- }
- this.fontStyleDom = newfontStyleDom;
- }
-
- updateLinkMenu() {
- if (!this.linkEditor || !this.linkText) {
- this.linkEditor = document.createElement("div");
- this.linkEditor.className = "ProseMirror-icon menuicon";
- this.linkText = document.createElement("div");
- this.linkText.setAttribute("contenteditable", "true");
- this.linkText.style.whiteSpace = "nowrap";
- this.linkText.style.width = "150px";
- this.linkText.style.overflow = "hidden";
- this.linkText.style.color = "white";
- this.linkText.onpointerdown = (e: PointerEvent) => { e.stopPropagation(); };
- let linkBtn = document.createElement("div");
- linkBtn.textContent = ">>";
- linkBtn.style.width = "10px";
- linkBtn.style.height = "10px";
- linkBtn.style.color = "white";
- linkBtn.style.cssFloat = "left";
- linkBtn.onpointerdown = (e: PointerEvent) => {
- let node = this.view.state.selection.$from.nodeAfter;
- let link = node && node.marks.find(m => m.type.name === "link");
- if (link) {
- let href: string = link.attrs.href;
- if (href.indexOf(Utils.prepend("/doc/")) === 0) {
- let docid = href.replace(Utils.prepend("/doc/"), "");
- DocServer.GetRefField(docid).then(action((f: Opt<Field>) => {
- if (f instanceof Doc) {
- if (DocumentManager.Instance.getDocumentView(f)) {
- DocumentManager.Instance.getDocumentView(f)!.props.focus(f, false);
- }
- else this.editorProps && this.editorProps.addDocTab(f, undefined, "onRight");
- }
- }));
- }
- // TODO This should have an else to handle external links
- e.stopPropagation();
- e.preventDefault();
- }
- };
- this.linkDrag = document.createElement("img");
- this.linkDrag.src = "https://seogurusnyc.com/wp-content/uploads/2016/12/link-1.png";
- this.linkDrag.style.width = "15px";
- this.linkDrag.style.height = "15px";
- this.linkDrag.title = "Drag to create link";
- this.linkDrag.id = "link-drag";
- this.linkDrag.onpointerdown = (e: PointerEvent) => {
- if (!this.editorProps) return;
- let dragData = new DragManager.LinkDragData(this.editorProps.Document);
- dragData.dontClearTextBox = true;
- // hack to get source context -sy
- let docView = DocumentManager.Instance.getDocumentView(this.editorProps.Document);
- e.stopPropagation();
- let ctrlKey = e.ctrlKey;
- DragManager.StartLinkDrag(this.linkDrag!, dragData, e.clientX, e.clientY,
- {
- handlers: {
- dragComplete: action(() => {
- if (dragData.linkDocument) {
- let linkDoc = dragData.linkDocument;
- let proto = Doc.GetProto(linkDoc);
- if (proto && docView) {
- proto.sourceContext = docView.props.ContainingCollectionDoc;
- }
- let text = this.makeLink(linkDoc, StrCast(linkDoc.anchor2.title), ctrlKey ? "onRight" : "inTab");
- if (linkDoc instanceof Doc && linkDoc.anchor2 instanceof Doc) {
- proto.title = text === "" ? proto.title : text + " to " + linkDoc.anchor2.title; // TODODO open to more descriptive descriptions of following in text link
- }
- }
- }),
- },
- hideSource: false
- });
- e.stopPropagation();
- e.preventDefault();
- };
- this.linkEditor.appendChild(this.linkDrag);
- this.tooltip.appendChild(this.linkEditor);
- }
-
- let node = this.view.state.selection.$from.nodeAfter;
- let link = node && node.marks.find(m => m.type.name === "link");
- this.linkText.textContent = link ? link.attrs.href : "-empty-";
-
- this.linkText.onkeydown = (e: KeyboardEvent) => {
- if (e.key === "Enter") {
- // this.makeLink(this.linkText!.textContent!);
- e.stopPropagation();
- e.preventDefault();
- }
- };
- }
-
- async getTextLinkTargetTitle() {
- let node = this.view.state.selection.$from.nodeAfter;
- let link = node && node.marks.find(m => m.type.name === "link");
- if (link) {
- let href = link.attrs.href;
- if (href) {
- if (href.indexOf(Utils.prepend("/doc/")) === 0) {
- const linkclicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0];
- if (linkclicked) {
- let linkDoc = await DocServer.GetRefField(linkclicked);
- if (linkDoc instanceof Doc) {
- let anchor1 = await Cast(linkDoc.anchor1, Doc);
- let anchor2 = await Cast(linkDoc.anchor2, Doc);
- let currentDoc = SelectionManager.SelectedDocuments().length && SelectionManager.SelectedDocuments()[0].props.Document;
- if (currentDoc && anchor1 && anchor2) {
- if (Doc.AreProtosEqual(currentDoc, anchor1)) {
- return StrCast(anchor2.title);
- }
- if (Doc.AreProtosEqual(currentDoc, anchor2)) {
- return StrCast(anchor1.title);
- }
- }
- }
- }
- } else {
- return href;
- }
- } else {
- return link.attrs.title;
- }
- }
- }
-
- async createLinkDropdown() {
- let targetTitle = await this.getTextLinkTargetTitle();
- let input = document.createElement("input");
-
- // menu item for input for hyperlink url
- // TODO: integrate search to allow users to search for a doc to link to
- let linkInfo = new MenuItem({
- title: "",
- execEvent: "",
- class: "button-setting-disabled",
- css: "",
- render() {
- let p = document.createElement("p");
- p.textContent = "Linked to:";
-
- input.type = "text";
- input.placeholder = "Enter URL";
- if (targetTitle) input.value = targetTitle;
- input.onclick = (e: MouseEvent) => {
- input.select();
- input.focus();
- };
-
- let div = document.createElement("div");
- div.appendChild(p);
- div.appendChild(input);
- return div;
- },
- enable() { return false; },
- run(p1, p2, p3, event) {
- event.stopPropagation();
- }
- });
-
- // menu item to update/apply the hyperlink to the selected text
- let linkApply = new MenuItem({
- title: "",
- execEvent: "",
- class: "",
- css: "",
- render() {
- let button = document.createElement("button");
- button.className = "link-url-button";
- button.textContent = "Apply hyperlink";
- return button;
- },
- enable() { return false; },
- run: (state, dispatch, view, event) => {
- event.stopPropagation();
- this.makeLinkToURL(input.value, "onRight");
- }
- });
-
- // menu item to remove the link
- // TODO: allow this to be undoable
- let self = this;
- let deleteLink = new MenuItem({
- title: "Delete link",
- execEvent: "",
- class: "separated-button",
- css: "",
- render() {
- let button = document.createElement("button");
- button.textContent = "Remove link";
-
- let wrapper = document.createElement("div");
- wrapper.appendChild(button);
- return wrapper;
- },
- enable() { return true; },
- async run() {
- self.deleteLink();
- // update link dropdown
- let dropdown = await self.createLinkDropdown();
- let newLinkDropdowndom = dropdown.render(self.view).dom;
- self._linkDropdownDom && self.tooltip.replaceChild(newLinkDropdowndom, self._linkDropdownDom);
- self._linkDropdownDom = newLinkDropdowndom;
- }
- });
-
-
- let linkDropdown = new Dropdown(targetTitle ? [linkInfo, linkApply, deleteLink] : [linkInfo, linkApply], { class: "buttonSettings-dropdown" }) as MenuItem;
- return linkDropdown;
- }
-
- // makeLinkWithState = (state: EditorState, target: string, location: string) => {
- // let link = state.schema.mark(state.schema.marks.link, { href: target, location: location });
- // }
-
- makeLink = (targetDoc: Doc, title: string, location: string): string => {
- let link = this.view.state.schema.marks.link.create({ href: Utils.prepend("/doc/" + targetDoc[Id]), title: title, location: location });
- this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link).
- addMark(this.view.state.selection.from, this.view.state.selection.to, link));
- let node = this.view.state.selection.$from.nodeAfter;
- if (node && node.text) {
- return node.text;
- }
- return "";
- }
-
- makeLinkToURL = (target: String, lcoation: string) => {
- let node = this.view.state.selection.$from.nodeAfter;
- let link = this.view.state.schema.mark(this.view.state.schema.marks.link, { href: target, location: location });
- this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link));
- this.view.dispatch(this.view.state.tr.addMark(this.view.state.selection.from, this.view.state.selection.to, link));
- node = this.view.state.selection.$from.nodeAfter;
- link = node && node.marks.find(m => m.type.name === "link");
- }
-
- deleteLink = () => {
- let node = this.view.state.selection.$from.nodeAfter;
- let link = node && node.marks.find(m => m.type === this.view.state.schema.marks.link);
- let href = link!.attrs.href;
- if (href) {
- if (href.indexOf(Utils.prepend("/doc/")) === 0) {
- const linkclicked = href.replace(Utils.prepend("/doc/"), "").split("?")[0];
- if (linkclicked) {
- DocServer.GetRefField(linkclicked).then(async linkDoc => {
- if (linkDoc instanceof Doc) {
- LinkManager.Instance.deleteLink(linkDoc);
- this.view.dispatch(this.view.state.tr.removeMark(this.view.state.selection.from, this.view.state.selection.to, this.view.state.schema.marks.link));
- }
- });
- }
- }
- }
- }
-
- deleteLinkItem() {
- const icon = {
- height: 16, width: 16,
- path: "M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z"
- };
- return new MenuItem({
- title: "Delete Link",
- label: "X",
- icon: icon,
- css: "color: red",
- class: "summarize",
- execEvent: "",
- run: (state, dispatch) => {
- this.deleteLink();
- }
- });
- }
-
- createLink() {
- let markType = schema.marks.link;
- return new MenuItem({
- title: "Add or remove link",
- label: "Add or remove link",
- execEvent: "",
- icon: icons.link,
- css: "color:white;",
- class: "menuicon",
- enable(state) { return !state.selection.empty; },
- run: (state, dispatch, view) => {
- // to remove link
- let curLink = "";
- if (this.markActive(state, markType)) {
-
- let { from, $from, to, empty } = state.selection;
- let node = state.doc.nodeAt(from);
- node && node.marks.map(m => {
- m.type === markType && (curLink = m.attrs.href);
- });
- //toggleMark(markType)(state, dispatch);
- //return true;
- }
- // to create link
- openPrompt({
- title: "Create a link",
- fields: {
- href: new TextField({
- value: curLink,
- label: "Link Target",
- required: true
- }),
- title: new TextField({ label: "Title" })
- },
- callback(attrs: any) {
- toggleMark(markType, attrs)(view.state, view.dispatch);
- view.focus();
- },
- flyout_top: 0,
- flyout_left: 0
- });
- }
- });
- }
-
- //will display a remove-list-type button if selection is in list, otherwise will show list type dropdown
- updateListItemDropdown(label: string, listTypeBtn: any) {
- //remove old btn
- if (listTypeBtn) { this.tooltip.removeChild(listTypeBtn); }
-
- //Make a dropdown of all list types
- let toAdd: MenuItem[] = [];
- this.listTypeToIcon.forEach((icon, type) => {
- toAdd.push(this.dropdownNodeBtn(icon, "color: black; width: 40px;", type, this.view, this.listTypes, this.changeToNodeType));
- });
- //option to remove the list formatting
- toAdd.push(this.dropdownNodeBtn("X", "color: black; width: 40px;", undefined, this.view, this.listTypes, this.changeToNodeType));
-
- listTypeBtn = (new Dropdown(toAdd, {
- label: label,
- css: "color:black; width: 40px;"
- }) as MenuItem).render(this.view).dom;
-
- //add this new button and return it
- this.tooltip.appendChild(listTypeBtn);
- return listTypeBtn;
- }
-
- createStar() {
- return new MenuItem({
- title: "Summarize",
- label: "Summarize",
- icon: icons.join,
- css: "color:white;",
- class: "menuicon",
- execEvent: "",
- run: (state, dispatch) => {
- TooltipTextMenu.insertStar(this.view.state, this.view.dispatch);
- }
-
- });
- }
-
- public static insertStar(state: EditorState<any>, dispatch: any) {
- if (state.selection.empty) return false;
- let mark = state.schema.marks.highlight.create();
- let tr = state.tr;
- tr.addMark(state.selection.from, state.selection.to, mark);
- let content = tr.selection.content();
- let newNode = state.schema.nodes.star.create({ visibility: false, text: content, textslice: content.toJSON() });
- dispatch && dispatch(tr.replaceSelectionWith(newNode).removeMark(tr.selection.from - 1, tr.selection.from, mark));
- return true;
- }
-
- public static insertComment(state: EditorState<any>, dispatch: any) {
- if (state.selection.empty) return false;
- let mark = state.schema.marks.highlight.create();
- let tr = state.tr;
- tr.addMark(state.selection.from, state.selection.to, mark);
- let content = tr.selection.content();
- let newNode = state.schema.nodes.star.create({ visibility: false, text: content, textslice: content.toJSON() });
- dispatch && dispatch(tr.replaceSelectionWith(newNode).removeMark(tr.selection.from - 1, tr.selection.from, mark));
- return true;
- }
-
- createHighlightTool() {
- return new MenuItem({
- title: "Highlight",
- css: "color:white;",
- class: "menuicon",
- execEvent: "",
- render() {
- let svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
- svg.setAttribute("viewBox", "-100 -100 650 650");
- let path = document.createElementNS('http://www.w3.org/2000/svg', "path");
- path.setAttributeNS(null, "d", "M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z");
- svg.appendChild(path);
-
- let color = document.createElement("div");
- color.className = "buttonColor";
- color.style.backgroundColor = TooltipTextMenuManager.Instance.highlight.toString();
-
- let wrapper = document.createElement("div");
- wrapper.id = "colorPicker";
- wrapper.appendChild(svg);
- wrapper.appendChild(color);
- return wrapper;
- },
- run: (state, dispatch) => {
- TooltipTextMenu.insertHighlight(TooltipTextMenuManager.Instance.highlight, this.view.state, this.view.dispatch);
- }
- });
- }
-
- public static insertHighlight(color: String, state: EditorState<any>, dispatch: any) {
- if (state.selection.empty) return false;
-
- let highlightMark = state.schema.mark(state.schema.marks.marker, { highlight: color });
- dispatch(state.tr.addMark(state.selection.from, state.selection.to, highlightMark));
- }
-
- createHighlightDropdown() {
- // menu item for color picker
- let self = this;
- let colors = new MenuItem({
- title: "",
- execEvent: "",
- class: "button-setting-disabled",
- css: "",
- render() {
- let p = document.createElement("p");
- p.textContent = "Change highlight:";
-
- let colorsWrapper = document.createElement("div");
- colorsWrapper.className = "colorPicker-wrapper";
-
- let colors = [
- PastelSchemaPalette.get("pink2"),
- PastelSchemaPalette.get("purple4"),
- PastelSchemaPalette.get("bluegreen1"),
- PastelSchemaPalette.get("yellow4"),
- PastelSchemaPalette.get("red2"),
- PastelSchemaPalette.get("bluegreen7"),
- PastelSchemaPalette.get("bluegreen5"),
- PastelSchemaPalette.get("orange1"),
- "white",
- "transparent"
- ];
-
- colors.forEach(color => {
- let button = document.createElement("button");
- button.className = color === TooltipTextMenuManager.Instance.highlight ? "colorPicker active" : "colorPicker";
- if (color) {
- button.style.backgroundColor = color;
- button.textContent = color === "transparent" ? "X" : "";
- button.onclick = e => {
- TooltipTextMenuManager.Instance.highlight = color;
-
- TooltipTextMenu.insertHighlight(TooltipTextMenuManager.Instance.highlight, self.view.state, self.view.dispatch);
-
- // update color menu
- let highlightDom = self.createHighlightTool().render(self.view).dom;
- let highlightDropdownDom = self.createHighlightDropdown().render(self.view).dom;
- self.highlightDom && self.tooltip.replaceChild(highlightDom, self.highlightDom);
- self.highlightDropdownDom && self.tooltip.replaceChild(highlightDropdownDom, self.highlightDropdownDom);
- self.highlightDom = highlightDom;
- self.highlightDropdownDom = highlightDropdownDom;
- };
- }
- colorsWrapper.appendChild(button);
- });
-
- let div = document.createElement("div");
- div.appendChild(p);
- div.appendChild(colorsWrapper);
- return div;
- },
- enable() { return false; },
- run(p1, p2, p3, event) {
- event.stopPropagation();
- }
- });
-
- let colorDropdown = new Dropdown([colors], { class: "buttonSettings-dropdown" }) as MenuItem;
- return colorDropdown;
- }
-
- createColorTool() {
- return new MenuItem({
- title: "Color",
- css: "color:white;",
- class: "menuicon",
- execEvent: "",
- render() {
- let svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
- svg.setAttribute("viewBox", "-100 -100 650 650");
- let path = document.createElementNS('http://www.w3.org/2000/svg', "path");
- path.setAttributeNS(null, "d", "M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z");
- svg.appendChild(path);
-
- let color = document.createElement("div");
- color.className = "buttonColor";
- color.style.backgroundColor = TooltipTextMenuManager.Instance.color.toString();
-
- let wrapper = document.createElement("div");
- wrapper.id = "colorPicker";
- wrapper.appendChild(svg);
- wrapper.appendChild(color);
- return wrapper;
- },
- run: (state, dispatch) => {
- TooltipTextMenu.insertColor(TooltipTextMenuManager.Instance.color, this.view.state, this.view.dispatch);
- }
- });
- }
-
- public static insertColor(color: String, state: EditorState<any>, dispatch: any) {
- if (state.selection.empty) return false;
-
- let colorMark = state.schema.mark(state.schema.marks.color, { color: color });
- dispatch(state.tr.addMark(state.selection.from, state.selection.to, colorMark));
- }
-
- createColorDropdown() {
- // menu item for color picker
- let self = this;
- let colors = new MenuItem({
- title: "",
- execEvent: "",
- class: "button-setting-disabled",
- css: "",
- render() {
- let p = document.createElement("p");
- p.textContent = "Change color:";
-
- let colorsWrapper = document.createElement("div");
- colorsWrapper.className = "colorPicker-wrapper";
-
- let colors = [
- DarkPastelSchemaPalette.get("pink2"),
- DarkPastelSchemaPalette.get("purple4"),
- DarkPastelSchemaPalette.get("bluegreen1"),
- DarkPastelSchemaPalette.get("yellow4"),
- DarkPastelSchemaPalette.get("red2"),
- DarkPastelSchemaPalette.get("bluegreen7"),
- DarkPastelSchemaPalette.get("bluegreen5"),
- DarkPastelSchemaPalette.get("orange1"),
- "#757472",
- "#000"
- ];
-
- colors.forEach(color => {
- let button = document.createElement("button");
- button.className = color === TooltipTextMenuManager.Instance.color ? "colorPicker active" : "colorPicker";
- if (color) {
- button.style.backgroundColor = color;
- button.onclick = e => {
- TooltipTextMenuManager.Instance.color = color;
-
- TooltipTextMenu.insertColor(TooltipTextMenuManager.Instance.color, self.view.state, self.view.dispatch);
-
- // update color menu
- let colorDom = self.createColorTool().render(self.view).dom;
- let colorDropdownDom = self.createColorDropdown().render(self.view).dom;
- self.colorDom && self.tooltip.replaceChild(colorDom, self.colorDom);
- self.colorDropdownDom && self.tooltip.replaceChild(colorDropdownDom, self.colorDropdownDom);
- self.colorDom = colorDom;
- self.colorDropdownDom = colorDropdownDom;
- };
- }
- colorsWrapper.appendChild(button);
- });
-
- let div = document.createElement("div");
- div.appendChild(p);
- div.appendChild(colorsWrapper);
- return div;
- },
- enable() { return false; },
- run(p1, p2, p3, event) {
- event.stopPropagation();
- }
- });
-
- let colorDropdown = new Dropdown([colors], { class: "buttonSettings-dropdown" }) as MenuItem;
- return colorDropdown;
- }
-
- createBrush(active: boolean = false) {
- const icon = {
- height: 32, width: 32,
- path: "M30.828 1.172c-1.562-1.562-4.095-1.562-5.657 0l-5.379 5.379-3.793-3.793-4.243 4.243 3.326 3.326-14.754 14.754c-0.252 0.252-0.358 0.592-0.322 0.921h-0.008v5c0 0.552 0.448 1 1 1h5c0 0 0.083 0 0.125 0 0.288 0 0.576-0.11 0.795-0.329l14.754-14.754 3.326 3.326 4.243-4.243-3.793-3.793 5.379-5.379c1.562-1.562 1.562-4.095 0-5.657zM5.409 30h-3.409v-3.409l14.674-14.674 3.409 3.409-14.674 14.674z"
- };
- let self = this;
- return new MenuItem({
- title: "Brush tool",
- label: "Brush tool",
- icon: icon,
- css: "color:white;",
- class: active ? "menuicon-active" : "menuicon",
- execEvent: "",
- run: (state, dispatch) => {
- this.brush_function(state, dispatch);
-
- // update dropdown with marks
- let newBrushDropdowndom = self.createBrushDropdown().render(self.view).dom;
- self._brushDropdownDom && self.tooltip.replaceChild(newBrushDropdowndom, self._brushDropdownDom);
- self._brushDropdownDom = newBrushDropdowndom;
- },
- active: (state) => {
- return true;
- }
- });
- }
-
- brush_function(state: EditorState<any>, dispatch: any) {
- if (TooltipTextMenuManager.Instance._brushIsEmpty) {
- const selected_marks = this.getMarksInSelection(this.view.state);
- if (this._brushdom) {
- if (selected_marks.size >= 0) {
- TooltipTextMenuManager.Instance._brushMarks = selected_marks;
- const newbrush = this.createBrush(true).render(this.view).dom;
- this.tooltip.replaceChild(newbrush, this._brushdom);
- this._brushdom = newbrush;
- TooltipTextMenuManager.Instance._brushIsEmpty = !TooltipTextMenuManager.Instance._brushIsEmpty;
- }
- }
- }
- else {
- let { from, to, $from } = this.view.state.selection;
- if (this._brushdom) {
- if (!this.view.state.selection.empty && $from && $from.nodeAfter) {
- if (TooltipTextMenuManager.Instance._brushMarks && to - from > 0) {
- this.view.dispatch(this.view.state.tr.removeMark(from, to));
- Array.from(TooltipTextMenuManager.Instance._brushMarks).filter(m => m.type !== schema.marks.user_mark).forEach((mark: Mark) => {
- const markType = mark.type;
- this.changeToMarkInGroup(markType, this.view, []);
- });
- }
- }
- else {
- const newbrush = this.createBrush(false).render(this.view).dom;
- this.tooltip.replaceChild(newbrush, this._brushdom);
- this._brushdom = newbrush;
- TooltipTextMenuManager.Instance._brushIsEmpty = !TooltipTextMenuManager.Instance._brushIsEmpty;
- }
- }
- }
- }
-
- createBrushDropdown(active: boolean = false) {
- let label = "Stored marks: ";
- if (TooltipTextMenuManager.Instance._brushMarks && TooltipTextMenuManager.Instance._brushMarks.size > 0) {
- TooltipTextMenuManager.Instance._brushMarks.forEach((mark: Mark) => {
- const markType = mark.type;
- label += markType.name;
- label += ", ";
- });
- label = label.substring(0, label.length - 2);
- } else {
- label = "No marks are currently stored";
- }
-
-
- let brushInfo = new MenuItem({
- title: "",
- label: label,
- execEvent: "",
- class: "button-setting-disabled",
- css: "",
- enable() { return false; },
- run(p1, p2, p3, event) {
- event.stopPropagation();
- }
- });
-
- let self = this;
- let clearBrush = new MenuItem({
- title: "Clear brush",
- execEvent: "",
- class: "separated-button",
- css: "",
- render() {
- let button = document.createElement("button");
- button.textContent = "Clear brush";
-
- let wrapper = document.createElement("div");
- wrapper.appendChild(button);
- return wrapper;
- },
- enable() { return true; },
- run() {
- TooltipTextMenuManager.Instance._brushIsEmpty = true;
- TooltipTextMenuManager.Instance._brushMarks = new Set();
-
- // update brush tool
- // TODO: this probably isn't very clean
- let newBrushdom = self.createBrush().render(self.view).dom;
- self._brushdom && self.tooltip.replaceChild(newBrushdom, self._brushdom);
- self._brushdom = newBrushdom;
- let newBrushDropdowndom = self.createBrushDropdown().render(self.view).dom;
- self._brushDropdownDom && self.tooltip.replaceChild(newBrushDropdowndom, self._brushDropdownDom);
- self._brushDropdownDom = newBrushDropdowndom;
- }
- });
-
- let hasMarks = TooltipTextMenuManager.Instance._brushMarks && TooltipTextMenuManager.Instance._brushMarks.size > 0;
- let brushDom = new Dropdown(hasMarks ? [brushInfo, clearBrush] : [brushInfo], { class: "buttonSettings-dropdown" }) as MenuItem;
- return brushDom;
- }
- //for a specific grouping of marks (passed in), remove all and apply the passed-in one to the selected textchangeToMarkInGroup = (markType: MarkType | undefined, view: EditorView, fontMarks: MarkType[]) => {
- changeToMarkInGroup = (markType: MarkType | undefined, view: EditorView, fontMarks: MarkType[]) => {
- let { $cursor, ranges } = view.state.selection as TextSelection;
- let state = view.state;
- let dispatch = view.dispatch;
-
- //remove all other active font marks
- fontMarks.forEach((type) => {
- if (dispatch) {
- if ($cursor) {
- if (type.isInSet(state.storedMarks || $cursor.marks())) {
- dispatch(state.tr.removeStoredMark(type));
- }
- } else {
- let has = false;
- for (let i = 0; !has && i < ranges.length; i++) {
- let { $from, $to } = ranges[i];
- has = state.doc.rangeHasMark($from.pos, $to.pos, type);
- }
- for (let i of ranges) {
- if (has) {
- toggleMark(type)(view.state, view.dispatch, view);
- }
- }
- }
- }
- });
-
- if (markType) {
- //actually apply font
- if ((view.state.selection as any).node && (view.state.selection as any).node.type === view.state.schema.nodes.ordered_list) {
- let status = updateBullets(view.state.tr.setNodeMarkup(view.state.selection.from, (view.state.selection as any).node.type,
- { ...(view.state.selection as NodeSelection).node.attrs, setFontFamily: markType.name, setFontSize: Number(markType.name.replace(/p/, "")) }), view.state.schema);
- view.dispatch(status.setSelection(new NodeSelection(status.doc.resolve(view.state.selection.from))));
- }
- else toggleMark(markType)(view.state, view.dispatch, view);
- }
- }
-
- changeToFontFamily = (mark: Mark, view: EditorView) => {
- let { $cursor, ranges } = view.state.selection as TextSelection;
- let state = view.state;
- let dispatch = view.dispatch;
-
- //remove all other active font marks
- if ($cursor) {
- if (view.state.schema.marks.pFontFamily.isInSet(state.storedMarks || $cursor.marks())) {
- dispatch(state.tr.removeStoredMark(view.state.schema.marks.pFontFamily));
- }
- } else {
- let has = false;
- for (let i = 0; !has && i < ranges.length; i++) {
- let { $from, $to } = ranges[i];
- has = state.doc.rangeHasMark($from.pos, $to.pos, view.state.schema.marks.pFontFamily);
- }
- for (let i of ranges) {
- if (has) {
- toggleMark(view.state.schema.marks.pFontFamily)(view.state, view.dispatch, view);
- }
- }
- }
-
- let fontName = mark.attrs.family;
- if (fontName) { this.updateFontStyleDropdown(fontName); }
- if (this.editorProps) {
- let ruleProvider = this.editorProps.ruleProvider;
- let heading = NumCast(this.editorProps.Document.heading);
- if (ruleProvider && heading) {
- ruleProvider["ruleFont_" + heading] = fontName;
- }
- }
- //actually apply font
- if ((view.state.selection as any).node && (view.state.selection as any).node.type === view.state.schema.nodes.ordered_list) {
- let status = updateBullets(view.state.tr.setNodeMarkup(view.state.selection.from, (view.state.selection as any).node.type,
- { ...(view.state.selection as NodeSelection).node.attrs, setFontFamily: fontName }), view.state.schema);
- view.dispatch(status.setSelection(new NodeSelection(status.doc.resolve(view.state.selection.from))));
- }
- else view.dispatch(view.state.tr.addMark(view.state.selection.from, view.state.selection.to, view.state.schema.marks.pFontFamily.create({ family: fontName })));
- view.state.storedMarks = [...(view.state.storedMarks || []), view.state.schema.marks.pFontFamily.create({ family: fontName })];
- }
-
- changeToFontSize = (mark: Mark, view: EditorView) => {
- let { $cursor, ranges } = view.state.selection as TextSelection;
- let state = view.state;
- let dispatch = view.dispatch;
-
- //remove all other active font marks
- if ($cursor) {
- if (view.state.schema.marks.pFontSize.isInSet(state.storedMarks || $cursor.marks())) {
- dispatch(state.tr.removeStoredMark(view.state.schema.marks.pFontSize));
- }
- } else {
- let has = false;
- for (let i = 0; !has && i < ranges.length; i++) {
- let { $from, $to } = ranges[i];
- has = state.doc.rangeHasMark($from.pos, $to.pos, view.state.schema.marks.pFontSize);
- }
- for (let i of ranges) {
- if (has) {
- toggleMark(view.state.schema.marks.pFontSize)(view.state, view.dispatch, view);
- }
- }
- }
-
- let size = mark.attrs.fontSize;
- if (size) { this.updateFontSizeDropdown(String(size) + " pt"); }
- if (this.editorProps) {
- let ruleProvider = this.editorProps.ruleProvider;
- let heading = NumCast(this.editorProps.Document.heading);
- if (ruleProvider && heading) {
- ruleProvider["ruleSize_" + heading] = size;
- }
- }
- //actually apply font
- if ((view.state.selection as any).node && (view.state.selection as any).node.type === view.state.schema.nodes.ordered_list) {
- let status = updateBullets(view.state.tr.setNodeMarkup(view.state.selection.from, (view.state.selection as any).node.type,
- { ...(view.state.selection as NodeSelection).node.attrs, setFontSize: size }), view.state.schema);
- view.dispatch(status.setSelection(new NodeSelection(status.doc.resolve(view.state.selection.from))));
- }
- else view.dispatch(view.state.tr.addMark(view.state.selection.from, view.state.selection.to, view.state.schema.marks.pFontSize.create({ fontSize: size })));
- view.state.storedMarks = [...(view.state.storedMarks || []), view.state.schema.marks.pFontSize.create({ fontSize: size })];
- }
-
- //remove all node typeand apply the passed-in one to the selected text
- changeToNodeType = (nodeType: NodeType | undefined) => {
- //remove oldif (nodeType) { //add new
- let view = this.view;
- if (nodeType === schema.nodes.bullet_list) {
- wrapInList(nodeType)(view.state, view.dispatch);
- } else {
- var marks = view.state.storedMarks || (view.state.selection.$to.parentOffset && view.state.selection.$from.marks());
- if (!wrapInList(schema.nodes.ordered_list)(view.state, (tx2: any) => {
- let tx3 = updateBullets(tx2, schema, nodeType && (nodeType as any).attrs.mapStyle);
- marks && tx3.ensureMarks([...marks]);
- marks && tx3.setStoredMarks([...marks]);
-
- view.dispatch(tx2);
- })) {
- let tx2 = view.state.tr;
- let tx3 = updateBullets(tx2, schema, nodeType && (nodeType as any).attrs.mapStyle);
- marks && tx3.ensureMarks([...marks]);
- marks && tx3.setStoredMarks([...marks]);
-
- view.dispatch(tx3);
- }
- }
- }
-
- //makes a button for the drop down FOR MARKS
- //css is the style you want applied to the button
- dropdownFontFamilyBtn(label: string, css: string, mark: Mark, view: EditorView, changeFontFamily: (mark: Mark<any>, view: EditorView) => any) {
- return new MenuItem({
- title: "",
- label: label,
- execEvent: "",
- class: "dropdown-item",
- css: css,
- enable() { return true; },
- run() {
- changeFontFamily(mark, view);
- }
- });
- }
- //makes a button for the drop down FOR MARKS
- //css is the style you want applied to the button
- dropdownFontSizeBtn(label: string, css: string, mark: Mark, view: EditorView, changeFontSize: (markType: Mark<any>, view: EditorView) => any) {
- return new MenuItem({
- title: "",
- label: label,
- execEvent: "",
- class: "dropdown-item",
- css: css,
- enable() { return true; },
- run() {
- changeFontSize(mark, view);
- }
- });
- }
-
- //makes a button for the drop down FOR NODE TYPES
- //css is the style you want applied to the button
- dropdownNodeBtn(label: string, css: string, nodeType: NodeType | undefined, view: EditorView, groupNodes: NodeType[], changeToNodeInGroup: (nodeType: NodeType<any> | undefined, view: EditorView, groupNodes: NodeType[]) => any) {
- return new MenuItem({
- title: "",
- label: label,
- execEvent: "",
- class: "dropdown-item",
- css: css,
- enable() { return true; },
- run() {
- changeToNodeInGroup(nodeType, view, groupNodes);
- }
- });
- }
-
- markActive = function(state: EditorState<any>, type: MarkType<Schema<string, string>>) {
- let { from, $from, to, empty } = state.selection;
- if (empty) return type.isInSet(state.storedMarks || $from.marks());
- else return state.doc.rangeHasMark(from, to, type);
- };
-
- // Helper function to create menu icons
- icon(text: string, name: string, title: string = name) {
- let span = document.createElement("span");
- span.className = name + " menuicon";
- span.title = title;
- span.textContent = text;
- span.style.color = "white";
- return span;
- }
-
- svgIcon(name: string, title: string = name, dpath: string) {
- let svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
- svg.setAttribute("viewBox", "-100 -100 650 650");
- let path = document.createElementNS('http://www.w3.org/2000/svg', "path");
- path.setAttributeNS(null, "d", dpath);
- svg.appendChild(path);
-
- let span = document.createElement("span");
- span.className = name + " menuicon";
- span.title = title;
- span.appendChild(svg);
-
- return span;
- }
-
- //method for checking whether node can be inserted
- canInsert(state: EditorState, nodeType: NodeType<Schema<string, string>>) {
- let $from = state.selection.$from;
- for (let d = $from.depth; d >= 0; d--) {
- let index = $from.index(d);
- if ($from.node(d).canReplaceWith(index, index, nodeType)) return true;
- }
- return false;
- }
-
-
- //adapted this method - use it to check if block has a tag (ie bulleting)
- blockActive(type: NodeType<Schema<string, string>>, state: EditorState) {
- let attrs = {};
-
- if (state.selection instanceof NodeSelection) {
- const sel: NodeSelection = state.selection;
- let $from = sel.$from;
- let to = sel.to;
- let node = sel.node;
-
- if (node) {
- return node.hasMarkup(type, attrs);
- }
-
- return to <= $from.end() && $from.parent.hasMarkup(type, attrs);
- }
- }
-
- // Create an icon for a heading at the given level
- heading(level: number) {
- return {
- command: setBlockType(schema.nodes.heading, { level }),
- dom: this.icon("H" + level, "heading")
- };
- }
-
- getMarksInSelection(state: EditorState<any>) {
- let found = new Set<Mark>();
- let { from, to } = state.selection as TextSelection;
- state.doc.nodesBetween(from, to, (node) => {
- let marks = node.marks;
- if (marks) {
- marks.forEach(m => {
- found.add(m);
- });
- }
- });
- return found;
- }
-
- reset_mark_doms() {
- let iterator = this._marksToDoms.values();
- let next = iterator.next();
- while (!next.done) {
- next.value.style.color = "white";
- next = iterator.next();
- }
- }
-
- update(view: EditorView, lastState: EditorState | undefined) { this.updateFromDash(view, lastState, this.editorProps); }
- //updates the tooltip menu when the selection changes
- public async updateFromDash(view: EditorView, lastState: EditorState | undefined, props: any) {
- if (!view) {
- console.log("no editor? why?");
- return;
- }
- this.view = view;
- let state = view.state;
- DocumentDecorations.Instance.showTextBar();
- props && (this.editorProps = props);
- // Don't do anything if the document/selection didn't change
- if (lastState && lastState.doc.eq(state.doc) &&
- lastState.selection.eq(state.selection)) return;
-
- this.reset_mark_doms();
-
- // Hide the tooltip if the selection is empty
- if (state.selection.empty) {
- //this.tooltip.style.display = "none";
- //return;
- }
-
- // update link dropdown
- let linkDropdown = await this.createLinkDropdown();
- let newLinkDropdowndom = linkDropdown.render(this.view).dom;
- this._linkDropdownDom && this.tooltip.replaceChild(newLinkDropdowndom, this._linkDropdownDom);
- this._linkDropdownDom = newLinkDropdowndom;
-
- //UPDATE FONT STYLE DROPDOWN
- let activeStyles = this.activeFontFamilyOnSelection();
- if (activeStyles !== undefined) {
- if (activeStyles.length === 1) {
- console.log("updating font style dropdown", activeStyles[0]);
- activeStyles[0] && this.updateFontStyleDropdown(activeStyles[0]);
- } else this.updateFontStyleDropdown(activeStyles.length ? "various" : "default");
- }
-
- //UPDATE FONT SIZE DROPDOWN
- let activeSizes = this.activeFontSizeOnSelection();
- if (activeSizes !== undefined) {
- if (activeSizes.length === 1) { //if there's only one active font size
- activeSizes[0] && this.updateFontSizeDropdown(String(activeSizes[0]) + " pt");
- } else this.updateFontSizeDropdown(activeSizes.length ? "various" : "default");
- }
-
- this.update_mark_doms();
- }
- update_mark_doms() {
- this.reset_mark_doms();
- this._activeMarks.forEach((mark) => {
- if (this._marksToDoms.has(mark)) {
- let dom = this._marksToDoms.get(mark);
- if (dom) dom.style.color = "greenyellow";
- }
- });
-
- // keeps brush tool highlighted if active when switching between textboxes
- if (!TooltipTextMenuManager.Instance._brushIsEmpty) {
- if (this._brushdom) {
- const newbrush = this.createBrush(true).render(this.view).dom;
- this.tooltip.replaceChild(newbrush, this._brushdom);
- this._brushdom = newbrush;
- }
- }
-
- }
-
- //finds fontSize at start of selection
- activeFontSizeOnSelection() {
- //current selection
- let state = this.view.state;
- let activeSizes: number[] = [];
- const pos = this.view.state.selection.$from;
- const ref_node: ProsNode = this.reference_node(pos);
- if (ref_node && ref_node !== this.view.state.doc && ref_node.isText) {
- ref_node.marks.forEach(m => m.type === state.schema.marks.pFontSize && activeSizes.push(m.attrs.fontSize));
- }
- return activeSizes;
- }
- //finds fontSize at start of selection
- activeFontFamilyOnSelection() {
- //current selection
- let state = this.view.state;
- let activeFamilies: string[] = [];
- const pos = this.view.state.selection.$from;
- const ref_node: ProsNode = this.reference_node(pos);
- if (ref_node && ref_node !== this.view.state.doc && ref_node.isText) {
- ref_node.marks.forEach(m => m.type === state.schema.marks.pFontFamily && activeFamilies.push(m.attrs.family));
- }
- return activeFamilies;
- }
- //finds all active marks on selection in given group
- activeMarksOnSelection(markGroup: MarkType[]) {
- //current selection
- let { empty, ranges, $to } = this.view.state.selection as TextSelection;
- let state = this.view.state;
- let dispatch = this.view.dispatch;
- let activeMarks: MarkType[];
- if (!empty) {
- activeMarks = markGroup.filter(mark => {
- let has = false;
- for (let i = 0; !has && i < ranges.length; i++) {
- let { $from, $to } = ranges[i];
- return state.doc.rangeHasMark($from.pos, $to.pos, mark);
- }
- return false;
- });
-
- const refnode = this.reference_node($to);
- this._activeMarks = refnode.marks;
- }
- else {
- const pos = this.view.state.selection.$from;
- const ref_node: ProsNode = this.reference_node(pos);
- if (ref_node !== null && ref_node !== this.view.state.doc) {
- if (ref_node.isText) {
- }
- else {
- return [];
- }
- this._activeMarks = ref_node.marks;
- activeMarks = markGroup.filter(mark_type => {
- if (mark_type === state.schema.marks.pFontSize) {
- return ref_node.marks.some(m => m.type.name === state.schema.marks.pFontSize.name);
- }
- let mark = state.schema.mark(mark_type);
- return ref_node.marks.includes(mark);
- return false;
- });
- }
- else {
- return [];
- }
-
- }
- return activeMarks;
- }
-
- reference_node(pos: ResolvedPos<any>): ProsNode {
- let ref_node: ProsNode = this.view.state.doc;
- if (pos.nodeBefore !== null && pos.nodeBefore !== undefined) {
- ref_node = pos.nodeBefore;
- }
- else if (pos.nodeAfter !== null && pos.nodeAfter !== undefined) {
- ref_node = pos.nodeAfter;
- }
- else if (pos.pos > 0) {
- let skip = false;
- for (let i: number = pos.pos - 1; i > 0; i--) {
- this.view.state.doc.nodesBetween(i, pos.pos, (node: ProsNode) => {
- if (node.isLeaf && !skip) {
- ref_node = node;
- skip = true;
- }
-
- });
- }
- }
- if (!ref_node.isLeaf && ref_node.childCount > 0) {
- ref_node = ref_node.child(0);
- }
- return ref_node;
- }
-
- destroy() {
- // this.wrapper.remove();
- }
-}
-
-
-class TooltipTextMenuManager {
- private static _instance: TooltipTextMenuManager;
-
- public pinnedX: number = 0;
- public pinnedY: number = 0;
- public unpinnedX: number = 0;
- public unpinnedY: number = 0;
- private _isPinned: boolean = false;
-
- public _brushMarks: Set<Mark> | undefined;
- public _brushIsEmpty: boolean = true;
-
- public color: String = "#000";
- public highlight: String = "transparent";
-
- public activeMenu: TooltipTextMenu | undefined;
-
- static get Instance() {
- if (!TooltipTextMenuManager._instance) {
- TooltipTextMenuManager._instance = new TooltipTextMenuManager();
- }
- return TooltipTextMenuManager._instance;
- }
-
- public get isPinned() {
- return this._isPinned;
- }
-
- public toggleIsPinned() {
- this._isPinned = !this._isPinned;
- }
-}
diff --git a/src/client/util/TypedEvent.ts b/src/client/util/TypedEvent.ts
index 532ba78eb..90fd299c1 100644
--- a/src/client/util/TypedEvent.ts
+++ b/src/client/util/TypedEvent.ts
@@ -1,40 +1,40 @@
export interface Listener<T> {
- (event: T): any;
+ (event: T): any;
}
export interface Disposable {
- dispose(): void;
+ dispose(): void;
}
/** passes through events as they happen. You will not get events from before you start listening */
export class TypedEvent<T> {
- private listeners: Listener<T>[] = [];
- private listenersOncer: Listener<T>[] = [];
-
- on = (listener: Listener<T>): Disposable => {
- this.listeners.push(listener);
- return {
- dispose: () => this.off(listener)
- };
- }
-
- once = (listener: Listener<T>): void => {
- this.listenersOncer.push(listener);
- }
-
- off = (listener: Listener<T>) => {
- var callbackIndex = this.listeners.indexOf(listener);
- if (callbackIndex > -1) this.listeners.splice(callbackIndex, 1);
- }
-
- emit = (event: T) => {
- /** Update any general listeners */
- this.listeners.forEach((listener) => listener(event));
-
- /** Clear the `once` queue */
- this.listenersOncer.forEach((listener) => listener(event));
- this.listenersOncer = [];
- }
-
- pipe = (te: TypedEvent<T>): Disposable => this.on((e) => te.emit(e));
+ private listeners: Listener<T>[] = [];
+ private listenersOncer: Listener<T>[] = [];
+
+ on = (listener: Listener<T>): Disposable => {
+ this.listeners.push(listener);
+ return {
+ dispose: () => this.off(listener)
+ };
+ }
+
+ once = (listener: Listener<T>): void => {
+ this.listenersOncer.push(listener);
+ }
+
+ off = (listener: Listener<T>) => {
+ const callbackIndex = this.listeners.indexOf(listener);
+ if (callbackIndex > -1) this.listeners.splice(callbackIndex, 1);
+ }
+
+ emit = (event: T) => {
+ /** Update any general listeners */
+ this.listeners.forEach((listener) => listener(event));
+
+ /** Clear the `once` queue */
+ this.listenersOncer.forEach((listener) => listener(event));
+ this.listenersOncer = [];
+ }
+
+ pipe = (te: TypedEvent<T>): Disposable => this.on((e) => te.emit(e));
} \ No newline at end of file
diff --git a/src/client/util/UndoManager.ts b/src/client/util/UndoManager.ts
index 472afac1d..314b52bf3 100644
--- a/src/client/util/UndoManager.ts
+++ b/src/client/util/UndoManager.ts
@@ -3,7 +3,7 @@ import 'source-map-support/register';
import { Without } from "../../Utils";
function getBatchName(target: any, key: string | symbol): string {
- let keyName = key.toString();
+ const keyName = key.toString();
if (target && target.constructor && target.constructor.name) {
return `${target.constructor.name}.${keyName}`;
}
@@ -23,7 +23,7 @@ function propertyDecorator(target: any, key: string | symbol) {
writable: true,
configurable: true,
value: function (...args: any[]) {
- let batch = UndoManager.StartBatch(getBatchName(target, key));
+ const batch = UndoManager.StartBatch(getBatchName(target, key));
try {
return value.apply(this, args);
} finally {
@@ -40,7 +40,7 @@ export function undoBatch(fn: (...args: any[]) => any): (...args: any[]) => any;
export function undoBatch(target: any, key?: string | symbol, descriptor?: TypedPropertyDescriptor<any>): any {
if (!key) {
return function () {
- let batch = UndoManager.StartBatch("");
+ const batch = UndoManager.StartBatch("");
try {
return target.apply(undefined, arguments);
} finally {
@@ -55,7 +55,7 @@ export function undoBatch(target: any, key?: string | symbol, descriptor?: Typed
const oldFunction = descriptor.value;
descriptor.value = function (...args: any[]) {
- let batch = UndoManager.StartBatch(getBatchName(target, key));
+ const batch = UndoManager.StartBatch(getBatchName(target, key));
try {
return oldFunction.apply(this, args);
} finally {
@@ -98,7 +98,7 @@ export namespace UndoManager {
GetOpenBatches().forEach(batch => console.log(batch.batchName));
}
- let openBatches: Batch[] = [];
+ const openBatches: Batch[] = [];
export function GetOpenBatches(): Without<Batch, 'end'>[] {
return openBatches;
}
@@ -146,7 +146,7 @@ export namespace UndoManager {
//TODO Make this return the return value
export function RunInBatch<T>(fn: () => T, batchName: string) {
- let batch = StartBatch(batchName);
+ const batch = StartBatch(batchName);
try {
return runInAction(fn);
} finally {
@@ -159,7 +159,7 @@ export namespace UndoManager {
return;
}
- let commands = undoStack.pop();
+ const commands = undoStack.pop();
if (!commands) {
return;
}
@@ -178,7 +178,7 @@ export namespace UndoManager {
return;
}
- let commands = redoStack.pop();
+ const commands = redoStack.pop();
if (!commands) {
return;
}
diff --git a/src/client/util/request-image-size.js b/src/client/util/request-image-size.js
index 27605d167..beb030635 100644
--- a/src/client/util/request-image-size.js
+++ b/src/client/util/request-image-size.js
@@ -38,7 +38,7 @@ module.exports = function requestImageSize(options) {
return reject(new HttpError(res.statusCode, res.statusMessage));
}
- let buffer = new Buffer([]);
+ let buffer = new Buffer.from([]);
let size;
let imageSizeError;
diff --git a/src/client/util/type_decls.d b/src/client/util/type_decls.d
index 622e10960..127f7b798 100644
--- a/src/client/util/type_decls.d
+++ b/src/client/util/type_decls.d
@@ -131,6 +131,7 @@ interface Promise<T> {
declare const Update: unique symbol;
declare const Self: unique symbol;
declare const SelfProxy: unique symbol;
+declare const DataSym: unique symbol;
declare const HandleUpdate: unique symbol;
declare const Id: unique symbol;
declare const OnUpdate: unique symbol;
diff --git a/src/client/views/AntimodeMenu.scss b/src/client/views/AntimodeMenu.scss
new file mode 100644
index 000000000..d4a76ee17
--- /dev/null
+++ b/src/client/views/AntimodeMenu.scss
@@ -0,0 +1,42 @@
+.antimodeMenu-cont {
+ position: absolute;
+ z-index: 10000;
+ height: 35px;
+ background: #323232;
+ box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25);
+ border-radius: 0px 6px 6px 6px;
+ // overflow: hidden;
+ display: flex;
+
+ &.with-rows {
+ flex-direction: column
+ }
+
+ .antimodeMenu-row {
+ display: flex;
+ height: 35px;
+ }
+
+ .antimodeMenu-button {
+ background-color: transparent;
+ width: 35px;
+ height: 35px;
+
+ &.active {
+ background-color: #121212;
+ }
+ }
+
+ .antimodeMenu-button:hover {
+ background-color: #121212;
+ }
+
+ .antimodeMenu-dragger {
+ height: 100%;
+ transition: width .2s;
+ background-image: url("https://logodix.com/logo/1020374.png");
+ background-size: 90% 100%;
+ background-repeat: no-repeat;
+ background-position: left center;
+ }
+} \ No newline at end of file
diff --git a/src/client/views/AntimodeMenu.tsx b/src/client/views/AntimodeMenu.tsx
new file mode 100644
index 000000000..4625eb92f
--- /dev/null
+++ b/src/client/views/AntimodeMenu.tsx
@@ -0,0 +1,152 @@
+import React = require("react");
+import { observer } from "mobx-react";
+import { observable, action } from "mobx";
+import "./AntimodeMenu.scss";
+
+/**
+ * This is an abstract class that serves as the base for a PDF-style or Marquee-style
+ * menu. To use this class, look at PDFMenu.tsx or MarqueeOptionsMenu.tsx for an example.
+ */
+export default abstract class AntimodeMenu extends React.Component {
+ protected _offsetY: number = 0;
+ protected _offsetX: number = 0;
+ protected _mainCont: React.RefObject<HTMLDivElement> = React.createRef();
+ protected _dragging: boolean = false;
+
+ @observable protected _top: number = -300;
+ @observable protected _left: number = -300;
+ @observable protected _opacity: number = 1;
+ @observable protected _transition: string = "opacity 0.5s";
+ @observable protected _transitionDelay: string = "";
+ @observable protected _canFade: boolean = true;
+
+ @observable public Pinned: boolean = false;
+
+ get width() { return this._mainCont.current ? this._mainCont.current.getBoundingClientRect().width : 0; }
+ get height() { return this._mainCont.current ? this._mainCont.current.getBoundingClientRect().height : 0; }
+
+ @action
+ /**
+ * @param x
+ * @param y
+ * @param forceJump: If the menu is pinned down, do you want to force it to jump to the new location?
+ * Called when you want the menu to show up at a location
+ */
+ public jumpTo = (x: number, y: number, forceJump: boolean = false) => {
+ if (!this.Pinned || forceJump) {
+ this._transition = this._transitionDelay = "";
+ this._opacity = 1;
+ this._left = x;
+ this._top = y;
+ }
+ }
+
+ @action
+ /**
+ * @param forceOut: Do you want the menu to disappear immediately or to slowly fadeout?
+ * Called when you want the menu to disappear
+ */
+ public fadeOut = (forceOut: boolean) => {
+ if (!this.Pinned) {
+ if (this._opacity === 0.2) {
+ this._transition = "opacity 0.1s";
+ this._transitionDelay = "";
+ this._opacity = 0;
+ this._left = this._top = -300;
+ }
+
+ if (forceOut) {
+ this._transition = "";
+ this._transitionDelay = "";
+ this._opacity = 0;
+ this._left = this._top = -300;
+ }
+ }
+ }
+
+ @action
+ protected pointerLeave = (e: React.PointerEvent) => {
+ if (!this.Pinned && this._canFade) {
+ this._transition = "opacity 0.5s";
+ this._transitionDelay = "1s";
+ this._opacity = 0.2;
+ setTimeout(() => this.fadeOut(false), 3000);
+ }
+ }
+
+ @action
+ protected pointerEntered = (e: React.PointerEvent) => {
+ this._transition = "opacity 0.1s";
+ this._transitionDelay = "";
+ this._opacity = 1;
+ }
+
+ @action
+ protected togglePin = (e: React.MouseEvent) => {
+ this.Pinned = !this.Pinned;
+ }
+
+ protected dragStart = (e: React.PointerEvent) => {
+ document.removeEventListener("pointermove", this.dragging);
+ document.addEventListener("pointermove", this.dragging);
+ document.removeEventListener("pointerup", this.dragEnd);
+ document.addEventListener("pointerup", this.dragEnd);
+
+ this._offsetX = e.pageX - this._mainCont.current!.getBoundingClientRect().left;
+ this._offsetY = e.pageY - this._mainCont.current!.getBoundingClientRect().top;
+
+ e.stopPropagation();
+ e.preventDefault();
+ }
+
+ @action
+ protected dragging = (e: PointerEvent) => {
+ const width = this._mainCont.current!.getBoundingClientRect().width;
+ const height = this._mainCont.current!.getBoundingClientRect().height;
+
+ const left = e.pageX - this._offsetX;
+ const top = e.pageY - this._offsetY;
+
+ this._left = Math.min(Math.max(left, 0), window.innerWidth - width);
+ this._top = Math.min(Math.max(top, 0), window.innerHeight - height);
+
+ e.stopPropagation();
+ e.preventDefault();
+ }
+
+ protected dragEnd = (e: PointerEvent) => {
+ document.removeEventListener("pointermove", this.dragging);
+ document.removeEventListener("pointerup", this.dragEnd);
+ e.stopPropagation();
+ e.preventDefault();
+ }
+
+ protected handleContextMenu = (e: React.MouseEvent) => {
+ e.stopPropagation();
+ e.preventDefault();
+ }
+
+ protected getDragger = () => {
+ return <div className="antimodeMenu-dragger" onPointerDown={this.dragStart} style={{ width: this.Pinned ? "20px" : "0px" }} />;
+ }
+
+ protected getElement(buttons: JSX.Element[]) {
+ return (
+ <div className="antimodeMenu-cont" onPointerLeave={this.pointerLeave} onPointerEnter={this.pointerEntered} ref={this._mainCont} onContextMenu={this.handleContextMenu}
+ style={{ left: this._left, top: this._top, opacity: this._opacity, transition: this._transition, transitionDelay: this._transitionDelay }}>
+ {buttons}
+ <div className="antimodeMenu-dragger" onPointerDown={this.dragStart} style={{ width: this.Pinned ? "20px" : "0px" }} />
+ </div>
+ );
+ }
+
+ protected getElementWithRows(rows: JSX.Element[], numRows: number, hasDragger: boolean = true) {
+ return (
+ <div className="antimodeMenu-cont with-rows" onPointerLeave={this.pointerLeave} onPointerEnter={this.pointerEntered} ref={this._mainCont} onContextMenu={this.handleContextMenu}
+ style={{ left: this._left, top: this._top, opacity: this._opacity, transition: this._transition, transitionDelay: this._transitionDelay, height: 35 * numRows + "px" }}>
+ {rows}
+ {hasDragger ? <div className="antimodeMenu-dragger" onPointerDown={this.dragStart} style={{ width: this.Pinned ? "20px" : "0px" }} /> : <></>}
+ </div>
+ );
+ }
+} \ No newline at end of file
diff --git a/src/client/views/CollectionLinearView.tsx b/src/client/views/CollectionLinearView.tsx
deleted file mode 100644
index 7c6d33d36..000000000
--- a/src/client/views/CollectionLinearView.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-import { action, IReactionDisposer, observable, reaction } from 'mobx';
-import { observer } from 'mobx-react';
-import * as React from 'react';
-import { Doc, HeightSym, WidthSym } from '../../new_fields/Doc';
-import { makeInterface } from '../../new_fields/Schema';
-import { BoolCast, NumCast, StrCast } from '../../new_fields/Types';
-import { emptyFunction, returnEmptyString, returnOne, returnTrue, Utils } from '../../Utils';
-import { DragManager } from '../util/DragManager';
-import { Transform } from '../util/Transform';
-import "./CollectionLinearView.scss";
-import { CollectionViewType } from './collections/CollectionView';
-import { CollectionSubView } from './collections/CollectionSubView';
-import { DocumentView } from './nodes/DocumentView';
-import { documentSchema } from '../../new_fields/documentSchemas';
-import { Id } from '../../new_fields/FieldSymbols';
-
-
-type LinearDocument = makeInterface<[typeof documentSchema,]>;
-const LinearDocument = makeInterface(documentSchema);
-
-@observer
-export class CollectionLinearView extends CollectionSubView(LinearDocument) {
- @observable public addMenuToggle = React.createRef<HTMLInputElement>();
- private _dropDisposer?: DragManager.DragDropDisposer;
- private _heightDisposer?: IReactionDisposer;
- private _spacing = 20;
-
- componentWillUnmount() {
- this._dropDisposer && this._dropDisposer();
- this._heightDisposer && this._heightDisposer();
- }
-
- componentDidMount() {
- // is there any reason this needs to exist? -syip. yes, it handles autoHeight for stacking views (masonry isn't yet supported).
- this._heightDisposer = reaction(() => NumCast(this.props.Document.height, 0) + this.childDocs.length + (this.props.Document.isExpanded ? 1 : 0),
- () => this.props.Document.width = 18 + (this.props.Document.isExpanded ? this.childDocs.length * (this.props.Document[HeightSym]()) : 10),
- { fireImmediately: true }
- );
- }
- protected createDropTarget = (ele: HTMLDivElement) => { //used for stacking and masonry view
- this._dropDisposer && this._dropDisposer();
- if (ele) {
- this._dropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.drop.bind(this) } });
- }
- }
-
- public isCurrent(doc: Doc) { return !doc.isMinimized && (Math.abs(NumCast(doc.displayTimecode, -1) - NumCast(this.Document.currentTimecode, -1)) < 1.5 || NumCast(doc.displayTimecode, -1) === -1); }
-
- dimension = () => NumCast(this.props.Document.height); // 2 * the padding
- getTransform = (ele: React.RefObject<HTMLDivElement>) => () => {
- if (!ele.current) return Transform.Identity();
- let { scale, translateX, translateY } = Utils.GetScreenTransform(ele.current);
- return new Transform(-translateX, -translateY, 1 / scale);
- }
- render() {
- let guid = Utils.GenerateGuid();
- return <div className="collectionLinearView-outer">
- <div className="collectionLinearView" ref={this.createDropTarget} >
- <input id={`${guid}`} type="checkbox" checked={BoolCast(this.props.Document.isExpanded)} ref={this.addMenuToggle}
- onChange={action((e: any) => this.props.Document.isExpanded = this.addMenuToggle.current!.checked)} />
- <label htmlFor={`${guid}`} style={{ marginTop: "auto", marginBottom: "auto", background: StrCast(this.props.Document.backgroundColor, "black") === StrCast(this.props.Document.color, "white") ? "black" : StrCast(this.props.Document.backgroundColor, "black") }} title="Close Menu"><p>+</p></label>
-
- <div className="collectionLinearView-content">
- {this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)).map(pair => {
- let nested = pair.layout.viewType === CollectionViewType.Linear;
- let dref = React.createRef<HTMLDivElement>();
- let nativeWidth = NumCast(pair.layout.nativeWidth, this.dimension());
- let scalingContent = nested ? 1 : this.dimension() / (this._spacing + nativeWidth);
- let scalingBox = nested ? 1 : this.dimension() / nativeWidth;
- let deltaSize = nativeWidth * scalingBox - nativeWidth * scalingContent;
- return <div className={`collectionLinearView-docBtn` + (pair.layout.onClick || pair.layout.onDragStart ? "-scalable" : "")} key={pair.layout[Id]} ref={dref}
- style={{
- width: nested ? pair.layout[WidthSym]() : this.dimension(),
- height: nested && pair.layout.isExpanded ? pair.layout[HeightSym]() : this.dimension(),
- transform: nested ? undefined : `translate(${deltaSize / 2}px, ${deltaSize / 2}px)`
- }} >
- <DocumentView
- Document={pair.layout}
- DataDoc={pair.data}
- addDocument={this.props.addDocument}
- moveDocument={this.props.moveDocument}
- addDocTab={this.props.addDocTab}
- pinToPres={emptyFunction}
- removeDocument={this.props.removeDocument}
- ruleProvider={undefined}
- onClick={undefined}
- ScreenToLocalTransform={this.getTransform(dref)}
- ContentScaling={() => scalingContent} // ugh - need to get rid of this inline function to avoid recomputing
- PanelWidth={() => nested ? pair.layout[WidthSym]() : this.dimension()}
- PanelHeight={() => nested ? pair.layout[HeightSym]() : this.dimension()}
- renderDepth={this.props.renderDepth + 1}
- focus={emptyFunction}
- backgroundColor={returnEmptyString}
- parentActive={returnTrue}
- whenActiveChanged={emptyFunction}
- bringToFront={emptyFunction}
- ContainingCollectionView={undefined}
- ContainingCollectionDoc={undefined}
- zoomToScale={emptyFunction}
- getScale={returnOne}>
- </DocumentView>
- </div>;
- })}
- {/* <li key="undoTest"><button className="add-button round-button" title="Click if undo isn't working" onClick={() => UndoManager.TraceOpenBatches()}><FontAwesomeIcon icon="exclamation" size="sm" /></button></li> */}
-
- </div>
- </div>
- </div>;
- }
-} \ No newline at end of file
diff --git a/src/client/views/ContextMenu.tsx b/src/client/views/ContextMenu.tsx
index 5d452e72e..ac803d977 100644
--- a/src/client/views/ContextMenu.tsx
+++ b/src/client/views/ContextMenu.tsx
@@ -49,8 +49,8 @@ export class ContextMenu extends React.Component {
@action
onPointerUp = (e: PointerEvent) => {
this._mouseDown = false;
- let curX = e.clientX;
- let curY = e.clientY;
+ const curX = e.clientX;
+ const curY = e.clientY;
if (this._mouseX !== curX || this._mouseY !== curY) {
this._shouldDisplay = false;
}
@@ -77,8 +77,13 @@ export class ContextMenu extends React.Component {
@action
clearItems() {
this._items = [];
+ this._defaultPrefix = "";
+ this._defaultItem = undefined;
}
+ _defaultPrefix: string = "";
+ _defaultItem: ((name: string) => void) | undefined;
+
findByDescription = (target: string, toLowerCase = false) => {
return this._items.find(menuItem => {
let reference = menuItem.description;
@@ -93,6 +98,11 @@ export class ContextMenu extends React.Component {
this._items.push(item);
}
}
+ @action
+ setDefaultItem(prefix: string, item: (name: string) => void) {
+ this._defaultPrefix = prefix;
+ this._defaultItem = item;
+ }
getItems() {
return this._items;
@@ -208,7 +218,7 @@ export class ContextMenu extends React.Component {
if (!this._display) {
return null;
}
- let style = this._yRelativeToTop ? { left: this.pageX, top: this.pageY } :
+ const style = this._yRelativeToTop ? { left: this.pageX, top: this.pageY } :
{ left: this.pageX, bottom: this.pageY };
const contents = (
@@ -248,7 +258,11 @@ export class ContextMenu extends React.Component {
e.preventDefault();
} else if (e.key === "Enter" || e.key === "Tab") {
const item = this.flatItems[this.selectedIndex];
- item && item.event({ x: this.pageX, y: this.pageY });
+ if (item) {
+ item.event({ x: this.pageX, y: this.pageY });
+ } else if (this._searchString.startsWith(this._defaultPrefix)) {
+ this._defaultItem?.(this._searchString.substring(this._defaultPrefix.length));
+ }
this.closeMenu();
e.preventDefault();
}
diff --git a/src/client/views/ContextMenuItem.tsx b/src/client/views/ContextMenuItem.tsx
index 330b94afa..fef9e5f60 100644
--- a/src/client/views/ContextMenuItem.tsx
+++ b/src/client/views/ContextMenuItem.tsx
@@ -88,7 +88,7 @@ export class ContextMenuItem extends React.Component<ContextMenuProps & { select
</div>
);
} else if ("subitems" in this.props) {
- let submenu = !this.overItem ? (null) :
+ const submenu = !this.overItem ? (null) :
<div className="contextMenu-subMenu-cont" style={{ marginLeft: "25%", left: "0px" }}>
{this._items.map(prop => <ContextMenuItem {...prop} key={prop.description} closeMenu={this.props.closeMenu} />)}
</div>;
diff --git a/src/client/views/DictationOverlay.tsx b/src/client/views/DictationOverlay.tsx
index 2accf9bfd..65770c0bb 100644
--- a/src/client/views/DictationOverlay.tsx
+++ b/src/client/views/DictationOverlay.tsx
@@ -24,7 +24,7 @@ export class DictationOverlay extends React.Component {
}
public initiateDictationFade = () => {
- let duration = DictationManager.Commands.dictationFadeDuration;
+ const duration = DictationManager.Commands.dictationFadeDuration;
this.overlayTimeout = setTimeout(() => {
this.dictationOverlayVisible = false;
this.dictationSuccess = undefined;
@@ -50,14 +50,14 @@ export class DictationOverlay extends React.Component {
public set isListening(value: DictationManager.Controls.ListeningUIStatus) { runInAction(() => this._dictationListeningState = value); }
render() {
- let success = this.dictationSuccess;
- let result = this.isListening && !this.isListening.interim ? DictationManager.placeholder : `"${this.dictatedPhrase}"`;
- let dialogueBoxStyle = {
+ const success = this.dictationSuccess;
+ const result = this.isListening && !this.isListening.interim ? DictationManager.placeholder : `"${this.dictatedPhrase}"`;
+ const dialogueBoxStyle = {
background: success === undefined ? "gainsboro" : success ? "lawngreen" : "red",
borderColor: this.isListening ? "red" : "black",
fontStyle: "italic"
};
- let overlayStyle = {
+ const overlayStyle = {
backgroundColor: this.isListening ? "red" : "darkslategrey"
};
return (<MainViewModal
diff --git a/src/client/views/DocComponent.tsx b/src/client/views/DocComponent.tsx
index 92c947fe6..ce48e1215 100644
--- a/src/client/views/DocComponent.tsx
+++ b/src/client/views/DocComponent.tsx
@@ -1,6 +1,6 @@
-import * as React from 'react';
import { Doc } from '../../new_fields/Doc';
-import { computed, action } from 'mobx';
+import { Touchable } from './Touchable';
+import { computed, action, observable } from 'mobx';
import { Cast } from '../../new_fields/Types';
import { listSpec } from '../../new_fields/Schema';
import { InkingControl } from './InkingControl';
@@ -13,7 +13,7 @@ interface DocComponentProps {
Document: Doc;
}
export function DocComponent<P extends DocComponentProps, T>(schemaCtor: (doc: Doc) => T) {
- class Component extends React.Component<P> {
+ class Component extends Touchable<P> {
//TODO This might be pretty inefficient if doc isn't observed, because computed doesn't cache then
@computed get Document(): T { return schemaCtor(this.props.Document); }
@computed get layoutDoc() { return PositionDocument(Doc.Layout(this.props.Document)); }
@@ -26,63 +26,67 @@ interface DocExtendableProps {
Document: Doc;
DataDoc?: Doc;
fieldKey: string;
- isSelected: () => boolean;
+ isSelected: (outsideReaction?: boolean) => boolean;
renderDepth: number;
}
export function DocExtendableComponent<P extends DocExtendableProps, T>(schemaCtor: (doc: Doc) => T) {
- class Component extends React.Component<P> {
+ class Component extends Touchable<P> {
//TODO This might be pretty inefficient if doc isn't observed, because computed doesn't cache then
@computed get Document(): T { return schemaCtor(this.props.Document); }
@computed get layoutDoc() { return Doc.Layout(this.props.Document); }
- @computed get dataDoc() { return (this.props.DataDoc && (this.props.Document.isTemplateField || this.props.Document.isTemplateDoc) ? this.props.DataDoc : Doc.GetProto(this.props.Document)) as Doc; }
- @computed get extensionDoc() { return Doc.fieldExtensionDoc(this.dataDoc, this.props.fieldKey); }
- active = () => !this.props.Document.isBackground && (this.props.Document.forceActive || this.props.isSelected() || this.props.renderDepth === 0);// && !InkingControl.Instance.selectedTool; // bcz: inking state shouldn't affect static tools
+ @computed get dataDoc() { return (this.props.DataDoc && (this.props.Document.isTemplateForField || this.props.Document.isTemplateDoc) ? this.props.DataDoc : Cast(this.props.Document.resolvedDataDoc, Doc, null) || Doc.GetProto(this.props.Document)) as Doc; }
+ active = (outsideReaction?: boolean) => !this.props.Document.isBackground && (this.props.Document.forceActive || this.props.isSelected(outsideReaction) || this.props.renderDepth === 0);// && !InkingControl.Instance.selectedTool; // bcz: inking state shouldn't affect static tools
}
return Component;
}
/// DocAnnotatbleComponent return a base class for React views of document fields that are annotatable *and* interactive when selected (e.g., pdf, image)
-interface DocAnnotatableProps {
+export interface DocAnnotatableProps {
Document: Doc;
DataDoc?: Doc;
fieldKey: string;
+ active: () => boolean;
whenActiveChanged: (isActive: boolean) => void;
- isSelected: () => boolean;
+ isSelected: (outsideReaction?: boolean) => boolean;
renderDepth: number;
}
export function DocAnnotatableComponent<P extends DocAnnotatableProps, T>(schemaCtor: (doc: Doc) => T) {
- class Component extends React.Component<P> {
- _isChildActive = false;
+ class Component extends Touchable<P> {
+ @observable _isChildActive = false;
//TODO This might be pretty inefficient if doc isn't observed, because computed doesn't cache then
@computed get Document(): T { return schemaCtor(this.props.Document); }
@computed get layoutDoc() { return Doc.Layout(this.props.Document); }
- @computed get dataDoc() { return (this.props.DataDoc && this.props.Document.isTemplateField ? this.props.DataDoc : Doc.GetProto(this.props.Document)) as Doc; }
- @computed get extensionDoc() { return Doc.fieldExtensionDoc(this.dataDoc, this.props.fieldKey); }
- @computed get annotationsKey() { return "annotations"; }
+ @computed get dataDoc() { return (this.props.DataDoc && (this.props.Document.isTemplateForField || this.props.Document.isTemplateDoc) ? this.props.DataDoc : Cast(this.props.Document.resolvedDataDoc, Doc, null) || Doc.GetProto(this.props.Document)) as Doc; }
+
+ _annotationKey: string = "annotations";
+ public set annotationKey(val: string) { this._annotationKey = val; }
+ public get annotationKey() { return this._annotationKey; }
@action.bound
removeDocument(doc: Doc): boolean {
Doc.GetProto(doc).annotationOn = undefined;
- let value = this.extensionDoc && Cast(this.extensionDoc[this.annotationsKey], listSpec(Doc), []);
- let index = value ? Doc.IndexOf(doc, value.map(d => d as Doc), true) : -1;
+ const value = Cast(this.dataDoc[this.props.fieldKey + "-" + this._annotationKey], listSpec(Doc), []);
+ const index = value ? Doc.IndexOf(doc, value.map(d => d as Doc), true) : -1;
return index !== -1 && value && value.splice(index, 1) ? true : false;
}
// if the moved document is already in this overlay collection nothing needs to be done.
// otherwise, if the document can be removed from where it was, it will then be added to this document's overlay collection.
@action.bound
- moveDocument(doc: Doc, targetCollection: Doc, addDocument: (doc: Doc) => boolean): boolean {
+ moveDocument(doc: Doc, targetCollection: Doc | undefined, addDocument: (doc: Doc) => boolean): boolean {
return Doc.AreProtosEqual(this.props.Document, targetCollection) ? true : this.removeDocument(doc) ? addDocument(doc) : false;
}
@action.bound
addDocument(doc: Doc): boolean {
Doc.GetProto(doc).annotationOn = this.props.Document;
- return this.extensionDoc && Doc.AddDocToList(this.extensionDoc, this.annotationsKey, doc) ? true : false;
+ return Doc.AddDocToList(this.dataDoc, this.props.fieldKey + "-" + this._annotationKey, doc) ? true : false;
}
- whenActiveChanged = (isActive: boolean) => this.props.whenActiveChanged(this._isChildActive = isActive);
- active = () => ((InkingControl.Instance.selectedTool === InkTool.None && !this.props.Document.isBackground) &&
- (this.props.Document.forceActive || this.props.isSelected() || this._isChildActive || this.props.renderDepth === 0) ? true : false)
+ whenActiveChanged = action((isActive: boolean) => this.props.whenActiveChanged(this._isChildActive = isActive));
+ active = (outsideReaction?: boolean) => ((InkingControl.Instance.selectedTool === InkTool.None && !this.props.Document.isBackground) &&
+ (this.props.Document.forceActive || this.props.isSelected(outsideReaction) || this._isChildActive || this.props.renderDepth === 0) ? true : false)
+ annotationsActive = (outsideReaction?: boolean) => (InkingControl.Instance.selectedTool !== InkTool.None ||
+ (this.props.Document.forceActive || this.props.isSelected(outsideReaction) || this._isChildActive || this.props.renderDepth === 0) ? true : false)
}
return Component;
} \ No newline at end of file
diff --git a/src/client/views/DocumentButtonBar.scss b/src/client/views/DocumentButtonBar.scss
index 8cd419bbe..c2ca93900 100644
--- a/src/client/views/DocumentButtonBar.scss
+++ b/src/client/views/DocumentButtonBar.scss
@@ -2,22 +2,47 @@
$linkGap : 3px;
-.linkFlyout {
+.documentButtonBar-linkFlyout {
grid-column: 2/4;
}
-.linkButton-empty:hover {
+.documentButtonBar-linkButton-empty:hover {
background: $main-accent;
transform: scale(1.05);
cursor: pointer;
}
-.linkButton-nonempty:hover {
+.documentButtonBar-linkButton-nonempty:hover {
background: $main-accent;
transform: scale(1.05);
cursor: pointer;
}
+.documentButtonBar-linkButton-empty,
+.documentButtonBar-linkButton-nonempty {
+ height: 20px;
+ width: 20px;
+ border-radius: 50%;
+ opacity: 0.9;
+ pointer-events: auto;
+ background-color: $dark-color;
+ color: $light-color;
+ text-transform: uppercase;
+ letter-spacing: 2px;
+ font-size: 75%;
+ transition: transform 0.2s;
+ text-align: center;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ &:hover {
+ background: $main-accent;
+ transform: scale(1.05);
+ cursor: pointer;
+ }
+}
+
.documentButtonBar {
margin-top: $linkGap;
grid-column: 1/4;
@@ -27,13 +52,13 @@ $linkGap : 3px;
flex-direction: row;
}
-.linkButtonWrapper {
+.documentButtonBar-button {
pointer-events: auto;
padding-right: 5px;
width: 25px;
}
-.linkButton-linker {
+.documentButtonBar-linker {
height: 20px;
width: 20px;
text-align: center;
@@ -41,89 +66,40 @@ $linkGap : 3px;
pointer-events: auto;
color: $dark-color;
border: $dark-color 1px solid;
+ transition: 0.2s ease all;
}
-.linkButton-linker:hover {
+.documentButtonBar-linker:hover {
cursor: pointer;
transform: scale(1.05);
}
-.linkButton-empty,
-.linkButton-nonempty {
- height: 20px;
- width: 20px;
- border-radius: 50%;
- opacity: 0.9;
- pointer-events: auto;
- background-color: $dark-color;
- color: $light-color;
- text-transform: uppercase;
- letter-spacing: 2px;
- font-size: 75%;
- transition: transform 0.2s;
- text-align: center;
- display: flex;
- justify-content: center;
- align-items: center;
- &:hover {
- background: $main-accent;
- transform: scale(1.05);
- cursor: pointer;
+@-moz-keyframes spin {
+ 100% {
+ -moz-transform: rotate(360deg);
}
}
-.templating-menu {
- position: absolute;
- pointer-events: auto;
- text-transform: uppercase;
- letter-spacing: 2px;
- font-size: 75%;
- transition: transform 0.2s;
- text-align: center;
- display: flex;
- justify-content: center;
- align-items: center;
+@-webkit-keyframes spin {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ }
}
-.templating-button,
-.docDecs-tagButton {
- width: 20px;
- height: 20px;
- border-radius: 50%;
- opacity: 0.9;
- font-size: 14;
- background-color: $dark-color;
- color: $light-color;
- text-align: center;
- cursor: pointer;
-
- &:hover {
- background: $main-accent;
- transform: scale(1.05);
+@keyframes spin {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
}
}
-#template-list {
- position: absolute;
- top: 25px;
- left: 0px;
- width: max-content;
- font-family: $sans-serif;
- font-size: 12px;
- background-color: $light-color-secondary;
- padding: 2px 12px;
- list-style: none;
-
- .templateToggle, .chromeToggle {
- text-align: left;
+@keyframes shadow-pulse {
+ 0% {
+ box-shadow: 0 0 0 0px rgba(0, 0, 0, 0.8);
}
- input {
- margin-right: 10px;
+ 100% {
+ box-shadow: 0 0 0 10px rgba(0, 255, 0, 0);
}
-}
-
-@-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
-@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
-@keyframes spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } \ No newline at end of file
+} \ No newline at end of file
diff --git a/src/client/views/DocumentButtonBar.tsx b/src/client/views/DocumentButtonBar.tsx
index 1412316f9..65d1ade2a 100644
--- a/src/client/views/DocumentButtonBar.tsx
+++ b/src/client/views/DocumentButtonBar.tsx
@@ -1,27 +1,28 @@
import { IconProp, library } from '@fortawesome/fontawesome-svg-core';
import { faArrowAltCircleDown, faArrowAltCircleUp, faCheckCircle, faCloudUploadAlt, faLink, faShare, faStopCircle, faSyncAlt, faTag, faTimes } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { action, observable, runInAction } from "mobx";
+import { action, computed, observable, runInAction } from "mobx";
import { observer } from "mobx-react";
-import { Doc } from "../../new_fields/Doc";
+import { Doc, DocListCast } from "../../new_fields/Doc";
+import { Id } from '../../new_fields/FieldSymbols';
import { RichTextField } from '../../new_fields/RichTextField';
import { NumCast, StrCast } from "../../new_fields/Types";
import { emptyFunction } from "../../Utils";
import { Pulls, Pushes } from '../apis/google_docs/GoogleApiClientUtils';
-import { DragLinksAsDocuments, DragManager } from "../util/DragManager";
-import { LinkManager } from '../util/LinkManager';
+import RichTextMenu from '../util/RichTextMenu';
import { UndoManager } from "../util/UndoManager";
-import './DocumentButtonBar.scss';
+import { CollectionDockingView } from './collections/CollectionDockingView';
+import { ParentDocSelector } from './collections/ParentDocumentSelector';
import './collections/ParentDocumentSelector.scss';
+import './DocumentButtonBar.scss';
import { LinkMenu } from "./linking/LinkMenu";
-import { MetadataEntryMenu } from './MetadataEntryMenu';
-import { FormattedTextBox, GoogleRef } from "./nodes/FormattedTextBox";
+import { DocumentView } from './nodes/DocumentView';
+import { GoogleRef } from "./nodes/FormattedTextBox";
import { TemplateMenu } from "./TemplateMenu";
import { Template, Templates } from "./Templates";
import React = require("react");
-import { DocumentView } from './nodes/DocumentView';
-import { ParentDocSelector } from './collections/ParentDocumentSelector';
-import { CollectionDockingView } from './collections/CollectionDockingView';
+import { DragManager } from '../util/DragManager';
+import { MetadataEntryMenu } from './MetadataEntryMenu';
const higflyout = require("@hig/flyout");
export const { anchorPoints } = higflyout;
export const Flyout = higflyout.default;
@@ -41,55 +42,59 @@ const cloud: IconProp = "cloud-upload-alt";
const fetch: IconProp = "sync-alt";
@observer
-export class DocumentButtonBar extends React.Component<{ views: DocumentView[], stack?: any }, {}> {
+export class DocumentButtonBar extends React.Component<{ views: (DocumentView | undefined)[], stack?: any }, {}> {
private _linkButton = React.createRef<HTMLDivElement>();
- private _linkerButton = React.createRef<HTMLDivElement>();
- private _aliasButton = React.createRef<HTMLDivElement>();
- private _tooltipoff = React.createRef<HTMLDivElement>();
- private _textDoc?: Doc;
- public static Instance: DocumentButtonBar;
+ private _dragRef = React.createRef<HTMLDivElement>();
+ private _downX = 0;
+ private _downY = 0;
+ private _pullAnimating = false;
+ private _pushAnimating = false;
+ private _pullColorAnimating = false;
+
+ @observable private pushIcon: IconProp = "arrow-alt-circle-up";
+ @observable private pullIcon: IconProp = "arrow-alt-circle-down";
+ @observable private pullColor: string = "white";
+ @observable public isAnimatingFetch = false;
+ @observable public isAnimatingPulse = false;
- constructor(props: { views: DocumentView[] }) {
- super(props);
- DocumentButtonBar.Instance = this;
- }
+ @observable private openHover = false;
- @observable public pushIcon: IconProp = "arrow-alt-circle-up";
- @observable public pullIcon: IconProp = "arrow-alt-circle-down";
- @observable public pullColor: string = "white";
- @observable public isAnimatingFetch = false;
- @observable public openHover = false;
- public pullColorAnimating = false;
+ @observable public static Instance: DocumentButtonBar;
+ public static hasPushedHack = false;
+ public static hasPulledHack = false;
- private pullAnimating = false;
- private pushAnimating = false;
+ constructor(props: { views: (DocumentView | undefined)[] }) {
+ super(props);
+ runInAction(() => DocumentButtonBar.Instance = this);
+ }
public startPullOutcome = action((success: boolean) => {
- if (!this.pullAnimating) {
- this.pullAnimating = true;
+ if (!this._pullAnimating) {
+ this._pullAnimating = true;
this.pullIcon = success ? "check-circle" : "stop-circle";
setTimeout(() => runInAction(() => {
this.pullIcon = "arrow-alt-circle-down";
- this.pullAnimating = false;
+ this._pullAnimating = false;
}), 1000);
}
});
public startPushOutcome = action((success: boolean) => {
- if (!this.pushAnimating) {
- this.pushAnimating = true;
+ this.isAnimatingPulse = false;
+ if (!this._pushAnimating) {
+ this._pushAnimating = true;
this.pushIcon = success ? "check-circle" : "stop-circle";
setTimeout(() => runInAction(() => {
this.pushIcon = "arrow-alt-circle-up";
- this.pushAnimating = false;
+ this._pushAnimating = false;
}), 1000);
}
});
public setPullState = action((unchanged: boolean) => {
this.isAnimatingFetch = false;
- if (!this.pullColorAnimating) {
- this.pullColorAnimating = true;
+ if (!this._pullColorAnimating) {
+ this._pullColorAnimating = true;
this.pullColor = unchanged ? "lawngreen" : "red";
setTimeout(this.clearPullColor, 1000);
}
@@ -97,65 +102,32 @@ export class DocumentButtonBar extends React.Component<{ views: DocumentView[],
private clearPullColor = action(() => {
this.pullColor = "white";
- this.pullColorAnimating = false;
+ this._pullColorAnimating = false;
});
- onLinkerButtonDown = (e: React.PointerEvent): void => {
- e.stopPropagation();
- e.preventDefault();
- document.removeEventListener("pointermove", this.onLinkerButtonMoved);
- document.addEventListener("pointermove", this.onLinkerButtonMoved);
- document.removeEventListener("pointerup", this.onLinkerButtonUp);
- document.addEventListener("pointerup", this.onLinkerButtonUp);
- }
-
- onAliasButtonDown = (e: React.PointerEvent): void => {
- e.stopPropagation();
- e.preventDefault();
- document.removeEventListener("pointermove", this.onAliasButtonMoved);
- document.addEventListener("pointermove", this.onAliasButtonMoved);
- document.removeEventListener("pointerup", this.onAliasButtonUp);
- document.addEventListener("pointerup", this.onAliasButtonUp);
- }
-
- onLinkerButtonUp = (e: PointerEvent): void => {
- document.removeEventListener("pointermove", this.onLinkerButtonMoved);
- document.removeEventListener("pointerup", this.onLinkerButtonUp);
- e.stopPropagation();
- }
-
- onAliasButtonUp = (e: PointerEvent): void => {
- document.removeEventListener("pointermove", this.onAliasButtonMoved);
- document.removeEventListener("pointerup", this.onAliasButtonUp);
- e.stopPropagation();
- }
+ get view0() { return this.props.views && this.props.views.length ? this.props.views[0] : undefined; }
@action
- onLinkerButtonMoved = (e: PointerEvent): void => {
- if (this._linkerButton.current !== null) {
- document.removeEventListener("pointermove", this.onLinkerButtonMoved);
- document.removeEventListener("pointerup", this.onLinkerButtonUp);
- let docView = this.props.views[0];
- let container = docView.props.ContainingCollectionDoc ? docView.props.ContainingCollectionDoc.proto : undefined;
- let dragData = new DragManager.LinkDragData(docView.props.Document, container ? [container] : []);
- let linkDrag = UndoManager.StartBatch("Drag Link");
- DragManager.StartLinkDrag(this._linkerButton.current, dragData, e.pageX, e.pageY, {
- handlers: {
- dragComplete: () => {
- let tooltipmenu = FormattedTextBox.ToolTipTextMenu;
- let linkDoc = dragData.linkDocument;
- if (linkDoc && tooltipmenu) {
- let proto = Doc.GetProto(linkDoc);
- if (proto && docView) {
- proto.sourceContext = docView.props.ContainingCollectionDoc;
- }
- let text = tooltipmenu.makeLink(linkDoc, StrCast(linkDoc.anchor2.title), e.ctrlKey ? "onRight" : "inTab");
- if (linkDoc instanceof Doc && linkDoc.anchor2 instanceof Doc) {
- proto.title = text === "" ? proto.title : text + " to " + linkDoc.anchor2.title; // TODODO open to more descriptive descriptions of following in text link
- }
+ onLinkButtonMoved = (e: PointerEvent): void => {
+ if (this._linkButton.current !== null && (Math.abs(e.clientX - this._downX) > 3 || Math.abs(e.clientY - this._downY) > 3)) {
+ document.removeEventListener("pointermove", this.onLinkButtonMoved);
+ document.removeEventListener("pointerup", this.onLinkButtonUp);
+ const linkDrag = UndoManager.StartBatch("Drag Link");
+ this.view0 && DragManager.StartLinkDrag(this._linkButton.current, this.view0.props.Document, e.pageX, e.pageY, {
+ dragComplete: dropEv => {
+ const linkDoc = dropEv.linkDragData?.linkDocument as Doc; // equivalent to !dropEve.aborted since linkDocument is only assigned on a completed drop
+ if (this.view0 && linkDoc) {
+ const proto = Doc.GetProto(linkDoc);
+ proto.sourceContext = this.view0.props.ContainingCollectionDoc;
+
+ const anchor2Title = linkDoc.anchor2 instanceof Doc ? StrCast(linkDoc.anchor2.title) : "-untitled-";
+ const anchor2Id = linkDoc.anchor2 instanceof Doc ? linkDoc.anchor2[Id] : "";
+ const text = RichTextMenu.Instance.MakeLinkToSelection(linkDoc[Id], anchor2Title, e.ctrlKey ? "onRight" : "inTab", anchor2Id);
+ if (linkDoc.anchor2 instanceof Doc) {
+ proto.title = text === "" ? proto.title : text + " to " + linkDoc.anchor2.title; // TODO open to more descriptive descriptions of following in text link
}
- linkDrag && linkDrag.end();
}
+ linkDrag?.end();
},
hideSource: false
});
@@ -163,37 +135,15 @@ export class DocumentButtonBar extends React.Component<{ views: DocumentView[],
e.stopPropagation();
}
- @action
- onAliasButtonMoved = (e: PointerEvent): void => {
- if (this._aliasButton.current !== null) {
- document.removeEventListener("pointermove", this.onAliasButtonMoved);
- document.removeEventListener("pointerup", this.onAliasButtonUp);
-
- let dragDocView = this.props.views[0];
- let dragData = new DragManager.DocumentDragData([dragDocView.props.Document]);
- const [left, top] = dragDocView.props.ScreenToLocalTransform().scale(dragDocView.props.ContentScaling()).inverse().transformPoint(0, 0);
- dragData.offset = dragDocView.props.ScreenToLocalTransform().scale(dragDocView.props.ContentScaling()).transformDirection(e.clientX - left, e.clientY - top);
- dragData.embedDoc = true;
- dragData.dropAction = "alias";
- DragManager.StartDocumentDrag([dragDocView.ContentDiv!], dragData, e.x, e.y, {
- offsetX: dragData.offset[0],
- offsetY: dragData.offset[1],
- handlers: {
- dragComplete: action(emptyFunction),
- },
- hideSource: false
- });
- }
- e.stopPropagation();
- }
onLinkButtonDown = (e: React.PointerEvent): void => {
- e.stopPropagation();
- e.preventDefault();
+ this._downX = e.clientX;
+ this._downY = e.clientY;
document.removeEventListener("pointermove", this.onLinkButtonMoved);
document.addEventListener("pointermove", this.onLinkButtonMoved);
document.removeEventListener("pointerup", this.onLinkButtonUp);
document.addEventListener("pointerup", this.onLinkButtonUp);
+ e.stopPropagation();
}
onLinkButtonUp = (e: PointerEvent): void => {
@@ -202,173 +152,167 @@ export class DocumentButtonBar extends React.Component<{ views: DocumentView[],
e.stopPropagation();
}
- onLinkButtonMoved = async (e: PointerEvent) => {
- if (this._linkButton.current !== null && (e.movementX > 1 || e.movementY > 1)) {
- document.removeEventListener("pointermove", this.onLinkButtonMoved);
- document.removeEventListener("pointerup", this.onLinkButtonUp);
- DragLinksAsDocuments(this._linkButton.current, e.x, e.y, this.props.views[0].props.Document);
- }
- e.stopPropagation();
- }
-
- aliasDragger = () => {
- return (<div className="linkButtonWrapper">
- <div title="Drag Alias" className="linkButton-linker" ref={this._aliasButton} onPointerDown={this.onAliasButtonDown}>
- <FontAwesomeIcon className="documentdecorations-icon" icon="image" size="sm" />
- </div>
- </div>);
+ @computed
+ get considerGoogleDocsPush() {
+ const targetDoc = this.view0?.props.Document;
+ const published = targetDoc && Doc.GetProto(targetDoc)[GoogleRef] !== undefined;
+ const animation = this.isAnimatingPulse ? "shadow-pulse 1s linear infinite" : "none";
+ return !targetDoc ? (null) : <div
+ title={`${published ? "Push" : "Publish"} to Google Docs`}
+ className="documentButtonBar-linker"
+ style={{ animation }}
+ onClick={() => {
+ !published && runInAction(() => this.isAnimatingPulse = true);
+ DocumentButtonBar.hasPushedHack = false;
+ targetDoc[Pushes] = NumCast(targetDoc[Pushes]) + 1;
+ }}>
+ <FontAwesomeIcon className="documentdecorations-icon" icon={published ? (this.pushIcon as any) : cloud} size={published ? "sm" : "xs"} />
+ </div>;
}
- private get targetDoc() {
- return this.props.views[0].props.Document;
+ @computed
+ get considerGoogleDocsPull() {
+ const targetDoc = this.view0?.props.Document;
+ const dataDoc = targetDoc && Doc.GetProto(targetDoc);
+ const animation = this.isAnimatingFetch ? "spin 0.5s linear infinite" : "none";
+ return !targetDoc || !dataDoc || !dataDoc[GoogleRef] ? (null) : <div className="documentButtonBar-linker"
+ title={`${!dataDoc.unchanged ? "Pull from" : "Fetch"} Google Docs`}
+ style={{ backgroundColor: this.pullColor }}
+ onPointerEnter={e => e.altKey && runInAction(() => this.openHover = true)}
+ onPointerLeave={action(() => this.openHover = false)}
+ onClick={e => {
+ if (e.altKey) {
+ e.preventDefault();
+ window.open(`https://docs.google.com/document/d/${dataDoc[GoogleRef]}/edit`);
+ } else {
+ this.clearPullColor();
+ DocumentButtonBar.hasPulledHack = false;
+ targetDoc[Pulls] = NumCast(targetDoc[Pulls]) + 1;
+ dataDoc.unchanged && runInAction(() => this.isAnimatingFetch = true);
+ }
+ }}>
+ <FontAwesomeIcon className="documentdecorations-icon" size="sm"
+ style={{ WebkitAnimation: animation, MozAnimation: animation }}
+ icon={this.openHover ? "share" : dataDoc.unchanged === false ? (this.pullIcon as any) : fetch}
+ />
+ </div>;
}
- considerGoogleDocsPush = () => {
- let canPush = this.targetDoc.data && this.targetDoc.data instanceof RichTextField;
- if (!canPush) return (null);
- let published = Doc.GetProto(this.targetDoc)[GoogleRef] !== undefined;
- let icon: IconProp = published ? (this.pushIcon as any) : cloud;
- return (
- <div className={"linkButtonWrapper"}>
- <div title={`${published ? "Push" : "Publish"} to Google Docs`} className="linkButton-linker" onClick={() => {
- DocumentButtonBar.hasPushedHack = false;
- this.targetDoc[Pushes] = NumCast(this.targetDoc[Pushes]) + 1;
- }}>
- <FontAwesomeIcon className="documentdecorations-icon" icon={icon} size={published ? "sm" : "xs"} />
+ @computed
+ get linkButton() {
+ const view0 = this.view0;
+ const linkCount = view0 && DocListCast(view0.props.Document.links).length;
+ return !view0 ? (null) : <div title="Drag(create link) Tap(view links)" className="documentButtonBar-linkFlyout" ref={this._linkButton}>
+ <Flyout anchorPoint={anchorPoints.LEFT_TOP}
+ content={<LinkMenu docView={view0} addDocTab={view0.props.addDocTab} changeFlyout={emptyFunction} />}>
+ <div className={"documentButtonBar-linkButton-" + (linkCount ? "nonempty" : "empty")} onPointerDown={this.onLinkButtonDown} >
+ {linkCount ? linkCount : <FontAwesomeIcon className="documentdecorations-icon" icon="link" size="sm" />}
</div>
- </div>
- );
+ </Flyout>
+ </div>;
}
- considerGoogleDocsPull = () => {
- let canPull = this.targetDoc.data && this.targetDoc.data instanceof RichTextField;
- let dataDoc = Doc.GetProto(this.targetDoc);
- if (!canPull || !dataDoc[GoogleRef]) return (null);
- let icon = dataDoc.unchanged === false ? (this.pullIcon as any) : fetch;
- icon = this.openHover ? "share" : icon;
- let animation = this.isAnimatingFetch ? "spin 0.5s linear infinite" : "none";
- let title = `${!dataDoc.unchanged ? "Pull from" : "Fetch"} Google Docs`;
- return (
- <div className={"linkButtonWrapper"}>
- <div
- title={title}
- className="linkButton-linker"
- style={{
- backgroundColor: this.pullColor,
- transition: "0.2s ease all"
- }}
- onPointerEnter={e => e.altKey && runInAction(() => this.openHover = true)}
- onPointerLeave={() => runInAction(() => this.openHover = false)}
- onClick={e => {
- if (e.altKey) {
- e.preventDefault();
- window.open(`https://docs.google.com/document/d/${dataDoc[GoogleRef]}/edit`);
- } else {
- this.clearPullColor();
- DocumentButtonBar.hasPulledHack = false;
- this.targetDoc[Pulls] = NumCast(this.targetDoc[Pulls]) + 1;
- dataDoc.unchanged && runInAction(() => this.isAnimatingFetch = true);
- }
- }}>
- <FontAwesomeIcon
- style={{
- WebkitAnimation: animation,
- MozAnimation: animation
- }}
- className="documentdecorations-icon"
- icon={icon}
- size="sm"
- />
+ @computed
+ get metadataButton() {
+ const view0 = this.view0;
+ return !view0 ? (null) : <div title="Show metadata panel" className="documentButtonBar-linkFlyout" ref={this._linkButton}>
+ <Flyout anchorPoint={anchorPoints.LEFT_TOP}
+ content={<MetadataEntryMenu docs={() => this.props.views.filter(dv => dv).map(dv => dv!.props.Document)} suggestWithFunction /> /* tfs: @bcz This might need to be the data document? */}>
+ <div className={"documentButtonBar-linkButton-" + "empty"} >
+ {<FontAwesomeIcon className="documentdecorations-icon" icon="tag" size="sm" />}
</div>
- </div>
- );
+ </Flyout>
+ </div>;
}
- public static hasPushedHack = false;
- public static hasPulledHack = false;
-
- considerTooltip = () => {
- let thisDoc = this.props.views[0].props.Document;
- let isTextDoc = thisDoc.data && thisDoc.data instanceof RichTextField;
- if (!isTextDoc) return null;
- this._textDoc = thisDoc;
- return (
- <div className="tooltipwrapper">
- <div title="Hide Tooltip" className="linkButton-linker" ref={this._tooltipoff} onPointerDown={this.onTooltipOff}>
- {/* <FontAwesomeIcon className="fa-image" icon="image" size="sm" /> */}
- </div>
- </div>
-
- );
+ @computed
+ get contextButton() {
+ return !this.view0 ? (null) : <ParentDocSelector Views={this.props.views.filter(v => v).map(v => v as DocumentView)} Document={this.view0.props.Document} addDocTab={(doc, data, where) => {
+ where === "onRight" ? CollectionDockingView.AddRightSplit(doc, data) :
+ this.props.stack ? CollectionDockingView.Instance.AddTab(this.props.stack, doc, data) :
+ this.view0?.props.addDocTab(doc, data, "onRight");
+ return true;
+ }} />;
}
- onTooltipOff = (e: React.PointerEvent): void => {
+ private _downx = 0;
+ private _downy = 0;
+ onAliasButtonUp = (e: PointerEvent): void => {
+ document.removeEventListener("pointermove", this.onAliasButtonMoved);
+ document.removeEventListener("pointerup", this.onAliasButtonUp);
e.stopPropagation();
- if (this._textDoc) {
- if (this._tooltipoff.current) {
- if (this._tooltipoff.current.title === "Hide Tooltip") {
- this._tooltipoff.current.title = "Show Tooltip";
- this._textDoc.tooltip = "hi";
- }
- else {
- this._tooltipoff.current.title = "Hide Tooltip";
- }
- }
- }
}
- get metadataMenu() {
- return (
- <div className="linkButtonWrapper">
- <Flyout anchorPoint={anchorPoints.TOP_LEFT}
- content={<MetadataEntryMenu docs={() => this.props.views.map(dv => dv.props.Document)} suggestWithFunction />}>{/* tfs: @bcz This might need to be the data document? */}
- <div className="docDecs-tagButton" title="Add fields"><FontAwesomeIcon className="documentdecorations-icon" icon="tag" size="sm" /></div>
- </Flyout>
- </div>
- );
+ onAliasButtonDown = (e: React.PointerEvent): void => {
+ this._downx = e.clientX;
+ this._downy = e.clientY;
+ e.stopPropagation();
+ e.preventDefault();
+ document.removeEventListener("pointermove", this.onAliasButtonMoved);
+ document.addEventListener("pointermove", this.onAliasButtonMoved);
+ document.removeEventListener("pointerup", this.onAliasButtonUp);
+ document.addEventListener("pointerup", this.onAliasButtonUp);
}
+ onAliasButtonMoved = (e: PointerEvent): void => {
+ if (this._dragRef.current !== null && (Math.abs(e.clientX - this._downx) > 4 || Math.abs(e.clientY - this._downy) > 4)) {
+ document.removeEventListener("pointermove", this.onAliasButtonMoved);
+ document.removeEventListener("pointerup", this.onAliasButtonUp);
- render() {
- let linkButton = null;
- if (this.props.views.length > 0) {
- let selFirst = this.props.views[0];
-
- let linkCount = LinkManager.Instance.getAllRelatedLinks(selFirst.props.Document).length;
- linkButton = (<Flyout
- anchorPoint={anchorPoints.RIGHT_TOP}
- content={<LinkMenu docView={selFirst}
- addDocTab={selFirst.props.addDocTab}
- changeFlyout={emptyFunction} />}>
- <div className={"linkButton-" + (linkCount ? "nonempty" : "empty")} onPointerDown={this.onLinkButtonDown} >{linkCount}</div>
- </Flyout >);
+ const dragDocView = this.props.views[0]!;
+ const dragData = new DragManager.DocumentDragData([dragDocView.props.Document]);
+ const [left, top] = dragDocView.props.ScreenToLocalTransform().inverse().transformPoint(0, 0);
+ dragData.embedDoc = true;
+ dragData.dropAction = "alias";
+ DragManager.StartDocumentDrag([dragDocView.ContentDiv!], dragData, left, top, {
+ offsetX: dragData.offset[0],
+ offsetY: dragData.offset[1],
+ hideSource: false
+ });
}
+ e.stopPropagation();
+ }
- let templates: Map<Template, boolean> = new Map();
+ @computed
+ get templateButton() {
+ const view0 = this.view0;
+ const templates: Map<Template, boolean> = new Map();
Array.from(Object.values(Templates.TemplateList)).map(template =>
- templates.set(template, this.props.views.reduce((checked, doc) => checked || doc.getLayoutPropStr("show" + template.Name) ? true : false, false as boolean)));
+ templates.set(template, this.props.views.reduce((checked, doc) => checked || doc?.getLayoutPropStr("show" + template.Name) ? true : false, false as boolean)));
+ return !view0 ? (null) : <div title="Customize layout" className="documentButtonBar-linkFlyout" ref={this._dragRef}>
+ <Flyout anchorPoint={anchorPoints.LEFT_TOP}
+ content={<TemplateMenu docViews={this.props.views.filter(v => v).map(v => v as DocumentView)} templates={templates} />}>
+ <div className={"documentButtonBar-linkButton-" + "empty"} ref={this._dragRef} onPointerDown={this.onAliasButtonDown} >
+ {<FontAwesomeIcon className="documentdecorations-icon" icon="edit" size="sm" />}
+ </div>
+ </Flyout>
+ </div>;
+ }
- return (<div className="documentButtonBar">
- <div className="linkButtonWrapper">
- <div title="View Links" className="linkFlyout" ref={this._linkButton}> {linkButton} </div>
+ render() {
+ if (!this.view0) return (null);
+
+ const isText = this.view0.props.Document.data instanceof RichTextField; // bcz: Todo - can't assume layout is using the 'data' field. need to add fieldKey to DocumentView
+ const considerPull = isText && this.considerGoogleDocsPull;
+ const considerPush = isText && this.considerGoogleDocsPush;
+ return <div className="documentButtonBar">
+ <div className="documentButtonBar-button">
+ {this.linkButton}
</div>
- <div className="linkButtonWrapper">
- <div title="Drag Link" className="linkButton-linker" ref={this._linkerButton} onPointerDown={this.onLinkerButtonDown}>
- <FontAwesomeIcon className="documentdecorations-icon" icon="link" size="sm" />
- </div>
+ <div className="documentButtonBar-button">
+ {this.templateButton}
+ </div>
+ <div className="documentButtonBar-button">
+ {this.metadataButton}
+ </div>
+ <div className="documentButtonBar-button">
+ {this.contextButton}
+ </div>
+ <div className="documentButtonBar-button" style={{ display: !considerPush ? "none" : "" }}>
+ {this.considerGoogleDocsPush}
</div>
- <div className="linkButtonWrapper">
- <TemplateMenu docs={this.props.views} templates={templates} />
+ <div className="documentButtonBar-button" style={{ display: !considerPull ? "none" : "" }}>
+ {this.considerGoogleDocsPull}
</div>
- {this.metadataMenu}
- {this.aliasDragger()}
- {this.considerGoogleDocsPush()}
- {this.considerGoogleDocsPull()}
- <ParentDocSelector Document={this.props.views[0].props.Document} addDocTab={(doc, data, where) => {
- where === "onRight" ? CollectionDockingView.AddRightSplit(doc, data) : this.props.stack ? CollectionDockingView.Instance.AddTab(this.props.stack, doc, data) : this.props.views[0].props.addDocTab(doc, data, "onRight");
- return true;
- }} />
- {/* {this.considerTooltip()} */}
- </div>
- );
+ </div>;
}
} \ No newline at end of file
diff --git a/src/client/views/DocumentDecorations.tsx b/src/client/views/DocumentDecorations.tsx
index 890c32bcb..c5034b901 100644
--- a/src/client/views/DocumentDecorations.tsx
+++ b/src/client/views/DocumentDecorations.tsx
@@ -1,30 +1,25 @@
import { IconProp, library } from '@fortawesome/fontawesome-svg-core';
import { faArrowAltCircleDown, faArrowAltCircleUp, faCheckCircle, faCloudUploadAlt, faLink, faShare, faStopCircle, faSyncAlt, faTag, faTimes } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { action, computed, observable, reaction, runInAction } from "mobx";
+import { action, computed, observable, reaction } from "mobx";
import { observer } from "mobx-react";
-import { Doc, DocListCastAsync } from "../../new_fields/Doc";
+import { Doc } from "../../new_fields/Doc";
import { PositionDocument } from '../../new_fields/documentSchemas';
-import { List } from "../../new_fields/List";
import { ObjectField } from '../../new_fields/ObjectField';
-import { Cast, NumCast, StrCast } from "../../new_fields/Types";
+import { ScriptField } from '../../new_fields/ScriptField';
+import { Cast, StrCast } from "../../new_fields/Types";
import { CurrentUserUtils } from '../../server/authentication/models/current_user_utils';
import { Utils } from "../../Utils";
-import { Docs, DocUtils } from "../documents/Documents";
-import { DocumentManager } from "../util/DocumentManager";
+import { DocUtils } from "../documents/Documents";
+import { DocumentType } from '../documents/DocumentTypes';
import { DragManager } from "../util/DragManager";
import { SelectionManager } from "../util/SelectionManager";
-import { TooltipTextMenu } from '../util/TooltipTextMenu';
import { undoBatch, UndoManager } from "../util/UndoManager";
-import { MINIMIZED_ICON_SIZE } from "../views/globalCssVariables.scss";
-import { CollectionView } from "./collections/CollectionView";
import { DocumentButtonBar } from './DocumentButtonBar';
import './DocumentDecorations.scss';
import { DocumentView } from "./nodes/DocumentView";
-import { FieldView } from "./nodes/FieldView";
import { IconBox } from "./nodes/IconBox";
import React = require("react");
-import { DocumentType } from '../documents/DocumentTypes';
const higflyout = require("@hig/flyout");
export const { anchorPoints } = higflyout;
export const Flyout = higflyout.default;
@@ -51,55 +46,61 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
private _titleHeight = 20;
private _downX = 0;
private _downY = 0;
- private _iconDoc?: Doc = undefined;
private _resizeUndo?: UndoManager.Batch;
private _radiusDown = [0, 0];
- @observable private _minimizedX = 0;
- @observable private _minimizedY = 0;
- @observable private _title: string = "";
+ @observable private _accumulatedTitle = "";
+ @observable private _titleControlString: string = "#title";
@observable private _edtingTitle = false;
- @observable private _fieldKey = "title";
@observable private _hidden = false;
@observable private _opacity = 1;
- @observable private _removeIcon = false;
@observable public Interacting = false;
@observable public pushIcon: IconProp = "arrow-alt-circle-up";
@observable public pullIcon: IconProp = "arrow-alt-circle-down";
@observable public pullColor: string = "white";
- @observable public isAnimatingFetch = false;
- @observable public isAnimatingPulse = false;
@observable public openHover = false;
constructor(props: Readonly<{}>) {
super(props);
DocumentDecorations.Instance = this;
this._keyinput = React.createRef();
- reaction(() => SelectionManager.SelectedDocuments().slice(), docs => this._edtingTitle = false);
+ reaction(() => SelectionManager.SelectedDocuments().slice(), docs => this.titleBlur(false));
}
- @action titleChanged = (event: any) => { this._title = event.target.value; };
- @action titleBlur = () => { this._edtingTitle = false; };
+ @action titleChanged = (event: any) => this._accumulatedTitle = event.target.value;
+
+ titleBlur = undoBatch(action((commit: boolean) => {
+ this._edtingTitle = false;
+ if (commit) {
+ if (this._accumulatedTitle.startsWith("#") || this._accumulatedTitle.startsWith("=")) {
+ this._titleControlString = this._accumulatedTitle;
+ } else if (this._titleControlString.startsWith("#")) {
+ const selectionTitleFieldKey = this._titleControlString.substring(1);
+ selectionTitleFieldKey === "title" && (SelectionManager.SelectedDocuments()[0].props.Document.customTitle = !this._accumulatedTitle.startsWith("-"));
+ selectionTitleFieldKey && SelectionManager.SelectedDocuments().forEach(d =>
+ Doc.SetInPlace(d.props.Document, selectionTitleFieldKey, typeof d.props.Document[selectionTitleFieldKey] === "number" ? +this._accumulatedTitle : this._accumulatedTitle, true)
+ );
+ }
+ }
+ }));
+
@action titleEntered = (e: any) => {
- var key = e.keyCode || e.which;
+ const key = e.keyCode || e.which;
// enter pressed
if (key === 13) {
- var text = e.target.value;
- if (text[0] === '#') {
- this._fieldKey = text.slice(1, text.length);
- this._title = this.selectionTitle;
- } else if (text.startsWith("::")) {
- let targetID = text.slice(2, text.length);
- let promoteDoc = SelectionManager.SelectedDocuments()[0];
+ const text = e.target.value;
+ if (text.startsWith("::")) {
+ const targetID = text.slice(2, text.length);
+ const promoteDoc = SelectionManager.SelectedDocuments()[0];
DocUtils.Publish(promoteDoc.props.Document, targetID, promoteDoc.props.addDocument, promoteDoc.props.removeDocument);
} else if (text.startsWith(">")) {
- let fieldTemplateView = SelectionManager.SelectedDocuments()[0];
+ const fieldTemplateView = SelectionManager.SelectedDocuments()[0];
SelectionManager.DeselectAll();
- let fieldTemplate = fieldTemplateView.props.Document;
- let containerView = fieldTemplateView.props.ContainingCollectionView;
- let docTemplate = fieldTemplateView.props.ContainingCollectionDoc;
+ const fieldTemplate = fieldTemplateView.props.Document;
+ const containerView = fieldTemplateView.props.ContainingCollectionView;
+ const docTemplate = fieldTemplateView.props.ContainingCollectionDoc;
if (containerView && docTemplate) {
- let metaKey = text.startsWith(">>") ? text.slice(2, text.length) : text.slice(1, text.length);
+ const metaKey = text.startsWith(">>") ? text.slice(2, text.length) : text.slice(1, text.length);
if (metaKey !== containerView.props.fieldKey && containerView.props.DataDoc) {
const fd = fieldTemplate.data;
fd instanceof ObjectField && (Doc.GetProto(containerView.props.DataDoc)[metaKey] = ObjectField.MakeCopy(fd));
@@ -107,24 +108,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
fieldTemplate.title = metaKey;
Doc.MakeMetadataFieldTemplate(fieldTemplate, Doc.GetProto(docTemplate));
if (text.startsWith(">>")) {
- Doc.GetProto(docTemplate).layout = StrCast(fieldTemplateView.props.Document.layout).replace(/fieldKey={"[^"]*"}/, `fieldKey={"${metaKey}"}`);
- }
- }
- }
- else {
- if (SelectionManager.SelectedDocuments().length > 0) {
- SelectionManager.SelectedDocuments()[0].props.Document.customTitle = !this._title.startsWith("-");
- let field = SelectionManager.SelectedDocuments()[0].props.Document[this._fieldKey];
- if (typeof field === "number") {
- SelectionManager.SelectedDocuments().forEach(d => {
- let doc = d.props.Document.proto ? d.props.Document.proto : d.props.Document;
- doc[this._fieldKey] = +this._title;
- });
- } else {
- SelectionManager.SelectedDocuments().forEach(d => {
- let doc = d.props.Document.proto ? d.props.Document.proto : d.props.Document;
- doc[this._fieldKey] = this._title;
- });
+ Doc.GetProto(docTemplate).layout = StrCast(fieldTemplateView.props.Document.layout).replace(/fieldKey={'[^']*'}/, `fieldKey={"${metaKey}"}`);
}
}
}
@@ -149,8 +133,9 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
}
@action onTitleUp = (e: PointerEvent): void => {
if (Math.abs(e.clientX - this._downX) < 4 || Math.abs(e.clientY - this._downY) < 4) {
- this._title = this.selectionTitle;
+ !this._edtingTitle && (this._accumulatedTitle = this._titleControlString.startsWith("#") ? this.selectionTitle : this._titleControlString);
this._edtingTitle = true;
+ setTimeout(() => this._keyinput.current!.focus(), 0);
}
document.removeEventListener("pointermove", this.onTitleMove);
document.removeEventListener("pointerup", this.onTitleUp);
@@ -164,11 +149,11 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
Doc.AreProtosEqual(documentView.props.Document, CurrentUserUtils.UserDocument)) {
return bounds;
}
- let transform = (documentView.props.ScreenToLocalTransform().scale(documentView.props.ContentScaling())).inverse();
+ const transform = (documentView.props.ScreenToLocalTransform().scale(documentView.props.ContentScaling())).inverse();
var [sptX, sptY] = transform.transformPoint(0, 0);
let [bptX, bptY] = transform.transformPoint(documentView.props.PanelWidth(), documentView.props.PanelHeight());
if (documentView.props.Document.type === DocumentType.LINK) {
- let rect = documentView.ContentDiv!.getElementsByClassName("docuLinkBox-cont")[0].getBoundingClientRect();
+ const rect = documentView.ContentDiv!.getElementsByClassName("docuLinkBox-cont")[0].getBoundingClientRect();
sptX = rect.left;
sptY = rect.top;
bptX = rect.right;
@@ -191,8 +176,8 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
@action
onBackgroundMove = (e: PointerEvent): void => {
- let dragDocView = SelectionManager.SelectedDocuments()[0];
- let dragData = new DragManager.DocumentDragData(SelectionManager.SelectedDocuments().map(dv => dv.props.Document));
+ const dragDocView = SelectionManager.SelectedDocuments()[0];
+ const dragData = new DragManager.DocumentDragData(SelectionManager.SelectedDocuments().map(dv => dv.props.Document));
const [left, top] = dragDocView.props.ScreenToLocalTransform().scale(dragDocView.props.ContentScaling()).inverse().transformPoint(0, 0);
dragData.offset = dragDocView.props.ScreenToLocalTransform().scale(dragDocView.props.ContentScaling()).transformDirection(e.x - left, e.y - top);
dragData.moveDocument = SelectionManager.SelectedDocuments()[0].props.moveDocument;
@@ -203,8 +188,8 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
document.removeEventListener("pointerup", this.onBackgroundUp);
document.removeEventListener("pointermove", this.onTitleMove);
document.removeEventListener("pointerup", this.onTitleUp);
- DragManager.StartDocumentDrag(SelectionManager.SelectedDocuments().map(docView => docView.ContentDiv!), dragData, e.x, e.y, {
- handlers: { dragComplete: action(() => this._hidden = this.Interacting = false) },
+ DragManager.StartDocumentDrag(SelectionManager.SelectedDocuments().map(documentView => documentView.ContentDiv!), dragData, e.x, e.y, {
+ dragComplete: action(e => this._hidden = this.Interacting = false),
hideSource: true
});
e.stopPropagation();
@@ -238,11 +223,12 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
e.stopPropagation();
if (e.button === 0) {
const recent = Cast(CurrentUserUtils.UserDocument.recentlyClosed, Doc) as Doc;
- SelectionManager.SelectedDocuments().map(dv => {
+ const selected = SelectionManager.SelectedDocuments().slice();
+ SelectionManager.DeselectAll();
+ selected.map(dv => {
recent && Doc.AddDocToList(recent, "data", dv.props.Document, undefined, true, true);
dv.props.removeDocument && dv.props.removeDocument(dv.props.Document);
});
- SelectionManager.DeselectAll();
document.removeEventListener("pointermove", this.onCloseMove);
document.removeEventListener("pointerup", this.onCloseUp);
}
@@ -250,15 +236,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
@action
onMinimizeDown = (e: React.PointerEvent): void => {
e.stopPropagation();
- this._iconDoc = undefined;
if (e.button === 0) {
- this._downX = e.pageX;
- this._downY = e.pageY;
- this._removeIcon = false;
- let selDoc = SelectionManager.SelectedDocuments()[0];
- let selDocPos = selDoc.props.ScreenToLocalTransform().scale(selDoc.props.ContentScaling()).inverse().transformPoint(0, 0);
- this._minimizedX = selDocPos[0] + 12;
- this._minimizedY = selDocPos[1] + 12;
document.removeEventListener("pointermove", this.onMinimizeMove);
document.addEventListener("pointermove", this.onMinimizeMove);
document.removeEventListener("pointerup", this.onMinimizeUp);
@@ -271,20 +249,8 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
e.stopPropagation();
if (Math.abs(e.pageX - this._downX) > Utils.DRAG_THRESHOLD ||
Math.abs(e.pageY - this._downY) > Utils.DRAG_THRESHOLD) {
- let selDoc = SelectionManager.SelectedDocuments()[0];
- let selDocPos = selDoc.props.ScreenToLocalTransform().scale(selDoc.props.ContentScaling()).inverse().transformPoint(0, 0);
- let snapped = Math.abs(e.pageX - selDocPos[0]) < 20 && Math.abs(e.pageY - selDocPos[1]) < 20;
- this._minimizedX = snapped ? selDocPos[0] + 4 : e.clientX;
- this._minimizedY = snapped ? selDocPos[1] - 18 : e.clientY;
- let selectedDocs = SelectionManager.SelectedDocuments().map(sd => sd);
-
- if (selectedDocs.length > 1) {
- this._iconDoc = this._iconDoc ? this._iconDoc : this.createIcon(SelectionManager.SelectedDocuments(), CollectionView.LayoutString(""));
- this.moveIconDoc(this._iconDoc);
- } else {
- this.getIconDoc(selectedDocs[0]).then(icon => icon && this.moveIconDoc(this._iconDoc = icon));
- }
- this._removeIcon = snapped;
+ document.removeEventListener("pointermove", this.onMinimizeMove);
+ document.removeEventListener("pointerup", this.onMinimizeUp);
}
}
@undoBatch
@@ -294,60 +260,20 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
if (e.button === 0) {
document.removeEventListener("pointermove", this.onMinimizeMove);
document.removeEventListener("pointerup", this.onMinimizeUp);
- let selectedDocs = SelectionManager.SelectedDocuments().map(sd => sd);
- if (this._iconDoc && selectedDocs.length === 1 && this._removeIcon) {
- selectedDocs[0].props.removeDocument && selectedDocs[0].props.removeDocument(this._iconDoc);
- }
- if (!this._removeIcon && selectedDocs.length === 1) { // if you click on the top-left button when just 1 doc is selected, then collapse it. not sure why we don't do it for multiple selections
- this.getIconDoc(selectedDocs[0]).then(async icon => {
- let minimizedDoc = await Cast(selectedDocs[0].props.Document.minimizedDoc, Doc);
- if (minimizedDoc) {
- let scrpt = selectedDocs[0].props.ScreenToLocalTransform().scale(selectedDocs[0].props.ContentScaling()).inverse().transformPoint(
- NumCast(minimizedDoc.x) - NumCast(selectedDocs[0].Document.x), NumCast(minimizedDoc.y) - NumCast(selectedDocs[0].Document.y));
- SelectionManager.DeselectAll();
- DocumentManager.Instance.animateBetweenPoint(scrpt, await DocListCastAsync(minimizedDoc.maximizedDocs));
- }
- });
- }
- this._removeIcon = false;
- }
- runInAction(() => this._minimizedX = this._minimizedY = 0);
- }
-
- @undoBatch
- @action createIcon = (selected: DocumentView[], layoutString: string): Doc => {
- let doc = selected[0].props.Document;
- let iconDoc = Docs.Create.IconDocument(layoutString);
- iconDoc.isButton = true;
-
- IconBox.AutomaticTitle(iconDoc);
- //iconDoc.proto![this._fieldKey] = selected.length > 1 ? "collection" : undefined;
- iconDoc.width = Number(MINIMIZED_ICON_SIZE);
- iconDoc.height = Number(MINIMIZED_ICON_SIZE);
- iconDoc.x = NumCast(doc.x);
- iconDoc.y = NumCast(doc.y) - 24;
- iconDoc.maximizedDocs = new List<Doc>(selected.map(s => s.props.Document));
- selected.length === 1 && (doc.minimizedDoc = iconDoc);
- selected[0].props.addDocument && selected[0].props.addDocument(iconDoc);
- return iconDoc;
- }
- @action
- public getIconDoc = async (docView: DocumentView): Promise<Doc | undefined> => {
- let doc = docView.props.Document;
- let iconDoc: Doc | undefined = await Cast(doc.minimizedDoc, Doc);
-
- if (!iconDoc || !DocumentManager.Instance.getDocumentView(iconDoc)) {
- const layout = StrCast(doc.layout, FieldView.LayoutString(DocumentView, ""));
- iconDoc = this.createIcon([docView], layout);
+ const selectedDocs = SelectionManager.SelectedDocuments().map(sd => sd);
+ selectedDocs.map(dv => {
+ const layoutKey = Cast(dv.props.Document.layoutKey, "string", null);
+ const collapse = layoutKey !== "layout_icon";
+ if (collapse) {
+ if (layoutKey && layoutKey !== "layout") dv.props.Document.deiconifyLayout = layoutKey.replace("layout_", "");
+ dv.setCustomView(collapse, "icon");
+ } else {
+ const deiconifyLayout = Cast(dv.props.Document.deiconifyLayout, "string", null);
+ dv.setCustomView(deiconifyLayout ? true : false, deiconifyLayout);
+ dv.props.Document.deiconifyLayout = undefined;
+ }
+ });
}
- return iconDoc;
- }
- moveIconDoc(iconDoc: Doc) {
- let selView = SelectionManager.SelectedDocuments()[0];
- let where = (selView.props.ScreenToLocalTransform()).scale(selView.props.ContentScaling()).
- transformPoint(this._minimizedX - 12, this._minimizedY - 12);
- iconDoc.x = where[0] + NumCast(selView.props.Document.x);
- iconDoc.y = where[1] + NumCast(selView.props.Document.y);
}
@action
@@ -367,14 +293,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
onRadiusMove = (e: PointerEvent): void => {
let dist = Math.sqrt((e.clientX - this._radiusDown[0]) * (e.clientX - this._radiusDown[0]) + (e.clientY - this._radiusDown[1]) * (e.clientY - this._radiusDown[1]));
dist = dist < 3 ? 0 : dist;
- let usingRule = false;
- SelectionManager.SelectedDocuments().map(dv => {
- let ruleProvider = dv.props.ruleProvider;
- let heading = NumCast(dv.props.Document.heading);
- ruleProvider && heading && (Doc.GetProto(ruleProvider)["ruleRounding_" + heading] = `${Math.min(100, dist)}%`);
- usingRule = usingRule || (ruleProvider && heading ? true : false);
- });
- !usingRule && SelectionManager.SelectedDocuments().map(dv => dv.props.Document.layout instanceof Doc ? dv.props.Document.layout : dv.props.Document.isTemplateField ? dv.props.Document : Doc.GetProto(dv.props.Document)).
+ SelectionManager.SelectedDocuments().map(dv => dv.props.Document.layout instanceof Doc ? dv.props.Document.layout : dv.props.Document.isTemplateForField ? dv.props.Document : Doc.GetProto(dv.props.Document)).
map(d => d.borderRounding = `${Math.min(100, dist)}%`);
e.stopPropagation();
e.preventDefault();
@@ -418,8 +337,8 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
let dX = 0, dY = 0, dW = 0, dH = 0;
- let moveX = e.clientX - this._lastX; // e.movementX;
- let moveY = e.clientY - this._lastY; // e.movementY;
+ const moveX = e.clientX - this._lastX; // e.movementX;
+ const moveY = e.clientY - this._lastY; // e.movementY;
this._lastX = e.clientX;
this._lastY = e.clientY;
@@ -462,53 +381,53 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
break;
}
- SelectionManager.SelectedDocuments().forEach(element => {
+ SelectionManager.SelectedDocuments().forEach(action((element: DocumentView) => {
if (dX !== 0 || dY !== 0 || dW !== 0 || dH !== 0) {
- let doc = PositionDocument(element.props.Document);
- let layoutDoc = PositionDocument(Doc.Layout(element.props.Document));
- let nwidth = layoutDoc.nativeWidth || 0;
- let nheight = layoutDoc.nativeHeight || 0;
- let width = (layoutDoc.width || 0);
- let height = (layoutDoc.height || (nheight / nwidth * width));
- let scale = element.props.ScreenToLocalTransform().Scale * element.props.ContentScaling();
- let actualdW = Math.max(width + (dW * scale), 20);
- let actualdH = Math.max(height + (dH * scale), 20);
+ const doc = PositionDocument(element.props.Document);
+ const layoutDoc = PositionDocument(Doc.Layout(element.props.Document));
+ let nwidth = layoutDoc._nativeWidth || 0;
+ let nheight = layoutDoc._nativeHeight || 0;
+ const width = (layoutDoc._width || 0);
+ const height = (layoutDoc._height || (nheight / nwidth * width));
+ const scale = element.props.ScreenToLocalTransform().Scale * element.props.ContentScaling();
+ const actualdW = Math.max(width + (dW * scale), 20);
+ const actualdH = Math.max(height + (dH * scale), 20);
doc.x = (doc.x || 0) + dX * (actualdW - width);
doc.y = (doc.y || 0) + dY * (actualdH - height);
- let fixedAspect = e.ctrlKey || (!layoutDoc.ignoreAspect && nwidth && nheight);
+ const fixedAspect = e.ctrlKey || (!layoutDoc.ignoreAspect && nwidth && nheight);
if (fixedAspect && e.ctrlKey && layoutDoc.ignoreAspect) {
layoutDoc.ignoreAspect = false;
- layoutDoc.nativeWidth = nwidth = layoutDoc.width || 0;
- layoutDoc.nativeHeight = nheight = layoutDoc.height || 0;
+ layoutDoc._nativeWidth = nwidth = layoutDoc._width || 0;
+ layoutDoc._nativeHeight = nheight = layoutDoc._height || 0;
}
if (fixedAspect && (!nwidth || !nheight)) {
- layoutDoc.nativeWidth = nwidth = layoutDoc.width || 0;
- layoutDoc.nativeHeight = nheight = layoutDoc.height || 0;
+ layoutDoc._nativeWidth = nwidth = layoutDoc._width || 0;
+ layoutDoc._nativeHeight = nheight = layoutDoc._height || 0;
}
if (nwidth > 0 && nheight > 0 && !layoutDoc.ignoreAspect) {
if (Math.abs(dW) > Math.abs(dH)) {
if (!fixedAspect) {
- layoutDoc.nativeWidth = actualdW / (layoutDoc.width || 1) * (layoutDoc.nativeWidth || 0);
+ layoutDoc._nativeWidth = actualdW / (layoutDoc._width || 1) * (layoutDoc._nativeWidth || 0);
}
- layoutDoc.width = actualdW;
- if (fixedAspect && !layoutDoc.fitWidth) layoutDoc.height = nheight / nwidth * layoutDoc.width;
- else layoutDoc.height = actualdH;
+ layoutDoc._width = actualdW;
+ if (fixedAspect && !layoutDoc._fitWidth) layoutDoc._height = nheight / nwidth * layoutDoc._width;
+ else layoutDoc._height = actualdH;
}
else {
if (!fixedAspect) {
- layoutDoc.nativeHeight = actualdH / (layoutDoc.height || 1) * (doc.nativeHeight || 0);
+ layoutDoc._nativeHeight = actualdH / (layoutDoc._height || 1) * (doc._nativeHeight || 0);
}
- layoutDoc.height = actualdH;
- if (fixedAspect && !layoutDoc.fitWidth) layoutDoc.width = nwidth / nheight * layoutDoc.height;
- else layoutDoc.width = actualdW;
+ layoutDoc._height = actualdH;
+ if (fixedAspect && !layoutDoc._fitWidth) layoutDoc._width = nwidth / nheight * layoutDoc._height;
+ else layoutDoc._width = actualdW;
}
} else {
- dW && (layoutDoc.width = actualdW);
- dH && (layoutDoc.height = actualdH);
- dH && layoutDoc.autoHeight && (layoutDoc.autoHeight = false);
+ dW && (layoutDoc._width = actualdW);
+ dH && (layoutDoc._height = actualdH);
+ dH && layoutDoc._autoHeight && (layoutDoc._autoHeight = false);
}
}
- });
+ }));
}
@action
@@ -528,13 +447,14 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
@computed
get selectionTitle(): string {
if (SelectionManager.SelectedDocuments().length === 1) {
- let field = SelectionManager.SelectedDocuments()[0].props.Document[this._fieldKey];
- if (typeof field === "string") {
- return field;
+ const selected = SelectionManager.SelectedDocuments()[0];
+ if (this._titleControlString.startsWith("=")) {
+ return ScriptField.MakeFunction(this._titleControlString.substring(1), { doc: Doc.name })!.script.run({ this: selected.props.Document }, console.log).result?.toString() || "";
}
- else if (typeof field === "number") {
- return field.toString();
+ if (this._titleControlString.startsWith("#")) {
+ return selected.props.Document[this._titleControlString.substring(1)]?.toString() || "-unset-";
}
+ return this._accumulatedTitle;
} else if (SelectionManager.SelectedDocuments().length > 1) {
return "-multiple-";
}
@@ -547,19 +467,15 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
this.TextBar = ele;
}
}
- public showTextBar = () => {
- if (this.TextBar && TooltipTextMenu.Toolbar && Array.from(this.TextBar.childNodes).indexOf(TooltipTextMenu.Toolbar) === -1) {
- this.TextBar.appendChild(TooltipTextMenu.Toolbar);
- }
- }
render() {
- var bounds = this.Bounds;
- let seldoc = SelectionManager.SelectedDocuments().length ? SelectionManager.SelectedDocuments()[0] : undefined;
+ const bounds = this.Bounds;
+ const seldoc = SelectionManager.SelectedDocuments().length ? SelectionManager.SelectedDocuments()[0] : undefined;
if (SelectionManager.GetIsDragging() || bounds.x === Number.MAX_VALUE || !seldoc || this._hidden || isNaN(bounds.r) || isNaN(bounds.b) || isNaN(bounds.x) || isNaN(bounds.y)) {
return (null);
}
- let minimizeIcon = (
+ const minimizeIcon = (
<div className="documentDecorations-minimizeButton" onPointerDown={this.onMinimizeDown}>
+ {/* Currently, this is set to be enabled if there is no ink selected. It might be interesting to think about minimizing ink if it's useful? -syip2*/}
{SelectionManager.SelectedDocuments().length === 1 ? IconBox.DocumentIcon(StrCast(SelectionManager.SelectedDocuments()[0].props.Document.layout, "...")) : "..."}
</div>);
@@ -594,7 +510,7 @@ export class DocumentDecorations extends React.Component<{}, { value: string }>
{minimizeIcon}
{this._edtingTitle ?
- <input ref={this._keyinput} className="title" type="text" name="dynbox" value={this._title} onBlur={this.titleBlur} onChange={this.titleChanged} onKeyPress={this.titleEntered} /> :
+ <input ref={this._keyinput} className="title" type="text" name="dynbox" value={this._accumulatedTitle} onBlur={e => this.titleBlur(true)} onChange={this.titleChanged} onKeyPress={this.titleEntered} /> :
<div className="title" onPointerDown={this.onTitleDown} ><span>{`${this.selectionTitle}`}</span></div>}
<div className="documentDecorations-closeButton" title="Close Document" onPointerDown={this.onCloseDown}>
<FontAwesomeIcon className="documentdecorations-times" icon={faTimes} size="lg" />
diff --git a/src/client/views/EditableView.tsx b/src/client/views/EditableView.tsx
index 8e86f58ee..780c5b2f4 100644
--- a/src/client/views/EditableView.tsx
+++ b/src/client/views/EditableView.tsx
@@ -1,16 +1,18 @@
import React = require('react');
+import { action, observable } from 'mobx';
import { observer } from 'mobx-react';
-import { observable, action, trace } from 'mobx';
-import "./EditableView.scss";
import * as Autosuggest from 'react-autosuggest';
-import { undoBatch } from '../util/UndoManager';
+import { ObjectField } from '../../new_fields/ObjectField';
import { SchemaHeaderField } from '../../new_fields/SchemaHeaderField';
+import { ContextMenu } from './ContextMenu';
+import { ContextMenuProps } from './ContextMenuItem';
+import "./EditableView.scss";
export interface EditableProps {
/**
* Called to get the initial value for editing
* */
- GetValue(): string;
+ GetValue(): string | undefined;
/**
* Called to apply changes
@@ -21,7 +23,7 @@ export interface EditableProps {
OnFillDown?(value: string): void;
- OnTab?(): void;
+ OnTab?(shift?: boolean): void;
/**
* The contents to render when not editing
@@ -36,13 +38,14 @@ export interface EditableProps {
resetValue: () => void;
value: string,
onChange: (e: React.ChangeEvent, { newValue }: { newValue: string }) => void,
- autosuggestProps: Autosuggest.AutosuggestProps<string>
+ autosuggestProps: Autosuggest.AutosuggestProps<string, any>
};
oneLine?: boolean;
editing?: boolean;
onClick?: (e: React.MouseEvent) => boolean;
isEditingCallback?: (isEditing: boolean) => void;
+ menuCallback?: (x: number, y: number) => void;
HeadingObject?: SchemaHeaderField | undefined;
HeadingsHack?: number;
toggle?: () => void;
@@ -65,7 +68,7 @@ export class EditableView extends React.Component<EditableProps> {
}
@action
- componentWillReceiveProps(nextProps: EditableProps) {
+ componentDidUpdate(nextProps: EditableProps) {
// this is done because when autosuggest is turned on, the suggestions are passed in as a prop,
// so when the suggestions are passed in, and no editing prop is passed in, it used to set it
// to false. this will no longer do so -syip
@@ -79,7 +82,7 @@ export class EditableView extends React.Component<EditableProps> {
if (e.key === "Tab") {
e.stopPropagation();
this.finalizeEdit(e.currentTarget.value, e.shiftKey);
- this.props.OnTab && this.props.OnTab();
+ this.props.OnTab && this.props.OnTab(e.shiftKey);
} else if (e.key === "Enter") {
e.stopPropagation();
if (!e.ctrlKey) {
@@ -87,12 +90,14 @@ export class EditableView extends React.Component<EditableProps> {
} else if (this.props.OnFillDown) {
this.props.OnFillDown(e.currentTarget.value);
this._editing = false;
- this.props.isEditingCallback && this.props.isEditingCallback(false);
+ this.props.isEditingCallback?.(false);
}
} else if (e.key === "Escape") {
e.stopPropagation();
this._editing = false;
- this.props.isEditingCallback && this.props.isEditingCallback(false);
+ this.props.isEditingCallback?.(false);
+ } else if (e.key === ":") {
+ this.props.menuCallback?.(e.currentTarget.offsetLeft, e.currentTarget.offsetTop);
}
}
@@ -101,16 +106,16 @@ export class EditableView extends React.Component<EditableProps> {
e.nativeEvent.stopPropagation();
if (!this.props.onClick || !this.props.onClick(e)) {
this._editing = true;
- this.props.isEditingCallback && this.props.isEditingCallback(true);
+ this.props.isEditingCallback?.(true);
}
e.stopPropagation();
}
@action
private finalizeEdit(value: string, shiftDown: boolean) {
+ this._editing = false;
if (this.props.SetValue(value, shiftDown)) {
- this._editing = false;
- this.props.isEditingCallback && this.props.isEditingCallback(false);
+ this.props.isEditingCallback?.(false);
}
}
@@ -120,11 +125,13 @@ export class EditableView extends React.Component<EditableProps> {
@action
setIsFocused = (value: boolean) => {
+ const wasFocused = this._editing;
this._editing = value;
+ return wasFocused !== this._editing;
}
render() {
- if (this._editing) {
+ if (this._editing && this.props.GetValue() !== undefined) {
return this.props.autosuggestProps
? <Autosuggest
{...this.props.autosuggestProps.autosuggestProps}
@@ -150,7 +157,7 @@ export class EditableView extends React.Component<EditableProps> {
/>;
} else {
if (this.props.autosuggestProps) this.props.autosuggestProps.resetValue();
- return (
+ return (this.props.contents instanceof ObjectField ? (null) :
<div className={`editableView-container-editing${this.props.oneLine ? "-oneLine" : ""}`}
style={{ display: this.props.display, minHeight: "20px", height: `${this.props.height ? this.props.height : "auto"}`, maxHeight: `${this.props.maxHeight}` }}
onClick={this.onClick}>
diff --git a/src/client/views/GestureOverlay.scss b/src/client/views/GestureOverlay.scss
new file mode 100644
index 000000000..7474ca839
--- /dev/null
+++ b/src/client/views/GestureOverlay.scss
@@ -0,0 +1,49 @@
+.gestureOverlay-cont {
+ width: 100vw;
+ height: 100vh;
+ position: absolute;
+ top: 0;
+ left: 0;
+ touch-action: none;
+}
+
+.clipboardDoc-cont {
+ position: absolute;
+ width: 300px;
+ height: 300px;
+}
+
+.inkToTextDoc-cont {
+ position: absolute;
+ width: 300px;
+ overflow: hidden;
+ pointer-events: none;
+
+ .inkToTextDoc-scroller {
+ overflow: visible;
+ position: absolute;
+ width: 100%;
+
+ .menuItem-cont {
+ width: 100%;
+ height: 25px;
+ padding: 2.5px;
+ border-bottom: .5px solid black;
+ }
+ }
+
+ .shadow {
+ width: 100%;
+ height: calc(100% - 25px);
+ position: absolute;
+ top: 25px;
+ background-color: black;
+ opacity: 0.2;
+ }
+}
+
+.filter-cont {
+ position: absolute;
+ background-color: transparent;
+ border: 1px solid black;
+} \ No newline at end of file
diff --git a/src/client/views/GestureOverlay.tsx b/src/client/views/GestureOverlay.tsx
new file mode 100644
index 000000000..b23d4d020
--- /dev/null
+++ b/src/client/views/GestureOverlay.tsx
@@ -0,0 +1,752 @@
+import React = require("react");
+import { Touchable } from "./Touchable";
+import { observer } from "mobx-react";
+import "./GestureOverlay.scss";
+import { computed, observable, action, runInAction, IReactionDisposer, reaction, flow, trace } from "mobx";
+import { GestureUtils } from "../../pen-gestures/GestureUtils";
+import { InteractionUtils } from "../util/InteractionUtils";
+import { InkingControl } from "./InkingControl";
+import { InkTool, InkData } from "../../new_fields/InkField";
+import { Doc } from "../../new_fields/Doc";
+import { LinkManager } from "../util/LinkManager";
+import { DocUtils, Docs } from "../documents/Documents";
+import { undoBatch } from "../util/UndoManager";
+import { Scripting } from "../util/Scripting";
+import { FieldValue, Cast, NumCast, BoolCast } from "../../new_fields/Types";
+import { CurrentUserUtils } from "../../server/authentication/models/current_user_utils";
+import HorizontalPalette from "./Palette";
+import { Utils, emptyPath, emptyFunction, returnFalse, returnOne, returnEmptyString, returnTrue, numberRange } from "../../Utils";
+import { DocumentView } from "./nodes/DocumentView";
+import { Transform } from "../util/Transform";
+import { DocumentContentsView } from "./nodes/DocumentContentsView";
+import { CognitiveServices } from "../cognitive_services/CognitiveServices";
+import { DocServer } from "../DocServer";
+import htmlToImage from "html-to-image";
+import { ScriptField } from "../../new_fields/ScriptField";
+import { listSpec } from "../../new_fields/Schema";
+import { List } from "../../new_fields/List";
+import { CollectionViewType } from "./collections/CollectionView";
+import TouchScrollableMenu, { TouchScrollableMenuItem } from "./TouchScrollableMenu";
+
+@observer
+export default class GestureOverlay extends Touchable {
+ static Instance: GestureOverlay;
+
+ @observable public Color: string = "rgb(244, 67, 54)";
+ @observable public Width: number = 5;
+ @observable public SavedColor?: string;
+ @observable public SavedWidth?: number;
+ @observable public Tool: ToolglassTools = ToolglassTools.None;
+
+ @observable private _thumbX?: number;
+ @observable private _thumbY?: number;
+ @observable private _selectedIndex: number = -1;
+ @observable private _menuX: number = -300;
+ @observable private _menuY: number = -300;
+ @observable private _pointerY?: number;
+ @observable private _points: { X: number, Y: number }[] = [];
+ @observable private _strokes: InkData[] = [];
+ @observable private _palette?: JSX.Element;
+ @observable private _clipboardDoc?: JSX.Element;
+ @observable private _possibilities: JSX.Element[] = [];
+
+ @computed private get height(): number { return 2 * Math.max(this._pointerY && this._thumbY ? this._thumbY - this._pointerY : 300, 300); }
+ @computed private get showBounds() { return this.Tool !== ToolglassTools.None; }
+
+ private _d1: Doc | undefined;
+ private _inkToTextDoc: Doc | undefined;
+ private _thumbDoc: Doc | undefined;
+ private thumbIdentifier?: number;
+ private pointerIdentifier?: number;
+ private _hands: Map<number, React.Touch[]> = new Map<number, React.Touch[]>();
+ private _holdTimer: NodeJS.Timeout | undefined;
+
+ protected multiTouchDisposer?: InteractionUtils.MultiTouchEventDisposer;
+
+ constructor(props: Readonly<{}>) {
+ super(props);
+
+ GestureOverlay.Instance = this;
+ }
+
+ componentDidMount = () => {
+ this._thumbDoc = FieldValue(Cast(CurrentUserUtils.setupThumbDoc(CurrentUserUtils.UserDocument), Doc));
+ this._inkToTextDoc = FieldValue(Cast(this._thumbDoc?.inkToTextDoc, Doc));
+ }
+
+ getNewTouches(e: React.TouchEvent | TouchEvent) {
+ const ntt: (React.Touch | Touch)[] = Array.from(e.targetTouches);
+ const nct: (React.Touch | Touch)[] = Array.from(e.changedTouches);
+ const nt: (React.Touch | Touch)[] = Array.from(e.touches);
+ this._hands.forEach((hand) => {
+ for (let i = 0; i < e.targetTouches.length; i++) {
+ const pt = e.targetTouches.item(i);
+ if (pt && hand.some((finger) => finger.screenX === pt.screenX && finger.screenY === pt.screenY)) {
+ ntt.splice(ntt.indexOf(pt), 1);
+ }
+ }
+
+ for (let i = 0; i < e.changedTouches.length; i++) {
+ const pt = e.changedTouches.item(i);
+ if (pt && hand.some((finger) => finger.screenX === pt.screenX && finger.screenY === pt.screenY)) {
+ nct.splice(nct.indexOf(pt), 1);
+ }
+ }
+
+ for (let i = 0; i < e.touches.length; i++) {
+ const pt = e.touches.item(i);
+ if (pt && hand.some((finger) => finger.screenX === pt.screenX && finger.screenY === pt.screenY)) {
+ nt.splice(nt.indexOf(pt), 1);
+ }
+ }
+ });
+ return { ntt, nct, nt };
+ }
+
+ onReactTouchStart = (te: React.TouchEvent) => {
+ const actualPts: React.Touch[] = [];
+ for (let i = 0; i < te.touches.length; i++) {
+ const pt: any = te.touches.item(i);
+ actualPts.push(pt);
+ // pen is also a touch, but with a radius of 0.5 (at least with the surface pens)
+ // and this seems to be the only way of differentiating pen and touch on touch events
+ if (pt.radiusX > 1 && pt.radiusY > 1) {
+ // if (typeof pt.identifier !== "string") {
+ // pt.identifier = Utils.GenerateGuid();
+ // }
+ this.prevPoints.set(pt.identifier, pt);
+ }
+ }
+
+ const ptsToDelete: number[] = [];
+ this.prevPoints.forEach(pt => {
+ if (!actualPts.includes(pt)) {
+ ptsToDelete.push(pt.identifier);
+ }
+ });
+
+ ptsToDelete.forEach(pt => this.prevPoints.delete(pt));
+ const nts = this.getNewTouches(te);
+
+ if (nts.nt.length < 5) {
+ const target = document.elementFromPoint(te.changedTouches.item(0).clientX, te.changedTouches.item(0).clientY);
+ target?.dispatchEvent(
+ new CustomEvent<InteractionUtils.MultiTouchEvent<React.TouchEvent>>("dashOnTouchStart",
+ {
+ bubbles: true,
+ detail: {
+ fingers: this.prevPoints.size,
+ targetTouches: nts.ntt,
+ touches: nts.nt,
+ changedTouches: nts.nct,
+ touchEvent: te
+ }
+ }
+ )
+ );
+ // if (this.prevPoints.size === 1 && this._holdTimer === undefined) {
+ // console.log("started");
+ // this._holdTimer = setTimeout(() => {
+ // console.log("hold");
+ // const target = document.elementFromPoint(te.changedTouches.item(0).clientX, te.changedTouches.item(0).clientY);
+ // target?.dispatchEvent(
+ // new CustomEvent<InteractionUtils.MultiTouchEvent<React.TouchEvent>>("dashOnTouchHoldStart",
+ // {
+ // bubbles: true,
+ // detail: {
+ // fingers: this.prevPoints.size,
+ // targetTouches: nts.ntt,
+ // touches: nts.nt,
+ // changedTouches: nts.nct,
+ // touchEvent: te
+ // }
+ // }
+ // )
+ // );
+ // this._holdTimer = undefined;
+ // document.removeEventListener("touchmove", this.onReactTouchMove);
+ // document.removeEventListener("touchend", this.onReactTouchEnd);
+ // document.removeEventListener("touchmove", this.onReactHoldTouchMove);
+ // document.removeEventListener("touchend", this.onReactHoldTouchEnd);
+ // document.addEventListener("touchmove", this.onReactHoldTouchMove);
+ // document.addEventListener("touchend", this.onReactHoldTouchEnd);
+ // }, (1000));
+ // }
+ document.removeEventListener("touchmove", this.onReactTouchMove);
+ document.removeEventListener("touchend", this.onReactTouchEnd);
+ document.addEventListener("touchmove", this.onReactTouchMove);
+ document.addEventListener("touchend", this.onReactTouchEnd);
+ }
+ else {
+ this.handleHandDown(te);
+ document.removeEventListener("touchmove", this.onReactTouchMove);
+ document.removeEventListener("touchend", this.onReactTouchEnd);
+ }
+ }
+
+ onReactHoldTouchMove = (e: TouchEvent) => {
+ const nts: any = this.getNewTouches(e);
+ if (this.prevPoints.size === 1 && this._holdTimer) {
+ clearTimeout(this._holdTimer);
+ this._holdTimer = undefined;
+ }
+ document.dispatchEvent(
+ new CustomEvent<InteractionUtils.MultiTouchEvent<TouchEvent>>("dashOnTouchHoldMove",
+ {
+ bubbles: true,
+ detail: {
+ fingers: this.prevPoints.size,
+ targetTouches: nts.ntt,
+ touches: nts.nt,
+ changedTouches: nts.nct,
+ touchEvent: e
+ }
+ })
+ );
+ }
+
+ onReactHoldTouchEnd = (e: TouchEvent) => {
+ const nts: any = this.getNewTouches(e);
+ if (this.prevPoints.size === 1 && this._holdTimer) {
+ clearTimeout(this._holdTimer);
+ this._holdTimer = undefined;
+ }
+ document.dispatchEvent(
+ new CustomEvent<InteractionUtils.MultiTouchEvent<TouchEvent>>("dashOnTouchHoldEnd",
+ {
+ bubbles: true,
+ detail: {
+ fingers: this.prevPoints.size,
+ targetTouches: nts.ntt,
+ touches: nts.nt,
+ changedTouches: nts.nct,
+ touchEvent: e
+ }
+ })
+ );
+ for (let i = 0; i < e.changedTouches.length; i++) {
+ const pt = e.changedTouches.item(i);
+ if (pt) {
+ if (this.prevPoints.has(pt.identifier)) {
+ this.prevPoints.delete(pt.identifier);
+ }
+ }
+ }
+
+ if (this.prevPoints.size === 0) {
+ document.removeEventListener("touchmove", this.onReactTouchMove);
+ document.removeEventListener("touchend", this.onReactTouchEnd);
+ }
+ e.stopPropagation();
+ }
+
+
+ onReactTouchMove = (e: TouchEvent) => {
+ const nts: any = this.getNewTouches(e);
+ if (this.prevPoints.size === 1 && this._holdTimer) {
+ clearTimeout(this._holdTimer);
+ this._holdTimer = undefined;
+ }
+ document.dispatchEvent(
+ new CustomEvent<InteractionUtils.MultiTouchEvent<TouchEvent>>("dashOnTouchMove",
+ {
+ bubbles: true,
+ detail: {
+ fingers: this.prevPoints.size,
+ targetTouches: nts.ntt,
+ touches: nts.nt,
+ changedTouches: nts.nct,
+ touchEvent: e
+ }
+ })
+ );
+ }
+
+ onReactTouchEnd = (e: TouchEvent) => {
+ const nts: any = this.getNewTouches(e);
+ if (this.prevPoints.size === 1 && this._holdTimer) {
+ clearTimeout(this._holdTimer);
+ this._holdTimer = undefined;
+ }
+ document.dispatchEvent(
+ new CustomEvent<InteractionUtils.MultiTouchEvent<TouchEvent>>("dashOnTouchEnd",
+ {
+ bubbles: true,
+ detail: {
+ fingers: this.prevPoints.size,
+ targetTouches: nts.ntt,
+ touches: nts.nt,
+ changedTouches: nts.nct,
+ touchEvent: e
+ }
+ })
+ );
+ for (let i = 0; i < e.changedTouches.length; i++) {
+ const pt = e.changedTouches.item(i);
+ if (pt) {
+ if (this.prevPoints.has(pt.identifier)) {
+ this.prevPoints.delete(pt.identifier);
+ }
+ }
+ }
+
+ if (this.prevPoints.size === 0) {
+ document.removeEventListener("touchmove", this.onReactTouchMove);
+ document.removeEventListener("touchend", this.onReactTouchEnd);
+ }
+ e.stopPropagation();
+ }
+
+ handleHandDown = async (e: React.TouchEvent) => {
+ const fingers = new Array<React.Touch>();
+ for (let i = 0; i < e.touches.length; i++) {
+ const pt: any = e.touches.item(i);
+ if (pt.radiusX > 1 && pt.radiusY > 1) {
+ for (let j = 0; j < e.targetTouches.length; j++) {
+ const tPt = e.targetTouches.item(j);
+ if (tPt?.screenX === pt?.screenX && tPt?.screenY === pt?.screenY) {
+ if (pt && this.prevPoints.has(pt.identifier)) {
+ fingers.push(pt);
+ }
+ }
+ }
+ }
+ }
+ const thumb = fingers.reduce((a, v) => a.clientY > v.clientY ? a : v, fingers[0]);
+ const rightMost = Math.max(...fingers.map(f => f.clientX));
+ const leftMost = Math.min(...fingers.map(f => f.clientX));
+ let pointer: React.Touch | undefined;
+ // left hand
+ if (thumb.clientX === rightMost) {
+ pointer = fingers.reduce((a, v) => a.clientX > v.clientX || v.identifier === thumb.identifier ? a : v);
+ }
+ // right hand
+ else if (thumb.clientX === leftMost) {
+ pointer = fingers.reduce((a, v) => a.clientX < v.clientX || v.identifier === thumb.identifier ? a : v);
+ }
+ else {
+ console.log("not hand");
+ }
+ this.pointerIdentifier = pointer?.identifier;
+ runInAction(() => {
+ this._pointerY = pointer?.clientY;
+ if (thumb.identifier === this.thumbIdentifier) {
+ this._thumbX = thumb.clientX;
+ this._thumbY = thumb.clientY;
+ this._hands.set(thumb.identifier, fingers);
+ return;
+ }
+ });
+
+ this.thumbIdentifier = thumb?.identifier;
+ this._hands.set(thumb.identifier, fingers);
+ const others = fingers.filter(f => f !== thumb);
+ const minX = Math.min(...others.map(f => f.clientX));
+ const minY = Math.min(...others.map(f => f.clientY));
+
+ const thumbDoc = await Cast(CurrentUserUtils.setupThumbDoc(CurrentUserUtils.UserDocument), Doc);
+ if (thumbDoc) {
+ runInAction(() => {
+ this._inkToTextDoc = FieldValue(Cast(thumbDoc.inkToTextDoc, Doc));
+ this._thumbDoc = thumbDoc;
+ this._thumbX = thumb.clientX;
+ this._thumbY = thumb.clientY;
+ this._menuX = thumb.clientX + 50;
+ this._menuY = thumb.clientY;
+ this._palette = <HorizontalPalette x={minX} y={minY} thumb={[thumb.clientX, thumb.clientY]} thumbDoc={thumbDoc} />;
+ });
+ }
+
+ this.removeMoveListeners();
+ document.removeEventListener("touchmove", this.handleHandMove);
+ document.addEventListener("touchmove", this.handleHandMove);
+ document.removeEventListener("touchend", this.handleHandUp);
+ document.addEventListener("touchend", this.handleHandUp);
+ }
+
+ @action
+ handleHandMove = (e: TouchEvent) => {
+ const fingers = new Array<React.Touch>();
+ for (let i = 0; i < e.touches.length; i++) {
+ const pt: any = e.touches.item(i);
+ if (pt.radiusX > 1 && pt.radiusY > 1) {
+ for (let j = 0; j < e.targetTouches.length; j++) {
+ const tPt = e.targetTouches.item(j);
+ if (tPt?.screenX === pt?.screenX && tPt?.screenY === pt?.screenY) {
+ if (pt && this.prevPoints.has(pt.identifier)) {
+ this._hands.forEach(hand => hand.some(f => {
+ if (f.identifier === pt.identifier) {
+ fingers.push(pt);
+ }
+ }));
+ }
+ }
+ }
+ }
+ }
+ const thumb = fingers.reduce((a, v) => a.clientY > v.clientY ? a : v, fingers[0]);
+ if (thumb?.identifier && thumb?.identifier === this.thumbIdentifier) {
+ this._hands.set(thumb.identifier, fingers);
+ }
+
+ for (let i = 0; i < e.changedTouches.length; i++) {
+ const pt = e.changedTouches.item(i);
+ if (pt && pt.identifier === this.thumbIdentifier && this._thumbY) {
+ if (this._thumbX && this._thumbY) {
+ const yOverX = Math.abs(pt.clientX - this._thumbX) < Math.abs(pt.clientY - this._thumbY);
+ if ((yOverX && this._inkToTextDoc) || this._selectedIndex > 0) {
+ if (Math.abs(pt.clientY - this._thumbY) > 20) {
+ this._selectedIndex = Math.min(Math.max(0, -Math.ceil((pt.clientY - this._thumbY) / 20)), this._possibilities.length - 1);
+ }
+ }
+ else if (this._thumbDoc) {
+ if (Math.abs(pt.clientX - this._thumbX) > 30) {
+ this._thumbDoc.selectedIndex = Math.max(0, NumCast(this._thumbDoc.selectedIndex) - Math.sign(pt.clientX - this._thumbX));
+ this._thumbX = pt.clientX;
+ }
+ }
+ }
+
+ // if (this._thumbX && this._thumbDoc) {
+ // if (Math.abs(pt.clientX - this._thumbX) > 30) {
+ // this._thumbDoc.selectedIndex = Math.max(0, NumCast(this._thumbDoc.selectedIndex) - Math.sign(pt.clientX - this._thumbX));
+ // this._thumbX = pt.clientX;
+ // }
+ // }
+ // if (this._thumbY && this._inkToTextDoc) {
+ // if (Math.abs(pt.clientY - this._thumbY) > 20) {
+ // this._selectedIndex = Math.min(Math.max(0, -Math.ceil((pt.clientY - this._thumbY) / 20)), this._possibilities.length - 1);
+ // }
+ // }
+ }
+ if (pt && pt.identifier === this.pointerIdentifier) {
+ this._pointerY = pt.clientY;
+ }
+ }
+ }
+
+ @action
+ handleHandUp = (e: TouchEvent) => {
+ if (e.touches.length < 3) {
+ // this.onTouchEnd(e);
+ if (this.thumbIdentifier) this._hands.delete(this.thumbIdentifier);
+ this._palette = undefined;
+ this.thumbIdentifier = undefined;
+ this._thumbDoc = undefined;
+
+ let scriptWorked = false;
+ if (NumCast(this._inkToTextDoc?.selectedIndex) > -1) {
+ const selectedButton = this._possibilities[NumCast(this._inkToTextDoc?.selectedIndex)];
+ if (selectedButton) {
+ selectedButton.props.onClick();
+ scriptWorked = true;
+ }
+ }
+
+ if (!scriptWorked) {
+ this._strokes.forEach(s => {
+ this.dispatchGesture(GestureUtils.Gestures.Stroke, s);
+ });
+ }
+ this._strokes = [];
+ this._points = [];
+ this._possibilities = [];
+ document.removeEventListener("touchend", this.handleHandUp);
+ }
+ }
+
+ @action
+ onPointerDown = (e: React.PointerEvent) => {
+ if (InteractionUtils.IsType(e, InteractionUtils.PENTYPE) || (InkingControl.Instance.selectedTool === InkTool.Highlighter || InkingControl.Instance.selectedTool === InkTool.Pen)) {
+ this._points.push({ X: e.clientX, Y: e.clientY });
+ e.stopPropagation();
+ e.preventDefault();
+
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ document.addEventListener("pointermove", this.onPointerMove);
+ document.addEventListener("pointerup", this.onPointerUp);
+ }
+ }
+
+ @action
+ onPointerMove = (e: PointerEvent) => {
+ if (InteractionUtils.IsType(e, InteractionUtils.PENTYPE) || (InkingControl.Instance.selectedTool === InkTool.Highlighter || InkingControl.Instance.selectedTool === InkTool.Pen)) {
+ this._points.push({ X: e.clientX, Y: e.clientY });
+ e.stopPropagation();
+ e.preventDefault();
+
+
+ if (this._points.length > 1) {
+ const B = this.svgBounds;
+ const initialPoint = this._points[0.];
+ const xInGlass = initialPoint.X > (this._thumbX ?? Number.MAX_SAFE_INTEGER) && initialPoint.X < (this._thumbX ?? Number.MAX_SAFE_INTEGER) + this.height;
+ const yInGlass = initialPoint.Y > (this._thumbY ?? Number.MAX_SAFE_INTEGER) - this.height && initialPoint.Y < (this._thumbY ?? Number.MAX_SAFE_INTEGER);
+ if (this.Tool !== ToolglassTools.None && xInGlass && yInGlass) {
+ switch (this.Tool) {
+ case ToolglassTools.RadialMenu:
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ //this.handle1PointerHoldStart(e);
+ }
+ }
+ }
+ }
+ }
+
+ handleLineGesture = (): boolean => {
+ let actionPerformed = false;
+ const B = this.svgBounds;
+ const ep1 = this._points[0];
+ const ep2 = this._points[this._points.length - 1];
+
+ const target1 = document.elementFromPoint(ep1.X, ep1.Y);
+ const target2 = document.elementFromPoint(ep2.X, ep2.Y);
+ const callback = (doc: Doc) => {
+ if (!this._d1) {
+ this._d1 = doc;
+ }
+ else if (this._d1 !== doc && !LinkManager.Instance.doesLinkExist(this._d1, doc)) {
+ DocUtils.MakeLink({ doc: this._d1 }, { doc: doc });
+ actionPerformed = true;
+ }
+ };
+ const ge = new CustomEvent<GestureUtils.GestureEvent>("dashOnGesture",
+ {
+ bubbles: true,
+ detail: {
+ points: this._points,
+ gesture: GestureUtils.Gestures.Line,
+ bounds: B,
+ callbackFn: callback
+ }
+ });
+ target1?.dispatchEvent(ge);
+ target2?.dispatchEvent(ge);
+ return actionPerformed;
+ }
+
+ @action
+ onPointerUp = (e: PointerEvent) => {
+ if (this._points.length > 1) {
+ const B = this.svgBounds;
+ const points = this._points.map(p => ({ X: p.X - B.left, Y: p.Y - B.top }));
+
+ const initialPoint = this._points[0.];
+ const xInGlass = initialPoint.X > (this._thumbX ?? Number.MAX_SAFE_INTEGER) && initialPoint.X < (this._thumbX ?? Number.MAX_SAFE_INTEGER) + (this.height);
+ const yInGlass = initialPoint.Y > (this._thumbY ?? Number.MAX_SAFE_INTEGER) - (this.height) && initialPoint.Y < (this._thumbY ?? Number.MAX_SAFE_INTEGER);
+
+ if (this.Tool !== ToolglassTools.None && xInGlass && yInGlass) {
+ switch (this.Tool) {
+ case ToolglassTools.InkToText:
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ this._strokes.push(new Array(...this._points));
+ this._points = [];
+ CognitiveServices.Inking.Appliers.InterpretStrokes(this._strokes).then((results) => {
+ console.log(results);
+ const wordResults = results.filter((r: any) => r.category === "line");
+ const possibilities: string[] = [];
+ for (const wR of wordResults) {
+ console.log(wR);
+ if (wR?.recognizedText) {
+ possibilities.push(wR?.recognizedText)
+ }
+ possibilities.push(...wR?.alternates?.map((a: any) => a.recognizedString));
+ }
+ console.log(possibilities);
+ const r = Math.max(this.svgBounds.right, ...this._strokes.map(s => this.getBounds(s).right));
+ const l = Math.min(this.svgBounds.left, ...this._strokes.map(s => this.getBounds(s).left));
+ const t = Math.min(this.svgBounds.top, ...this._strokes.map(s => this.getBounds(s).top));
+ runInAction(() => {
+ this._possibilities = possibilities.map(p =>
+ <TouchScrollableMenuItem text={p} onClick={() => GestureOverlay.Instance.dispatchGesture(GestureUtils.Gestures.Text, [{ X: l, Y: t }], p)} />);
+ });
+ });
+ break;
+ case ToolglassTools.IgnoreGesture:
+ this.dispatchGesture(GestureUtils.Gestures.Stroke);
+ this._points = [];
+ break;
+ }
+ }
+ else {
+ const result = GestureUtils.GestureRecognizer.Recognize(new Array(points));
+ let actionPerformed = false;
+ if (result && result.Score > 0.7) {
+ switch (result.Name) {
+ case GestureUtils.Gestures.Box:
+ this.dispatchGesture(GestureUtils.Gestures.Box);
+ actionPerformed = true;
+ break;
+ case GestureUtils.Gestures.StartBracket:
+ this.dispatchGesture(GestureUtils.Gestures.StartBracket);
+ actionPerformed = true;
+ break;
+ case GestureUtils.Gestures.EndBracket:
+ this.dispatchGesture(GestureUtils.Gestures.EndBracket);
+ actionPerformed = true;
+ break;
+ case GestureUtils.Gestures.Line:
+ actionPerformed = this.handleLineGesture();
+ break;
+ case GestureUtils.Gestures.Scribble:
+ console.log("scribble");
+ break;
+ }
+ if (actionPerformed) {
+ this._points = [];
+ }
+ }
+
+ if (!actionPerformed) {
+ this.dispatchGesture(GestureUtils.Gestures.Stroke);
+ this._points = [];
+ }
+ }
+ }
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ }
+
+ dispatchGesture = (gesture: GestureUtils.Gestures, stroke?: InkData, data?: any) => {
+ const target = document.elementFromPoint((stroke ?? this._points)[0].X, (stroke ?? this._points)[0].Y);
+ target?.dispatchEvent(
+ new CustomEvent<GestureUtils.GestureEvent>("dashOnGesture",
+ {
+ bubbles: true,
+ detail: {
+ points: stroke ?? this._points,
+ gesture: gesture,
+ bounds: this.getBounds(stroke ?? this._points),
+ text: data
+ }
+ }
+ )
+ );
+ }
+
+ getBounds = (stroke: InkData) => {
+ const xs = stroke.map(p => p.X);
+ const ys = stroke.map(p => p.Y);
+ const right = Math.max(...xs);
+ const left = Math.min(...xs);
+ const bottom = Math.max(...ys);
+ const top = Math.min(...ys);
+ return { right: right, left: left, bottom: bottom, top: top, width: right - left, height: bottom - top };
+ }
+
+ @computed get svgBounds() {
+ return this.getBounds(this._points);
+ }
+
+ @computed get elements() {
+ const B = this.svgBounds;
+ return [
+ this.props.children,
+ this._palette,
+ [this._strokes.map(l => {
+ const b = this.getBounds(l);
+ return <svg key={b.left} width={b.width} height={b.height} style={{ transform: `translate(${b.left}px, ${b.top}px)`, pointerEvents: "none", position: "absolute", zIndex: 30000 }}>
+ {InteractionUtils.CreatePolyline(l, b.left, b.top, GestureOverlay.Instance.Color, GestureOverlay.Instance.Width)}
+ </svg>;
+ }),
+ this._points.length <= 1 ? (null) : <svg width={B.width} height={B.height} style={{ transform: `translate(${B.left}px, ${B.top}px)`, pointerEvents: "none", position: "absolute", zIndex: 30000 }}>
+ {InteractionUtils.CreatePolyline(this._points, B.left, B.top, GestureOverlay.Instance.Color, GestureOverlay.Instance.Width)}
+ </svg>]
+ ];
+ }
+
+ @action
+ public openFloatingDoc = (doc: Doc) => {
+ this._clipboardDoc =
+ <DocumentView
+ Document={doc}
+ DataDoc={undefined}
+ LibraryPath={emptyPath}
+ addDocument={undefined}
+ addDocTab={returnFalse}
+ pinToPres={emptyFunction}
+ onClick={undefined}
+ removeDocument={undefined}
+ ScreenToLocalTransform={() => new Transform(-(this._thumbX ?? 0), -(this._thumbY ?? 0) + this.height, 1)}
+ ContentScaling={returnOne}
+ PanelWidth={() => 300}
+ PanelHeight={() => 300}
+ renderDepth={0}
+ backgroundColor={returnEmptyString}
+ focus={emptyFunction}
+ parentActive={returnTrue}
+ whenActiveChanged={emptyFunction}
+ bringToFront={emptyFunction}
+ ContainingCollectionView={undefined}
+ ContainingCollectionDoc={undefined}
+ zoomToScale={emptyFunction}
+ getScale={returnOne}
+ />;
+ }
+
+ @action
+ public closeFloatingDoc = () => {
+ this._clipboardDoc = undefined;
+ }
+
+ render() {
+ trace();
+ return (
+ <div className="gestureOverlay-cont" onPointerDown={this.onPointerDown} onTouchStart={this.onReactTouchStart}>
+ {this.elements}
+
+ <div className="clipboardDoc-cont" style={{
+ transform: `translate(${this._thumbX}px, ${(this._thumbY ?? 0) - this.height}px)`,
+ height: this.height,
+ width: this.height,
+ pointerEvents: this._clipboardDoc ? "unset" : "none",
+ touchAction: this._clipboardDoc ? "unset" : "none",
+ }}>
+ {this._clipboardDoc}
+ </div>
+ <div className="filter-cont" style={{
+ transform: `translate(${this._thumbX}px, ${(this._thumbY ?? 0) - this.height}px)`,
+ height: this.height,
+ width: this.height,
+ pointerEvents: "none",
+ touchAction: "none",
+ display: this.showBounds ? "unset" : "none",
+ }}>
+ </div>
+ <TouchScrollableMenu options={this._possibilities} bounds={this.svgBounds} selectedIndex={this._selectedIndex} x={this._menuX} y={this._menuY} />
+ </div>);
+ }
+}
+
+// export class
+
+export enum ToolglassTools {
+ InkToText = "inktotext",
+ IgnoreGesture = "ignoregesture",
+ RadialMenu = "radialmenu",
+ None = "none",
+}
+
+Scripting.addGlobal("GestureOverlay", GestureOverlay);
+Scripting.addGlobal(function setToolglass(tool: any) {
+ runInAction(() => GestureOverlay.Instance.Tool = tool);
+});
+Scripting.addGlobal(function setPen(width: any, color: any) {
+ runInAction(() => {
+ GestureOverlay.Instance.SavedColor = GestureOverlay.Instance.Color;
+ GestureOverlay.Instance.Color = color;
+ GestureOverlay.Instance.SavedWidth = GestureOverlay.Instance.Width;
+ GestureOverlay.Instance.Width = width;
+ });
+});
+Scripting.addGlobal(function resetPen() {
+ runInAction(() => {
+ GestureOverlay.Instance.Color = GestureOverlay.Instance.SavedColor ?? "rgb(244, 67, 54)";
+ GestureOverlay.Instance.Width = GestureOverlay.Instance.SavedWidth ?? 5;
+ });
+});
+Scripting.addGlobal(function createText(text: any, x: any, y: any) {
+ GestureOverlay.Instance.dispatchGesture("text", [{ X: x, Y: y }], text);
+}); \ No newline at end of file
diff --git a/src/client/views/GlobalKeyHandler.ts b/src/client/views/GlobalKeyHandler.ts
index a61a1d8cb..65d327392 100644
--- a/src/client/views/GlobalKeyHandler.ts
+++ b/src/client/views/GlobalKeyHandler.ts
@@ -13,6 +13,7 @@ import { Cast, PromiseValue } from "../../new_fields/Types";
import { ScriptField } from "../../new_fields/ScriptField";
import { InkingControl } from "./InkingControl";
import { InkTool } from "../../new_fields/InkField";
+import { DocumentView } from "./nodes/DocumentView";
const modifiers = ["control", "meta", "shift", "alt"];
type KeyHandler = (keycode: string, e: KeyboardEvent) => KeyControlInfo | Promise<KeyControlInfo>;
@@ -26,7 +27,7 @@ export default class KeyManager {
private router = new Map<string, KeyHandler>();
constructor() {
- let isMac = navigator.platform.toLowerCase().indexOf("mac") >= 0;
+ const isMac = navigator.platform.toLowerCase().indexOf("mac") >= 0;
// SHIFT CONTROL ALT META
this.router.set("0000", this.unmodified);
@@ -37,22 +38,22 @@ export default class KeyManager {
}
public handle = async (e: KeyboardEvent) => {
- let keyname = e.key && e.key.toLowerCase();
+ const keyname = e.key && e.key.toLowerCase();
this.handleGreedy(keyname);
if (modifiers.includes(keyname)) {
return;
}
- let bit = (value: boolean) => value ? "1" : "0";
- let modifierIndex = bit(e.shiftKey) + bit(e.ctrlKey) + bit(e.altKey) + bit(e.metaKey);
+ const bit = (value: boolean) => value ? "1" : "0";
+ const modifierIndex = bit(e.shiftKey) + bit(e.ctrlKey) + bit(e.altKey) + bit(e.metaKey);
- let handleConstrained = this.router.get(modifierIndex);
+ const handleConstrained = this.router.get(modifierIndex);
if (!handleConstrained) {
return;
}
- let control = await handleConstrained(keyname, e);
+ const control = await handleConstrained(keyname, e);
control.stopPropagation && e.stopPropagation();
control.preventDefault && e.preventDefault();
@@ -66,7 +67,7 @@ export default class KeyManager {
private unmodified = action((keyname: string, e: KeyboardEvent) => {
switch (keyname) {
case "escape":
- let main = MainView.Instance;
+ const main = MainView.Instance;
InkingControl.Instance.switchTool(InkTool.None);
if (main.isPointerDown) {
DragManager.AbortDrag();
@@ -91,8 +92,8 @@ export default class KeyManager {
}
UndoManager.RunInBatch(() => {
SelectionManager.SelectedDocuments().map(docView => {
- let doc = docView.props.Document;
- let remove = docView.props.removeDocument;
+ const doc = docView.props.Document;
+ const remove = docView.props.removeDocument;
remove && remove(doc);
});
}, "delete");
@@ -110,7 +111,7 @@ export default class KeyManager {
let preventDefault = false;
switch (keyname) {
- case " ":
+ case "~":
DictationManager.Controls.listen({ useOverlay: true, tryExecute: true });
stopPropagation = true;
preventDefault = true;
@@ -123,10 +124,17 @@ export default class KeyManager {
}
private alt = action((keyname: string) => {
- let stopPropagation = true;
- let preventDefault = true;
+ const stopPropagation = true;
+ const preventDefault = true;
switch (keyname) {
+ case "f":
+ const dv = SelectionManager.SelectedDocuments()?.[0];
+ if (dv) {
+ const ex = dv.props.ScreenToLocalTransform().inverse().transformPoint(0, 0)[0];
+ const ey = dv.props.ScreenToLocalTransform().inverse().transformPoint(0, 0)[1];
+ DocumentView.FloatDoc(dv, ex, ey);
+ }
// case "n":
// let toggle = MainView.Instance.addMenuToggle.current!;
// toggle.checked = !toggle.checked;
@@ -192,7 +200,7 @@ export default class KeyManager {
}
break;
case "o":
- let target = SelectionManager.SelectedDocuments()[0];
+ const target = SelectionManager.SelectedDocuments()[0];
target && CollectionDockingView.Instance && CollectionDockingView.Instance.OpenFullScreen(target);
break;
case "r":
@@ -222,12 +230,12 @@ export default class KeyManager {
});
async printClipboard() {
- let text: string = await navigator.clipboard.readText();
+ const text: string = await navigator.clipboard.readText();
}
private ctrl_shift = action((keyname: string) => {
- let stopPropagation = true;
- let preventDefault = true;
+ const stopPropagation = true;
+ const preventDefault = true;
switch (keyname) {
case "z":
diff --git a/src/client/views/InkingCanvas.scss b/src/client/views/InkingCanvas.scss
deleted file mode 100644
index 8f32652ed..000000000
--- a/src/client/views/InkingCanvas.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-@import "globalCssVariables";
-
-.inkingCanvas {
- // opacity: 0.99;
- touch-action: none;
-
- .jsx-parser {
- position: absolute;
- width: 100%;
- height: 100%;
- background: inherit;
- //z-index: -1; // allows annotations to appear on videos when screen is full-size & ...
- }
-}
-
-.inkingCanvas-paths-ink,
-.inkingCanvas-paths-markers,
-.inkingCanvas-noSelect,
-.inkingCanvas-canSelect {
- position: absolute;
- top: 0;
- left: 0;
- width: 8192px;
- height: 8192px;
- cursor: "crosshair";
- pointer-events: all;
-}
-
-.inkingCanvas-canSelect,
-.inkingCanvas-noSelect {
- top: -50000px;
- left: -50000px;
- width: 100000px;
- height: 100000px;
-}
-
-.inkingCanvas-noSelect {
- pointer-events: none;
- cursor: "crosshair";
-}
-
-.inkingCanvas-paths-ink,
-.inkingCanvas-paths-markers {
- pointer-events: none;
- z-index: 10000; // overlays ink on top of everything
- cursor: "arrow";
-}
-
-.inkingCanvas-paths-markers {
- mix-blend-mode: multiply;
-} \ No newline at end of file
diff --git a/src/client/views/InkingCanvas.tsx b/src/client/views/InkingCanvas.tsx
deleted file mode 100644
index 0037b95d0..000000000
--- a/src/client/views/InkingCanvas.tsx
+++ /dev/null
@@ -1,196 +0,0 @@
-import { action, computed, trace, observable, runInAction } from "mobx";
-import { observer } from "mobx-react";
-import { Utils } from "../../Utils";
-import { Transform } from "../util/Transform";
-import "./InkingCanvas.scss";
-import { InkingControl } from "./InkingControl";
-import { InkingStroke } from "./InkingStroke";
-import React = require("react");
-import { UndoManager } from "../util/UndoManager";
-import { StrokeData, InkField, InkTool } from "../../new_fields/InkField";
-import { Doc } from "../../new_fields/Doc";
-import { Cast, PromiseValue, NumCast } from "../../new_fields/Types";
-
-interface InkCanvasProps {
- getScreenTransform: () => Transform;
- AnnotationDocument: Doc;
- Document: Doc;
- inkFieldKey: string;
- children: () => JSX.Element[];
-}
-
-@observer
-export class InkingCanvas extends React.Component<InkCanvasProps> {
- maxCanvasDim = 8192 / 2; // 1/2 of the maximum canvas dimension for Chrome
- @observable inkMidX: number = 0;
- @observable inkMidY: number = 0;
- private previousState?: Map<string, StrokeData>;
- private _currentStrokeId: string = "";
- public static IntersectStrokeRect(stroke: StrokeData, selRect: { left: number, top: number, width: number, height: number }): boolean {
- return stroke.pathData.reduce((inside: boolean, val) => inside ||
- (selRect.left < val.x && selRect.left + selRect.width > val.x &&
- selRect.top < val.y && selRect.top + selRect.height > val.y)
- , false);
- }
- public static StrokeRect(stroke: StrokeData): { left: number, top: number, right: number, bottom: number } {
- return stroke.pathData.reduce((bounds: { left: number, top: number, right: number, bottom: number }, val) =>
- ({
- left: Math.min(bounds.left, val.x), top: Math.min(bounds.top, val.y),
- right: Math.max(bounds.right, val.x), bottom: Math.max(bounds.bottom, val.y)
- })
- , { left: Number.MAX_VALUE, top: Number.MAX_VALUE, right: -Number.MAX_VALUE, bottom: -Number.MAX_VALUE });
- }
-
- componentDidMount() {
- PromiseValue(Cast(this.props.AnnotationDocument[this.props.inkFieldKey], InkField)).then(ink => runInAction(() => {
- if (ink) {
- let bounds = Array.from(ink.inkData).reduce(([mix, max, miy, may], [id, strokeData]) =>
- strokeData.pathData.reduce(([mix, max, miy, may], p) =>
- [Math.min(mix, p.x), Math.max(max, p.x), Math.min(miy, p.y), Math.max(may, p.y)],
- [mix, max, miy, may]),
- [Number.MAX_VALUE, Number.MIN_VALUE, Number.MAX_VALUE, Number.MIN_VALUE]);
- this.inkMidX = (bounds[0] + bounds[1]) / 2;
- this.inkMidY = (bounds[2] + bounds[3]) / 2;
- }
- }));
- }
-
- @computed
- get inkData(): Map<string, StrokeData> {
- let map = Cast(this.props.AnnotationDocument[this.props.inkFieldKey], InkField);
- return !map ? new Map : new Map(map.inkData);
- }
-
- set inkData(value: Map<string, StrokeData>) {
- this.props.AnnotationDocument[this.props.inkFieldKey] = new InkField(value);
- }
-
- @action
- onPointerDown = (e: React.PointerEvent): void => {
- if (e.button !== 0 || e.altKey || e.ctrlKey || InkingControl.Instance.selectedTool === InkTool.None) {
- return;
- }
-
- document.addEventListener("pointermove", this.onPointerMove, true);
- document.addEventListener("pointerup", this.onPointerUp, true);
- e.stopPropagation();
- e.preventDefault();
-
- this.previousState = new Map(this.inkData);
-
- if (InkingControl.Instance.selectedTool !== InkTool.Eraser && InkingControl.Instance.selectedTool !== InkTool.Scrubber) {
- // start the new line, saves a uuid to represent the field of the stroke
- this._currentStrokeId = Utils.GenerateGuid();
- const data = this.inkData;
- data.set(this._currentStrokeId, {
- pathData: [this.relativeCoordinatesForEvent(e.clientX, e.clientY)],
- color: InkingControl.Instance.selectedColor,
- width: InkingControl.Instance.selectedWidth,
- tool: InkingControl.Instance.selectedTool,
- displayTimecode: NumCast(this.props.Document.currentTimecode, -1),
- creationTime: new Date().getTime()
- });
- this.inkData = data;
- }
- }
-
- @action
- onPointerUp = (e: PointerEvent): void => {
- document.removeEventListener("pointermove", this.onPointerMove, true);
- document.removeEventListener("pointerup", this.onPointerUp, true);
- let coord = this.relativeCoordinatesForEvent(e.clientX, e.clientY);
- if (Math.abs(coord.x - this.inkMidX) > 500 || Math.abs(coord.y - this.inkMidY) > 500) {
- this.inkMidX = coord.x;
- this.inkMidY = coord.y;
- }
- e.stopPropagation();
- e.preventDefault();
-
- const batch = UndoManager.StartBatch("One ink stroke");
- const oldState = this.previousState || new Map;
- this.previousState = undefined;
- const newState = new Map(this.inkData);
- UndoManager.AddEvent({
- undo: () => this.inkData = oldState,
- redo: () => this.inkData = newState
- });
- batch.end();
- }
-
- @action
- onPointerMove = (e: PointerEvent): void => {
- e.stopPropagation();
- e.preventDefault();
- if (InkingControl.Instance.selectedTool !== InkTool.Eraser && InkingControl.Instance.selectedTool !== InkTool.Scrubber) {
- let data = this.inkData; // add points to new line as it is being drawn
- let strokeData = data.get(this._currentStrokeId);
- if (strokeData) {
- strokeData.pathData.push(this.relativeCoordinatesForEvent(e.clientX, e.clientY));
- data.set(this._currentStrokeId, strokeData);
- }
- this.inkData = data;
- }
- }
-
- relativeCoordinatesForEvent = (ex: number, ey: number): { x: number, y: number } => {
- let [x, y] = this.props.getScreenTransform().transformPoint(ex, ey);
- return { x, y };
- }
-
- @action
- removeLine = (id: string): void => {
- if (!this.previousState) {
- this.previousState = new Map(this.inkData);
- document.addEventListener("pointermove", this.onPointerMove, true);
- document.addEventListener("pointerup", this.onPointerUp, true);
- }
- let data = this.inkData;
- data.delete(id);
- this.inkData = data;
- }
-
- @computed
- get drawnPaths() {
- let curTimecode = NumCast(this.props.Document.currentTimecode, -1);
- let paths = Array.from(this.inkData).reduce((paths, [id, strokeData]) => {
- if (strokeData.displayTimecode === -1 || (Math.abs(Math.round(strokeData.displayTimecode) - Math.round(curTimecode)) < 3)) {
- paths.push(<InkingStroke key={id} id={id}
- line={strokeData.pathData}
- count={strokeData.pathData.length}
- offsetX={this.maxCanvasDim - this.inkMidX}
- offsetY={this.maxCanvasDim - this.inkMidY}
- color={strokeData.color}
- width={strokeData.width}
- tool={strokeData.tool}
- creationTime={strokeData.creationTime}
- deleteCallback={this.removeLine} />);
- }
- return paths;
- }, [] as JSX.Element[]);
- let markerPaths = paths.filter(path => path.props.tool === InkTool.Highlighter);
- let penPaths = paths.filter(path => path.props.tool !== InkTool.Highlighter);
- return [!penPaths.length ? (null) :
- <svg className={`inkingCanvas-paths-ink`} key="Pens"
- style={{ left: `${this.inkMidX - this.maxCanvasDim}px`, top: `${this.inkMidY - this.maxCanvasDim}px` }} >
- {penPaths}
- </svg>,
- !markerPaths.length ? (null) :
- <svg className={`inkingCanvas-paths-markers`} key="Markers"
- style={{ left: `${this.inkMidX - this.maxCanvasDim}px`, top: `${this.inkMidY - this.maxCanvasDim}px` }}>
- {markerPaths}
- </svg>];
- }
-
- render() {
- let svgCanvasStyle = InkingControl.Instance.selectedTool !== InkTool.None && !this.props.Document.isBackground ? "canSelect" : "noSelect";
- let cursor = svgCanvasStyle === "canSelect" ? (InkingControl.Instance.selectedTool === InkTool.Eraser ||
- InkingControl.Instance.selectedTool === InkTool.Scrubber ? "pointer" : "default") : undefined;
- return (
- <div className="inkingCanvas">
- <div className={`inkingCanvas-${svgCanvasStyle}`} onPointerDown={this.onPointerDown} style={{ cursor: cursor }} />
- {this.props.children()}
- {this.drawnPaths}
- </div >
- );
- }
-} \ No newline at end of file
diff --git a/src/client/views/InkingControl.tsx b/src/client/views/InkingControl.tsx
index 75faa9641..6cee702ee 100644
--- a/src/client/views/InkingControl.tsx
+++ b/src/client/views/InkingControl.tsx
@@ -1,22 +1,19 @@
import { action, computed, observable } from "mobx";
-import { ColorResult } from 'react-color';
+import { ColorState } from 'react-color';
import { Doc } from "../../new_fields/Doc";
import { InkTool } from "../../new_fields/InkField";
-import { List } from "../../new_fields/List";
-import { listSpec } from "../../new_fields/Schema";
-import { Cast, NumCast, StrCast } from "../../new_fields/Types";
-import { Utils } from "../../Utils";
+import { FieldValue, NumCast, StrCast } from "../../new_fields/Types";
+import { CurrentUserUtils } from "../../server/authentication/models/current_user_utils";
import { Scripting } from "../util/Scripting";
import { SelectionManager } from "../util/SelectionManager";
-import { undoBatch, UndoManager } from "../util/UndoManager";
-import { CurrentUserUtils } from "../../server/authentication/models/current_user_utils";
-
+import { undoBatch } from "../util/UndoManager";
+import GestureOverlay from "./GestureOverlay";
export class InkingControl {
@observable static Instance: InkingControl;
- @observable private _selectedTool: InkTool = InkTool.None;
- @observable private _selectedColor: string = "rgb(244, 67, 54)";
- @observable private _selectedWidth: string = "5";
+ @computed private get _selectedTool(): InkTool { return FieldValue(NumCast(CurrentUserUtils.UserDocument.inkTool)) ?? InkTool.None; }
+ @computed private get _selectedColor(): string { return GestureOverlay.Instance.Color ?? FieldValue(StrCast(CurrentUserUtils.UserDocument.inkColor)) ?? "rgb(244, 67, 54)"; }
+ @computed private get _selectedWidth(): string { return GestureOverlay.Instance.Width?.toString() ?? FieldValue(StrCast(CurrentUserUtils.UserDocument.inkWidth)) ?? "5"; }
@observable public _open: boolean = false;
constructor() {
@@ -24,7 +21,8 @@ export class InkingControl {
}
switchTool = action((tool: InkTool): void => {
- this._selectedTool = tool;
+ // this._selectedTool = tool;
+ CurrentUserUtils.UserDocument.inkTool = tool;
});
decimalToHexString(number: number) {
if (number < 0) {
@@ -35,71 +33,25 @@ export class InkingControl {
}
@undoBatch
- switchColor = action((color: ColorResult): void => {
- this._selectedColor = color.hex + (color.rgb.a !== undefined ? this.decimalToHexString(Math.round(color.rgb.a * 255)) : "ff");
+ switchColor = action((color: ColorState): void => {
+ CurrentUserUtils.UserDocument.inkColor = color.hex + (color.rgb.a !== undefined ? this.decimalToHexString(Math.round(color.rgb.a * 255)) : "ff");
if (InkingControl.Instance.selectedTool === InkTool.None) {
- let selected = SelectionManager.SelectedDocuments();
- let oldColors = selected.map(view => {
- let targetDoc = view.props.Document.dragFactory instanceof Doc ? view.props.Document.dragFactory :
+ const selected = SelectionManager.SelectedDocuments();
+ selected.map(view => {
+ const targetDoc = view.props.Document.dragFactory instanceof Doc ? view.props.Document.dragFactory :
view.props.Document.layout instanceof Doc ? view.props.Document.layout :
- view.props.Document.isTemplateField ? view.props.Document : Doc.GetProto(view.props.Document);
- let sel = window.getSelection();
- if (StrCast(targetDoc.layout).indexOf("FormattedTextBox") !== -1 && (!sel || sel.toString() !== "")) {
- targetDoc.color = this._selectedColor;
- return {
- target: targetDoc,
- previous: StrCast(targetDoc.color)
- };
- }
- let oldColor = StrCast(targetDoc.backgroundColor);
- let matchedColor = this._selectedColor;
- const cvd = view.props.ContainingCollectionDoc;
- let ruleProvider = view.props.ruleProvider;
- if (cvd) {
- if (!cvd.colorPalette) {
- let defaultPalette = ["rg(114,229,239)", "rgb(255,246,209)", "rgb(255,188,156)", "rgb(247,220,96)", "rgb(122,176,238)",
- "rgb(209,150,226)", "rgb(127,235,144)", "rgb(252,188,189)", "rgb(247,175,81)",];
- let colorPalette = Cast(cvd.colorPalette, listSpec("string"));
- if (!colorPalette) cvd.colorPalette = new List<string>(defaultPalette);
- }
- let cp = Cast(cvd.colorPalette, listSpec("string")) as string[];
- let closest = 0;
- let dist = 10000000;
- let ccol = Utils.fromRGBAstr(StrCast(targetDoc.backgroundColor));
- for (let i = 0; i < cp.length; i++) {
- let cpcol = Utils.fromRGBAstr(cp[i]);
- let d = Math.sqrt((ccol.r - cpcol.r) * (ccol.r - cpcol.r) + (ccol.b - cpcol.b) * (ccol.b - cpcol.b) + (ccol.g - cpcol.g) * (ccol.g - cpcol.g));
- if (d < dist) {
- dist = d;
- closest = i;
- }
- }
- cp[closest] = "rgba(" + color.rgb.r + "," + color.rgb.g + "," + color.rgb.b + "," + color.rgb.a + ")";
- cvd.colorPalette = new List(cp);
- matchedColor = cp[closest];
- ruleProvider = (view.props.Document.heading && ruleProvider) ? ruleProvider : undefined;
- ruleProvider && ((Doc.GetProto(ruleProvider)["ruleColor_" + NumCast(view.props.Document.heading)] = Utils.toRGBAstr(color.rgb)));
- }
- (!ruleProvider && targetDoc) && (Doc.Layout(view.props.Document).backgroundColor = matchedColor);
-
- return {
- target: targetDoc,
- previous: oldColor
- };
+ view.props.Document.isTemplateForField ? view.props.Document : Doc.GetProto(view.props.Document);
+ targetDoc && (Doc.Layout(view.props.Document).backgroundColor = CurrentUserUtils.UserDocument.inkColor);
});
- //let captured = this._selectedColor;
- // UndoManager.AddEvent({
- // undo: () => oldColors.forEach(pair => pair.target.backgroundColor = pair.previous),
- // redo: () => oldColors.forEach(pair => pair.target.backgroundColor = captured)
- // });
} else {
CurrentUserUtils.ActivePen && (CurrentUserUtils.ActivePen.backgroundColor = this._selectedColor);
}
});
@action
switchWidth = (width: string): void => {
- this._selectedWidth = width;
+ // this._selectedWidth = width;
+ CurrentUserUtils.UserDocument.inkWidth = width;
}
@computed
@@ -114,7 +66,8 @@ export class InkingControl {
@action
updateSelectedColor(value: string) {
- this._selectedColor = value;
+ // this._selectedColor = value;
+ CurrentUserUtils.UserDocument.inkColor = value;
}
@computed
@@ -127,6 +80,7 @@ Scripting.addGlobal(function activatePen(pen: any, width: any, color: any) { Ink
Scripting.addGlobal(function activateBrush(pen: any, width: any, color: any) { InkingControl.Instance.switchTool(pen ? InkTool.Highlighter : InkTool.None); InkingControl.Instance.switchWidth(width); InkingControl.Instance.updateSelectedColor(color); });
Scripting.addGlobal(function activateEraser(pen: any) { return InkingControl.Instance.switchTool(pen ? InkTool.Eraser : InkTool.None); });
Scripting.addGlobal(function activateScrubber(pen: any) { return InkingControl.Instance.switchTool(pen ? InkTool.Scrubber : InkTool.None); });
+Scripting.addGlobal(function activateStamp(pen: any) { return InkingControl.Instance.switchTool(pen ? InkTool.Stamp : InkTool.None); });
Scripting.addGlobal(function deactivateInk() { return InkingControl.Instance.switchTool(InkTool.None); });
Scripting.addGlobal(function setInkWidth(width: any) { return InkingControl.Instance.switchWidth(width); });
Scripting.addGlobal(function setInkColor(color: any) { return InkingControl.Instance.updateSelectedColor(color); }); \ No newline at end of file
diff --git a/src/client/views/InkingStroke.tsx b/src/client/views/InkingStroke.tsx
index 332c22512..f315ce12a 100644
--- a/src/client/views/InkingStroke.tsx
+++ b/src/client/views/InkingStroke.tsx
@@ -1,70 +1,72 @@
+import { computed } from "mobx";
import { observer } from "mobx-react";
-import { observable, trace, runInAction } from "mobx";
+import { documentSchema } from "../../new_fields/documentSchemas";
+import { InkData, InkField, InkTool } from "../../new_fields/InkField";
+import { makeInterface } from "../../new_fields/Schema";
+import { Cast } from "../../new_fields/Types";
+import { DocExtendableComponent } from "./DocComponent";
import { InkingControl } from "./InkingControl";
-import React = require("react");
-import { InkTool } from "../../new_fields/InkField";
import "./InkingStroke.scss";
-import { AudioBox } from "./nodes/AudioBox";
+import { FieldView, FieldViewProps } from "./nodes/FieldView";
+import React = require("react");
+import { TraceMobx } from "../../new_fields/util";
+import { InteractionUtils } from "../util/InteractionUtils";
+import { ContextMenu } from "./ContextMenu";
+import { CognitiveServices } from "../cognitive_services/CognitiveServices";
+import { faPaintBrush } from "@fortawesome/free-solid-svg-icons";
+import { library } from "@fortawesome/fontawesome-svg-core";
+library.add(faPaintBrush);
-interface StrokeProps {
- offsetX: number;
- offsetY: number;
- id: string;
- count: number;
- line: Array<{ x: number, y: number }>;
- color: string;
- width: string;
- tool: InkTool;
- creationTime: number;
- deleteCallback: (index: string) => void;
-}
+type InkDocument = makeInterface<[typeof documentSchema]>;
+const InkDocument = makeInterface(documentSchema);
@observer
-export class InkingStroke extends React.Component<StrokeProps> {
+export class InkingStroke extends DocExtendableComponent<FieldViewProps, InkDocument>(InkDocument) {
+ public static LayoutString(fieldStr: string) { return FieldView.LayoutString(InkingStroke, fieldStr); }
- @observable private _strokeTool: InkTool = this.props.tool;
- @observable private _strokeColor: string = this.props.color;
- @observable private _strokeWidth: string = this.props.width;
-
- deleteStroke = (e: React.PointerEvent): void => {
- if (InkingControl.Instance.selectedTool === InkTool.Eraser && e.buttons === 1) {
- this.props.deleteCallback(this.props.id);
- e.stopPropagation();
- e.preventDefault();
- }
- if (InkingControl.Instance.selectedTool === InkTool.Scrubber && e.buttons === 1) {
- AudioBox.SetScrubTime(this.props.creationTime);
- e.stopPropagation();
- e.preventDefault();
- }
- }
+ @computed get PanelWidth() { return this.props.PanelWidth(); }
+ @computed get PanelHeight() { return this.props.PanelHeight(); }
- parseData = (line: Array<{ x: number, y: number }>): string => {
- return !line.length ? "" : "M " + line.map(p => (p.x + this.props.offsetX) + " " + (p.y + this.props.offsetY)).join(" L ");
- }
-
- createStyle() {
- switch (this._strokeTool) {
- // add more tool styles here
- default:
- return {
- fill: "none",
- stroke: this._strokeColor,
- strokeWidth: this._strokeWidth + "px",
- };
- }
+ private analyzeStrokes = () => {
+ const data: InkData = Cast(this.Document.data, InkField)?.inkData ?? [];
+ CognitiveServices.Inking.Appliers.ConcatenateHandwriting(this.Document, ["inkAnalysis", "handwriting"], [data]);
}
render() {
- let pathStyle = this.createStyle();
- let pathData = this.parseData(this.props.line);
- let pathlength = this.props.count; // bcz: this is needed to force reactions to the line's data changes
- let marker = this.props.tool === InkTool.Highlighter ? "-marker" : "";
-
- let pointerEvents: any = InkingControl.Instance.selectedTool === InkTool.Eraser ||
- InkingControl.Instance.selectedTool === InkTool.Scrubber ? "all" : "none";
- return (<path className={`inkingStroke${marker}`} d={pathData} style={{ ...pathStyle, pointerEvents: pointerEvents }}
- strokeLinejoin="round" strokeLinecap="round" onPointerOver={this.deleteStroke} onPointerDown={this.deleteStroke} />);
+ TraceMobx();
+ const data: InkData = Cast(this.Document.data, InkField)?.inkData ?? [];
+ const xs = data.map(p => p.X);
+ const ys = data.map(p => p.Y);
+ const left = Math.min(...xs);
+ const top = Math.min(...ys);
+ const right = Math.max(...xs);
+ const bottom = Math.max(...ys);
+ const points = InteractionUtils.CreatePolyline(data, left, top, this.Document.color ?? InkingControl.Instance.selectedColor, this.Document.strokeWidth ?? parseInt(InkingControl.Instance.selectedWidth));
+ const width = right - left;
+ const height = bottom - top;
+ const scaleX = this.PanelWidth / width;
+ const scaleY = this.PanelHeight / height;
+ return (
+ <svg
+ width={width}
+ height={height}
+ style={{
+ transformOrigin: "top left",
+ transform: `scale(${scaleX}, ${scaleY})`,
+ mixBlendMode: this.Document.tool === InkTool.Highlighter ? "multiply" : "unset",
+ pointerEvents: "all"
+ }}
+ onContextMenu={() => {
+ ContextMenu.Instance.addItem({
+ description: "Analyze Stroke",
+ event: this.analyzeStrokes,
+ icon: "paint-brush"
+ });
+ }}
+ >
+ {points}
+ </svg>
+ );
}
} \ No newline at end of file
diff --git a/src/client/views/Main.scss b/src/client/views/Main.scss
index 134a4ac85..4709e7ef2 100644
--- a/src/client/views/Main.scss
+++ b/src/client/views/Main.scss
@@ -5,7 +5,7 @@ html,
body {
width: 100%;
height: 100%;
- overflow: auto;
+ overflow: hidden;
font-family: $sans-serif;
margin: 0;
position: absolute;
@@ -13,12 +13,12 @@ body {
left: 0;
}
-div {
- user-select: none;
- -moz-user-select: none;
- -webkit-user-select: none;
- -ms-user-select: none;
-}
+// div {
+// user-select: none;
+// -moz-user-select: none;
+// -webkit-user-select: none;
+// -ms-user-select: none;
+// }
.jsx-parser {
@@ -27,7 +27,7 @@ div {
pointer-events: none;
border-radius: inherit;
position: inherit;
- background: inherit;
+ // background: inherit;
}
p {
@@ -38,7 +38,7 @@ p {
::-webkit-scrollbar {
-webkit-appearance: none;
height: 8px;
- width: 8px;
+ width: 8px;
}
::-webkit-scrollbar-thumb {
@@ -65,10 +65,6 @@ button:hover {
cursor: pointer;
}
-#root {
- overflow: visible;
-}
-
.svg-inline--fa {
vertical-align: unset;
} \ No newline at end of file
diff --git a/src/client/views/MainView.scss b/src/client/views/MainView.scss
index a858a73c7..d39c217ec 100644
--- a/src/client/views/MainView.scss
+++ b/src/client/views/MainView.scss
@@ -4,13 +4,21 @@
.mainView-tabButtons {
position: relative;
- width:100%;
+ width: 100%;
}
+
+.mainContent-div {
+ position: relative;
+ width: 100%;
+ height: 100%;
+}
+
// add nodes menu. Note that the + button is actually an input label, not an actual button.
.mainView-docButtons {
position: absolute;
bottom: 20px;
- left: 250px;
+ left: calc(100% + 5px);
+ z-index: 1;
}
#mainView-container {
@@ -19,24 +27,28 @@
position: absolute;
top: 0;
left: 0;
- overflow: auto;
z-index: 1;
+ touch-action: none;
}
+
.mainView-mainContent {
- width:100%;
- height:100%;
- position:absolute;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ display: flex;
}
-.mainView-flyoutContainer{
- display:flex;
+
+.mainView-flyoutContainer {
+ display: flex;
flex-direction: column;
- position: absolute;
- width:100%;
- height:100%;
+ position: relative;
+ height: 100%;
+
.documentView-node-topmost {
background: lightgrey;
}
}
+
.mainView-mainDiv {
width: 100%;
height: 100%;
@@ -46,6 +58,18 @@
overflow: hidden;
}
+
+.mainView-settings {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ font-size: 8px;
+}
+
+.mainView-settings:hover {
+ transform: none !important;
+}
+
.mainView-logout {
position: absolute;
right: 0;
@@ -53,28 +77,37 @@
font-size: 8px;
}
+.mainView-logout:hover {
+ transform: none !important;
+}
+
.mainView-libraryFlyout {
height: 100%;
+ width: 100%;
position: absolute;
display: flex;
flex-direction: column;
+ z-index: 2;
}
.mainView-expandFlyoutButton {
position: absolute;
- top: 5px;
- right: 5px;
+ top: 100px;
+ right: 30px;
cursor: pointer;
}
.mainView-libraryHandle {
width: 20px;
+ left: calc(100% - 10px);
height: 40px;
top: 50%;
border: 1px solid black;
border-radius: 5px;
position: absolute;
- z-index: 1;
+ z-index: 2;
+ touch-action: none;
+ cursor: ew-resize;
}
.mainView-workspace {
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index 825856ff3..92b26b9bc 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -1,7 +1,7 @@
import { library } from '@fortawesome/fontawesome-svg-core';
import {
- faArrowDown, faArrowUp, faBolt, faCaretUp, faCat, faCheck, faChevronRight, faClone, faCloudUploadAlt, faCommentAlt, faCut, faEllipsisV, faExclamation, faFilePdf, faFilm, faFont, faGlobeAsia, faLongArrowAltRight,
- faMusic, faObjectGroup, faPause, faMousePointer, faPenNib, faFileAudio, faPen, faEraser, faPlay, faPortrait, faRedoAlt, faThumbtack, faTree, faTv, faUndoAlt, faHighlighter, faMicrophone
+ faArrowDown, faBullseye, faFilter, faArrowUp, faBolt, faCaretUp, faCat, faCheck, faChevronRight, faClone, faCloudUploadAlt, faCommentAlt, faCut, faEllipsisV, faExclamation, faFilePdf, faFilm, faFont, faGlobeAsia, faLongArrowAltRight,
+ faMusic, faObjectGroup, faPause, faMousePointer, faPenNib, faFileAudio, faPen, faEraser, faPlay, faPortrait, faRedoAlt, faThumbtack, faTree, faTv, faUndoAlt, faHighlighter, faMicrophone, faCompressArrowsAlt, faPhone, faStamp, faClipboard
} from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { action, computed, configure, observable, reaction, runInAction } from 'mobx';
@@ -15,15 +15,14 @@ import { List } from '../../new_fields/List';
import { listSpec } from '../../new_fields/Schema';
import { Cast, FieldValue, StrCast } from '../../new_fields/Types';
import { CurrentUserUtils } from '../../server/authentication/models/current_user_utils';
-import { RouteStore } from '../../server/RouteStore';
-import { emptyFunction, returnEmptyString, returnFalse, returnOne, returnTrue, Utils } from '../../Utils';
+import { emptyFunction, returnEmptyString, returnFalse, returnOne, returnTrue, Utils, emptyPath } from '../../Utils';
import GoogleAuthenticationManager from '../apis/GoogleAuthenticationManager';
import { DocServer } from '../DocServer';
import { Docs, DocumentOptions } from '../documents/Documents';
import { HistoryUtil } from '../util/History';
import SharingManager from '../util/SharingManager';
import { Transform } from '../util/Transform';
-import { CollectionLinearView } from './CollectionLinearView';
+import { CollectionLinearView } from './collections/CollectionLinearView';
import { CollectionViewType, CollectionView } from './collections/CollectionView';
import { CollectionDockingView } from './collections/CollectionDockingView';
import { ContextMenu } from './ContextMenu';
@@ -41,13 +40,19 @@ import { SchemaHeaderField, RandomPastel } from '../../new_fields/SchemaHeaderFi
import { RecommendationsBox } from './RecommendationsBox';
import { PresBox } from './nodes/PresBox';
import { OverlayView } from './OverlayView';
+import MarqueeOptionsMenu from './collections/collectionFreeForm/MarqueeOptionsMenu';
+import GestureOverlay from './GestureOverlay';
import { Scripting } from '../util/Scripting';
import { AudioBox } from './nodes/AudioBox';
+import SettingsManager from '../util/SettingsManager';
+import { TraceMobx } from '../../new_fields/util';
+import { RadialMenu } from './nodes/RadialMenu';
+import RichTextMenu from '../util/RichTextMenu';
@observer
export class MainView extends React.Component {
public static Instance: MainView;
- private _buttonBarHeight = 75;
+ private _buttonBarHeight = 35;
private _flyoutSizeOnDown = 0;
private _urlState: HistoryUtil.DocUrl;
private _docBtnRef = React.createRef<HTMLDivElement>();
@@ -60,14 +65,15 @@ export class MainView extends React.Component {
@computed private get userDoc() { return CurrentUserUtils.UserDocument; }
@computed private get mainContainer() { return this.userDoc ? FieldValue(Cast(this.userDoc.activeWorkspace, Doc)) : CurrentUserUtils.GuestWorkspace; }
@computed public get mainFreeform(): Opt<Doc> { return (docs => (docs && docs.length > 1) ? docs[1] : undefined)(DocListCast(this.mainContainer!.data)); }
+ @computed public get sidebarButtonsDoc() { return Cast(CurrentUserUtils.UserDocument.sidebarButtons, Doc) as Doc; }
public isPointerDown = false;
- componentWillMount() {
- var tag = document.createElement('script');
+ componentDidMount() {
+ const tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
- var firstScriptTag = document.getElementsByTagName('script')[0];
+ const firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode!.insertBefore(tag, firstScriptTag);
window.removeEventListener("keydown", KeyManager.Instance.handle);
window.addEventListener("keydown", KeyManager.Instance.handle);
@@ -85,10 +91,10 @@ export class MainView extends React.Component {
this._urlState = HistoryUtil.parseUrl(window.location) || {} as any;
// causes errors to be generated when modifying an observable outside of an action
configure({ enforceActions: "observed" });
- if (window.location.pathname !== RouteStore.home) {
- let pathname = window.location.pathname.substr(1).split("/");
+ if (window.location.pathname !== "/home") {
+ const pathname = window.location.pathname.substr(1).split("/");
if (pathname.length > 1) {
- let type = pathname[0];
+ const type = pathname[0];
if (type === "doc") {
CurrentUserUtils.MainDocId = pathname[1];
if (!this.userDoc) {
@@ -121,6 +127,7 @@ export class MainView extends React.Component {
library.add(faMusic);
library.add(faTree);
library.add(faPlay);
+ library.add(faCompressArrowsAlt);
library.add(faPause);
library.add(faClone);
library.add(faCut);
@@ -129,12 +136,18 @@ export class MainView extends React.Component {
library.add(faLongArrowAltRight);
library.add(faCheck);
library.add(faCaretUp);
+ library.add(faFilter);
+ library.add(faBullseye);
library.add(faArrowDown);
library.add(faArrowUp);
library.add(faCloudUploadAlt);
library.add(faBolt);
library.add(faChevronRight);
library.add(faEllipsisV);
+ library.add(faMusic);
+ library.add(faPhone);
+ library.add(faClipboard);
+ library.add(faStamp);
this.initEventListeners();
this.initAuthenticationRouters();
}
@@ -160,7 +173,7 @@ export class MainView extends React.Component {
initAuthenticationRouters = async () => {
// Load the user's active workspace, or create a new one if initial session after signup
- let received = CurrentUserUtils.MainDocId;
+ const received = CurrentUserUtils.MainDocId;
if (received && !this.userDoc) {
reaction(
() => CurrentUserUtils.GuestTarget,
@@ -170,14 +183,14 @@ export class MainView extends React.Component {
} else {
if (received && this._urlState.sharing) {
reaction(() => CollectionDockingView.Instance && CollectionDockingView.Instance.initialized,
- initialized => initialized && received && DocServer.GetRefField(received).then(field => {
- if (field instanceof Doc && field.viewType !== CollectionViewType.Docking) {
- CollectionDockingView.AddRightSplit(field, undefined);
+ initialized => initialized && received && DocServer.GetRefField(received).then(docField => {
+ if (docField instanceof Doc && docField._viewType !== CollectionViewType.Docking) {
+ CollectionDockingView.AddRightSplit(docField, undefined);
}
}),
);
}
- let doc = this.userDoc && await Cast(this.userDoc.activeWorkspace, Doc);
+ const doc = this.userDoc && await Cast(this.userDoc.activeWorkspace, Doc);
if (doc) {
this.openWorkspace(doc);
} else {
@@ -188,35 +201,33 @@ export class MainView extends React.Component {
@action
createNewWorkspace = async (id?: string) => {
- let freeformOptions: DocumentOptions = {
+ const workspaces = Cast(this.userDoc.workspaces, Doc) as Doc;
+ const workspaceCount = DocListCast(workspaces.data).length + 1;
+ const freeformOptions: DocumentOptions = {
x: 0,
y: 400,
- width: this._panelWidth * .7,
- height: this._panelHeight,
- title: "My Blank Collection",
+ _width: this._panelWidth * .7,
+ _height: this._panelHeight,
+ title: "Collection " + workspaceCount,
backgroundColor: "white"
};
- let workspaces: FieldResult<Doc>;
- let freeformDoc = CurrentUserUtils.GuestTarget || Docs.Create.FreeformDocument([], freeformOptions);
- var dockingLayout = { content: [{ type: 'row', content: [CollectionDockingView.makeDocumentConfig(freeformDoc, freeformDoc, 600)] }] };
- let mainDoc = Docs.Create.DockDocument([freeformDoc], JSON.stringify(dockingLayout), {}, id);
- if (this.userDoc && ((workspaces = Cast(this.userDoc.workspaces, Doc)) instanceof Doc)) {
- Doc.AddDocToList(workspaces, "data", mainDoc);
- mainDoc.title = `Workspace ${DocListCast(workspaces.data).length}`;
- }
+ const freeformDoc = CurrentUserUtils.GuestTarget || Docs.Create.FreeformDocument([], freeformOptions);
+ Doc.AddDocToList(Doc.GetProto(CurrentUserUtils.UserDocument.documents as Doc), "data", freeformDoc);
+ const mainDoc = Docs.Create.StandardCollectionDockingDocument([{ doc: freeformDoc, initialWidth: 600, path: [Doc.UserDoc().documents as Doc] }], { title: `Workspace ${workspaceCount}` }, id, "row");
+ Doc.AddDocToList(workspaces, "data", mainDoc);
// bcz: strangely, we need a timeout to prevent exceptions/issues initializing GoldenLayout (the rendering engine for Main Container)
setTimeout(() => this.openWorkspace(mainDoc), 0);
}
@action
- openWorkspace = async (doc: Doc, fromHistory = false) => {
+ openWorkspace = (doc: Doc, fromHistory = false) => {
CurrentUserUtils.MainDocId = doc[Id];
if (doc) { // this has the side-effect of setting the main container since we're assigning the active/guest workspace
!("presentationView" in doc) && (doc.presentationView = new List<Doc>([Docs.Create.TreeDocument([], { title: "Presentation" })]));
this.userDoc ? (this.userDoc.activeWorkspace = doc) : (CurrentUserUtils.GuestWorkspace = doc);
}
- let state = this._urlState;
+ const state = this._urlState;
if (state.sharing === true && !this.userDoc) {
DocServer.Control.makeReadOnly();
} else {
@@ -264,58 +275,65 @@ export class MainView extends React.Component {
getPHeight = () => this._panelHeight;
getContentsHeight = () => this._panelHeight - this._buttonBarHeight;
+ @computed get mainDocView() {
+ return <DocumentView Document={this.mainContainer!}
+ DataDoc={undefined}
+ LibraryPath={emptyPath}
+ addDocument={undefined}
+ addDocTab={this.addDocTabFunc}
+ pinToPres={emptyFunction}
+ onClick={undefined}
+ removeDocument={undefined}
+ ScreenToLocalTransform={Transform.Identity}
+ ContentScaling={returnOne}
+ PanelWidth={this.getPWidth}
+ PanelHeight={this.getPHeight}
+ renderDepth={0}
+ backgroundColor={returnEmptyString}
+ focus={emptyFunction}
+ parentActive={returnTrue}
+ whenActiveChanged={emptyFunction}
+ bringToFront={emptyFunction}
+ ContainingCollectionView={undefined}
+ ContainingCollectionDoc={undefined}
+ zoomToScale={emptyFunction}
+ getScale={returnOne}
+ />;
+ }
@computed get dockingContent() {
+ TraceMobx();
const mainContainer = this.mainContainer;
- let flyoutWidth = this.flyoutWidth; // bcz: need to be here because Measure messes with observables.
- let flyoutTranslate = this._flyoutTranslate;
+ const width = this.flyoutWidth;
return <Measure offset onResize={this.onResize}>
{({ measureRef }) =>
- <div ref={measureRef} id="mainContent-div" style={{ width: `calc(100% - ${flyoutTranslate ? flyoutWidth : 0}px`, transform: `translate(${flyoutTranslate ? flyoutWidth : 0}px, 0px)` }} onDrop={this.onDrop}>
- {!mainContainer ? (null) :
- <DocumentView Document={mainContainer}
- DataDoc={undefined}
- addDocument={undefined}
- addDocTab={this.addDocTabFunc}
- pinToPres={emptyFunction}
- onClick={undefined}
- ruleProvider={undefined}
- removeDocument={undefined}
- ScreenToLocalTransform={Transform.Identity}
- ContentScaling={returnOne}
- PanelWidth={this.getPWidth}
- PanelHeight={this.getPHeight}
- renderDepth={0}
- backgroundColor={returnEmptyString}
- focus={emptyFunction}
- parentActive={returnTrue}
- whenActiveChanged={emptyFunction}
- bringToFront={emptyFunction}
- ContainingCollectionView={undefined}
- ContainingCollectionDoc={undefined}
- zoomToScale={emptyFunction}
- getScale={returnOne}
- />}
+ <div ref={measureRef} className="mainContent-div" onDrop={this.onDrop} style={{ width: `calc(100% - ${width}px)` }}>
+ {!mainContainer ? (null) : this.mainDocView}
</div>
}
</Measure>;
}
+ _canClick = false;
onPointerDown = (e: React.PointerEvent) => {
- this._flyoutSizeOnDown = e.clientX;
- document.removeEventListener("pointermove", this.onPointerMove);
- document.removeEventListener("pointerup", this.onPointerUp);
- document.addEventListener("pointermove", this.onPointerMove);
- document.addEventListener("pointerup", this.onPointerUp);
- e.stopPropagation();
- e.preventDefault();
+ if (this._flyoutTranslate) {
+ this._canClick = true;
+ this._flyoutSizeOnDown = e.clientX;
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ document.addEventListener("pointermove", this.onPointerMove);
+ document.addEventListener("pointerup", this.onPointerUp);
+ e.stopPropagation();
+ e.preventDefault();
+ }
}
@action
pointerOverDragger = () => {
- if (this.flyoutWidth === 0) {
- this.flyoutWidth = 250;
- this._flyoutTranslate = false;
- }
+ // if (this.flyoutWidth === 0) {
+ // this.flyoutWidth = 250;
+ // this.sidebarButtonsDoc.columnWidth = this.flyoutWidth / 3 - 30;
+ // this._flyoutTranslate = false;
+ // }
}
@action
@@ -329,46 +347,42 @@ export class MainView extends React.Component {
@action
onPointerMove = (e: PointerEvent) => {
this.flyoutWidth = Math.max(e.clientX, 0);
+ Math.abs(this.flyoutWidth - this._flyoutSizeOnDown) > 6 && (this._canClick = false);
+ this.sidebarButtonsDoc.columnWidth = this.flyoutWidth / 3 - 30;
}
@action
onPointerUp = (e: PointerEvent) => {
- if (Math.abs(e.clientX - this._flyoutSizeOnDown) < 4) {
- this.flyoutWidth = this.flyoutWidth < 5 ? 250 : 0;
+ if (Math.abs(e.clientX - this._flyoutSizeOnDown) < 4 && this._canClick) {
+ this.flyoutWidth = this.flyoutWidth < 15 ? 250 : 0;
+ this.flyoutWidth && (this.sidebarButtonsDoc.columnWidth = this.flyoutWidth / 3 - 30);
}
document.removeEventListener("pointermove", this.onPointerMove);
document.removeEventListener("pointerup", this.onPointerUp);
}
flyoutWidthFunc = () => this.flyoutWidth;
- addDocTabFunc = (doc: Doc, data: Opt<Doc>, where: string) => {
- if (where === "close") {
- return CollectionDockingView.CloseRightSplit(doc);
- }
- if (doc.dockingConfig) {
- this.openWorkspace(doc);
- return true;
- } else {
- return CollectionDockingView.AddRightSplit(doc, undefined);
- }
+ addDocTabFunc = (doc: Doc, data: Opt<Doc>, where: string, libraryPath?: Doc[]): boolean => {
+ return where === "close" ? CollectionDockingView.CloseRightSplit(doc) :
+ doc.dockingConfig ? this.openWorkspace(doc) :
+ CollectionDockingView.AddRightSplit(doc, undefined, libraryPath);
}
mainContainerXf = () => new Transform(0, -this._buttonBarHeight, 1);
@computed get flyout() {
- let sidebarContent = this.userDoc && this.userDoc.sidebarContainer;
+ const sidebarContent = this.userDoc && this.userDoc.sidebarContainer;
if (!(sidebarContent instanceof Doc)) {
return (null);
}
- let sidebarButtonsDoc = Cast(CurrentUserUtils.UserDocument.sidebarButtons, Doc) as Doc;
- sidebarButtonsDoc.columnWidth = this.flyoutWidth / 3 - 30;
+ const sidebarButtonsDoc = Cast(CurrentUserUtils.UserDocument.sidebarButtons, Doc) as Doc;
return <div className="mainView-flyoutContainer" >
<div className="mainView-tabButtons" style={{ height: `${this._buttonBarHeight}px` }}>
<DocumentView
Document={sidebarButtonsDoc}
DataDoc={undefined}
+ LibraryPath={emptyPath}
addDocument={undefined}
addDocTab={this.addDocTabFunc}
pinToPres={emptyFunction}
removeDocument={undefined}
- ruleProvider={undefined}
onClick={undefined}
ScreenToLocalTransform={Transform.Identity}
ContentScaling={returnOne}
@@ -386,15 +400,15 @@ export class MainView extends React.Component {
getScale={returnOne}>
</DocumentView>
</div>
- <div style={{ position: "relative", height: `calc(100% - ${this._buttonBarHeight}px)`, width: "100%", overflow: "auto" }}>
+ <div className="mainView-contentArea" style={{ position: "relative", height: `calc(100% - ${this._buttonBarHeight}px)`, width: "100%", overflow: "visible" }}>
<DocumentView
Document={sidebarContent}
DataDoc={undefined}
+ LibraryPath={emptyPath}
addDocument={undefined}
addDocTab={this.addDocTabFunc}
pinToPres={emptyFunction}
removeDocument={returnFalse}
- ruleProvider={undefined}
onClick={undefined}
ScreenToLocalTransform={this.mainContainerXf}
ContentScaling={returnOne}
@@ -411,33 +425,35 @@ export class MainView extends React.Component {
zoomToScale={emptyFunction}
getScale={returnOne}>
</DocumentView>
- <button className="mainView-logout" key="logout" onClick={() => window.location.assign(Utils.prepend(RouteStore.logout))}>
+ <button className="mainView-settings" key="settings" onClick={() => SettingsManager.Instance.open()}>
+ Settings
+ </button>
+ <button className="mainView-logout" key="logout" onClick={() => window.location.assign(Utils.prepend("/logout"))}>
{CurrentUserUtils.GuestWorkspace ? "Exit" : "Log Out"}
</button>
- </div></div>;
+ </div>
+ {this.docButtons}
+ </div>;
}
@computed get mainContent() {
const sidebar = this.userDoc && this.userDoc.sidebarContainer;
return !this.userDoc || !(sidebar instanceof Doc) ? (null) : (
<div className="mainView-mainContent" >
- <div className="mainView-flyoutContainer" onPointerLeave={this.pointerLeaveDragger}>
- <div className="mainView-libraryHandle"
- style={{ cursor: "ew-resize", left: `${(this.flyoutWidth * (this._flyoutTranslate ? 1 : 0)) - 10}px`, backgroundColor: `${StrCast(sidebar.backgroundColor, "lightGray")}` }}
- onPointerDown={this.onPointerDown} onPointerOver={this.pointerOverDragger}>
+ <div className="mainView-flyoutContainer" onPointerLeave={this.pointerLeaveDragger} style={{ width: this.flyoutWidth }}>
+ <div className="mainView-libraryHandle" onPointerDown={this.onPointerDown} onPointerOver={this.pointerOverDragger}
+ style={{ backgroundColor: `${StrCast(sidebar.backgroundColor, "lightGray")}` }} >
<span title="library View Dragger" style={{
- width: (this.flyoutWidth !== 0 && this._flyoutTranslate) ? "100%" : "5vw",
- height: (this.flyoutWidth !== 0 && this._flyoutTranslate) ? "100%" : "30vh",
- position: "absolute",
- top: (this.flyoutWidth !== 0 && this._flyoutTranslate) ? "" : "-10vh"
+ width: (this.flyoutWidth !== 0 && this._flyoutTranslate) ? "100%" : "3vw",
+ //height: (this.flyoutWidth !== 0 && this._flyoutTranslate) ? "100%" : "100vh",
+ position: (this.flyoutWidth !== 0 && this._flyoutTranslate) ? "absolute" : "fixed",
+ top: (this.flyoutWidth !== 0 && this._flyoutTranslate) ? "" : "0"
}} />
</div>
<div className="mainView-libraryFlyout" style={{
- width: `${this.flyoutWidth}px`,
- zIndex: 1,
- transformOrigin: this._flyoutTranslate ? "" : "left center",
+ //transformOrigin: this._flyoutTranslate ? "" : "left center",
transition: this._flyoutTranslate ? "" : "width .5s",
- transform: `scale(${this._flyoutTranslate ? 1 : 0.8})`,
+ //transform: `scale(${this._flyoutTranslate ? 1 : 0.8})`,
boxShadow: this._flyoutTranslate ? "" : "rgb(156, 147, 150) 0.2vw 0.2vw 0.8vw"
}}>
{this.flyout}
@@ -450,7 +466,8 @@ export class MainView extends React.Component {
public static expandFlyout = action(() => {
MainView.Instance._flyoutTranslate = true;
- MainView.Instance.flyoutWidth = 250;
+ MainView.Instance.flyoutWidth = (MainView.Instance.flyoutWidth || 250);
+ MainView.Instance.sidebarButtonsDoc.columnWidth = MainView.Instance.flyoutWidth / 3 - 30;
});
@computed get expandButton() {
@@ -459,21 +476,22 @@ export class MainView extends React.Component {
addButtonDoc = (doc: Doc) => Doc.AddDocToList(CurrentUserUtils.UserDocument.expandingButtons as Doc, "data", doc);
remButtonDoc = (doc: Doc) => Doc.RemoveDocFromList(CurrentUserUtils.UserDocument.expandingButtons as Doc, "data", doc);
- moveButtonDoc = (doc: Doc, targetCollection: Doc, addDocument: (document: Doc) => boolean) => this.remButtonDoc(doc) && addDocument(doc);
+ moveButtonDoc = (doc: Doc, targetCollection: Doc | undefined, addDocument: (document: Doc) => boolean) => this.remButtonDoc(doc) && addDocument(doc);
buttonBarXf = () => {
if (!this._docBtnRef.current) return Transform.Identity();
- let { scale, translateX, translateY } = Utils.GetScreenTransform(this._docBtnRef.current);
+ const { scale, translateX, translateY } = Utils.GetScreenTransform(this._docBtnRef.current);
return new Transform(-translateX, -translateY, 1 / scale);
}
@computed get docButtons() {
- if (CurrentUserUtils.UserDocument.expandingButtons instanceof Doc) {
+ if (CurrentUserUtils.UserDocument?.expandingButtons instanceof Doc) {
return <div className="mainView-docButtons" ref={this._docBtnRef}
- style={{ left: (this._flyoutTranslate ? this.flyoutWidth : 0) + 20, height: !CurrentUserUtils.UserDocument.expandingButtons.isExpanded ? "42px" : undefined }} >
+ style={{ height: !CurrentUserUtils.UserDocument.expandingButtons.isExpanded ? "42px" : undefined }} >
<MainViewNotifs />
<CollectionLinearView
Document={CurrentUserUtils.UserDocument.expandingButtons}
DataDoc={undefined}
+ LibraryPath={emptyPath}
fieldKey={"data"}
annotationsKey={""}
select={emptyFunction}
@@ -486,7 +504,6 @@ export class MainView extends React.Component {
addDocTab={this.addDocTabFunc}
pinToPres={emptyFunction}
removeDocument={this.remButtonDoc}
- ruleProvider={undefined}
onClick={undefined}
ScreenToLocalTransform={this.buttonBarXf}
ContentScaling={returnOne}
@@ -506,13 +523,18 @@ export class MainView extends React.Component {
return (<div id="mainView-container">
<DictationOverlay />
<SharingManager />
+ <SettingsManager />
<GoogleAuthenticationManager />
<DocumentDecorations />
- {this.mainContent}
+ <GestureOverlay>
+ {this.mainContent}
+ </GestureOverlay>
<PreviewCursor />
<ContextMenu />
- {this.docButtons}
+ {/* <RadialMenu /> */}
<PDFMenu />
+ <MarqueeOptionsMenu />
+ <RichTextMenu />
<OverlayView />
</div >);
}
diff --git a/src/client/views/MainViewModal.tsx b/src/client/views/MainViewModal.tsx
index 221a0260a..9198fe3e3 100644
--- a/src/client/views/MainViewModal.tsx
+++ b/src/client/views/MainViewModal.tsx
@@ -14,9 +14,9 @@ export interface MainViewOverlayProps {
export default class MainViewModal extends React.Component<MainViewOverlayProps> {
render() {
- let p = this.props;
- let dialogueOpacity = p.dialogueBoxDisplayedOpacity || 1;
- let overlayOpacity = p.overlayDisplayedOpacity || 0.4;
+ const p = this.props;
+ const dialogueOpacity = p.dialogueBoxDisplayedOpacity || 1;
+ const overlayOpacity = p.overlayDisplayedOpacity || 0.4;
return !p.isDisplayed ? (null) : (
<div style={{ pointerEvents: p.isDisplayed ? p.interactive ? "all" : "none" : "none" }}>
<div
diff --git a/src/client/views/MetadataEntryMenu.scss b/src/client/views/MetadataEntryMenu.scss
index 7da55fd1c..5f4a52c0c 100644
--- a/src/client/views/MetadataEntryMenu.scss
+++ b/src/client/views/MetadataEntryMenu.scss
@@ -8,6 +8,10 @@
}
}
+#metadataEntry-outer {
+ overflow: auto !important;
+}
+
.metadataEntry-keys {
max-height: 80;
overflow-y: auto;
diff --git a/src/client/views/MetadataEntryMenu.tsx b/src/client/views/MetadataEntryMenu.tsx
index 41453f8b2..23b21ae0c 100644
--- a/src/client/views/MetadataEntryMenu.tsx
+++ b/src/client/views/MetadataEntryMenu.tsx
@@ -6,7 +6,7 @@ import { KeyValueBox } from './nodes/KeyValueBox';
import { Doc, Field, DocListCastAsync } from '../../new_fields/Doc';
import * as Autosuggest from 'react-autosuggest';
import { undoBatch } from '../util/UndoManager';
-import { emptyFunction } from '../../Utils';
+import { emptyFunction, emptyPath } from '../../Utils';
export type DocLike = Doc | Doc[] | Promise<Doc> | Promise<Doc[]>;
export interface MetadataEntryProps {
@@ -19,7 +19,6 @@ export interface MetadataEntryProps {
export class MetadataEntryMenu extends React.Component<MetadataEntryProps>{
@observable private _currentKey: string = "";
@observable private _currentValue: string = "";
- @observable private suggestions: string[] = [];
private _addChildren: boolean = false;
@observable _allSuggestions: string[] = [];
_suggestionDispser: IReactionDisposer | undefined;
@@ -99,8 +98,8 @@ export class MetadataEntryMenu extends React.Component<MetadataEntryProps>{
} else {
let childSuccess = true;
if (this._addChildren) {
- for (let document of doc) {
- let collectionChildren = await DocListCastAsync(document.data);
+ for (const document of doc) {
+ const collectionChildren = await DocListCastAsync(document.data);
if (collectionChildren) {
childSuccess = collectionChildren.every(c => KeyValueBox.ApplyKVPScript(c, this._currentKey, script));
}
@@ -178,11 +177,11 @@ export class MetadataEntryMenu extends React.Component<MetadataEntryProps>{
}
docSource = docSource as Doc[] | Doc;
if (docSource instanceof Doc) {
- if (docSource.viewType === undefined) {
+ if (docSource._viewType === undefined) {
return (null);
}
} else if (Array.isArray(docSource)) {
- if (!docSource.every(doc => doc.viewType !== undefined)) {
+ if (!docSource.every(doc => doc._viewType !== undefined)) {
return null;
}
}
@@ -194,21 +193,22 @@ export class MetadataEntryMenu extends React.Component<MetadataEntryProps>{
);
}
+ _ref = React.createRef<HTMLInputElement>();
render() {
return (
- <div className="metadataEntry-outerDiv">
+ <div className="metadataEntry-outerDiv" id="metadataEntry-outer">
<div className="metadataEntry-inputArea">
Key:
<Autosuggest inputProps={{ value: this._currentKey, onChange: this.onKeyChange }}
getSuggestionValue={this.getSuggestionValue}
- suggestions={[]}
+ suggestions={emptyPath}
alwaysRenderSuggestions={false}
renderSuggestion={this.renderSuggestion}
onSuggestionsFetchRequested={emptyFunction}
onSuggestionsClearRequested={emptyFunction}
ref={this.autosuggestRef} />
Value:
- <input className="metadataEntry-input" value={this._currentValue} onChange={this.onValueChange} onKeyDown={this.onValueKeyDown} />
+ <input className="metadataEntry-input" ref={this._ref} value={this._currentValue} onClick={e => this._ref.current!.focus()} onChange={this.onValueChange} onKeyDown={this.onValueKeyDown} />
{this.considerChildOptions}
</div>
<div className="metadataEntry-keys" >
diff --git a/src/client/views/OCRUtils.ts b/src/client/views/OCRUtils.ts
new file mode 100644
index 000000000..282ec770e
--- /dev/null
+++ b/src/client/views/OCRUtils.ts
@@ -0,0 +1,7 @@
+// import tesseract from "node-tesseract-ocr";
+// const tesseract = require("node-tesseract");
+
+
+export namespace OCRUtils {
+
+}
diff --git a/src/client/views/OverlayView.tsx b/src/client/views/OverlayView.tsx
index 9869e24d1..295cd7c6e 100644
--- a/src/client/views/OverlayView.tsx
+++ b/src/client/views/OverlayView.tsx
@@ -1,7 +1,7 @@
import * as React from "react";
import { observer } from "mobx-react";
import { observable, action, trace, computed } from "mobx";
-import { Utils, emptyFunction, returnOne, returnTrue, returnEmptyString, returnZero, returnFalse } from "../../Utils";
+import { Utils, emptyFunction, returnOne, returnTrue, returnEmptyString, returnZero, returnFalse, emptyPath } from "../../Utils";
import './OverlayView.scss';
import { CurrentUserUtils } from "../../server/authentication/models/current_user_utils";
@@ -9,8 +9,6 @@ import { DocListCast, Doc } from "../../new_fields/Doc";
import { Id } from "../../new_fields/FieldSymbols";
import { DocumentView } from "./nodes/DocumentView";
import { Transform } from "../util/Transform";
-import { CollectionFreeFormDocumentView } from "./nodes/CollectionFreeFormDocumentView";
-import { DocumentContentsView } from "./nodes/DocumentContentsView";
import { NumCast } from "../../new_fields/Types";
import { CollectionFreeFormLinksView } from "./collections/collectionFreeForm/CollectionFreeFormLinksView";
@@ -148,7 +146,7 @@ export class OverlayView extends React.Component {
return CurrentUserUtils.UserDocument.overlays instanceof Doc && DocListCast(CurrentUserUtils.UserDocument.overlays.data).map(d => {
d.inOverlay = true;
let offsetx = 0, offsety = 0;
- let onPointerMove = action((e: PointerEvent) => {
+ const onPointerMove = action((e: PointerEvent) => {
if (e.buttons === 1) {
d.x = e.clientX + offsetx;
d.y = e.clientY + offsety;
@@ -156,14 +154,14 @@ export class OverlayView extends React.Component {
e.preventDefault();
}
});
- let onPointerUp = action((e: PointerEvent) => {
+ const onPointerUp = action((e: PointerEvent) => {
document.removeEventListener("pointermove", onPointerMove);
document.removeEventListener("pointerup", onPointerUp);
e.stopPropagation();
e.preventDefault();
});
- let onPointerDown = (e: React.PointerEvent) => {
+ const onPointerDown = (e: React.PointerEvent) => {
offsetx = NumCast(d.x) - e.clientX;
offsety = NumCast(d.y) - e.clientY;
e.stopPropagation();
@@ -174,12 +172,12 @@ export class OverlayView extends React.Component {
return <div className="overlayView-doc" key={d[Id]} onPointerDown={onPointerDown} style={{ transform: `translate(${d.x}px, ${d.y}px)`, display: d.isMinimized ? "none" : "" }}>
<DocumentView
Document={d}
+ LibraryPath={emptyPath}
ChromeHeight={returnZero}
// isSelected={returnFalse}
// select={emptyFunction}
// layoutKey={"layout"}
bringToFront={emptyFunction}
- ruleProvider={undefined}
addDocument={undefined}
removeDocument={undefined}
ContentScaling={returnOne}
diff --git a/src/client/views/Palette.scss b/src/client/views/Palette.scss
new file mode 100644
index 000000000..4513de2b0
--- /dev/null
+++ b/src/client/views/Palette.scss
@@ -0,0 +1,21 @@
+.palette-container {
+ .palette-thumb {
+ touch-action: pan-x;
+ overflow: scroll;
+ position: absolute;
+ width: 90px;
+ height: 70px;
+
+ .palette-thumbContent {
+ transition: transform .3s;
+
+ .collectionView {
+ overflow: visible;
+
+ .collectionLinearView-outer {
+ overflow: visible;
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/src/client/views/Palette.tsx b/src/client/views/Palette.tsx
new file mode 100644
index 000000000..10aac96a0
--- /dev/null
+++ b/src/client/views/Palette.tsx
@@ -0,0 +1,80 @@
+import * as React from "react";
+import "./Palette.scss";
+import { PointData } from "../../new_fields/InkField";
+import { Doc } from "../../new_fields/Doc";
+import { Docs } from "../documents/Documents";
+import { ScriptField, ComputedField } from "../../new_fields/ScriptField";
+import { List } from "../../new_fields/List";
+import { DocumentView } from "./nodes/DocumentView";
+import { emptyPath, returnFalse, emptyFunction, returnOne, returnEmptyString, returnTrue } from "../../Utils";
+import { CurrentUserUtils } from "../../server/authentication/models/current_user_utils";
+import { Transform } from "../util/Transform";
+import { computed, action, IReactionDisposer, reaction, observable } from "mobx";
+import { FieldValue, Cast, NumCast } from "../../new_fields/Types";
+import { observer } from "mobx-react";
+import { DocumentContentsView } from "./nodes/DocumentContentsView";
+import { CollectionStackingView } from "./collections/CollectionStackingView";
+import { CollectionView } from "./collections/CollectionView";
+import { CollectionSubView, SubCollectionViewProps } from "./collections/CollectionSubView";
+import { makeInterface } from "../../new_fields/Schema";
+import { documentSchema } from "../../new_fields/documentSchemas";
+
+export interface PaletteProps {
+ x: number;
+ y: number;
+ thumb: number[];
+ thumbDoc: Doc;
+}
+
+@observer
+export default class Palette extends React.Component<PaletteProps> {
+ private _selectedDisposer?: IReactionDisposer;
+ @observable private _selectedIndex: number = 0;
+
+ componentDidMount = () => {
+ this._selectedDisposer = reaction(
+ () => NumCast(this.props.thumbDoc.selectedIndex),
+ (i) => this._selectedIndex = i,
+ { fireImmediately: true }
+ );
+ }
+
+ componentWillUnmount = () => {
+ this._selectedDisposer && this._selectedDisposer();
+ }
+
+ render() {
+ return (
+ <div className="palette-container" style={{ transform: `translate(${this.props.x}px, ${this.props.y}px)` }}>
+ <div className="palette-thumb" style={{ transform: `translate(${this.props.thumb[0] - this.props.x}px, ${this.props.thumb[1] - this.props.y}px)` }}>
+ <div className="palette-thumbContent" style={{ transform: `translate(-${(this._selectedIndex * 50) + 10}px, 0px)` }}>
+ <DocumentView
+ Document={this.props.thumbDoc}
+ DataDoc={undefined}
+ LibraryPath={emptyPath}
+ addDocument={undefined}
+ addDocTab={returnFalse}
+ pinToPres={emptyFunction}
+ removeDocument={undefined}
+ onClick={undefined}
+ ScreenToLocalTransform={Transform.Identity}
+ ContentScaling={returnOne}
+ PanelWidth={() => window.screen.width}
+ PanelHeight={() => window.screen.height}
+ renderDepth={0}
+ focus={emptyFunction}
+ backgroundColor={returnEmptyString}
+ parentActive={returnTrue}
+ whenActiveChanged={emptyFunction}
+ bringToFront={emptyFunction}
+ ContainingCollectionView={undefined}
+ ContainingCollectionDoc={undefined}
+ zoomToScale={emptyFunction}
+ getScale={returnOne}>
+ </DocumentView>
+ </div>
+ </div>
+ </div>
+ );
+ }
+} \ No newline at end of file
diff --git a/src/client/views/PreviewCursor.scss b/src/client/views/PreviewCursor.scss
index 20f9b9a49..d384fd284 100644
--- a/src/client/views/PreviewCursor.scss
+++ b/src/client/views/PreviewCursor.scss
@@ -6,4 +6,5 @@
top: 0;
left:0;
pointer-events: none;
+ opacity: 1;
} \ No newline at end of file
diff --git a/src/client/views/PreviewCursor.tsx b/src/client/views/PreviewCursor.tsx
index eed2cc5da..c011adb20 100644
--- a/src/client/views/PreviewCursor.tsx
+++ b/src/client/views/PreviewCursor.tsx
@@ -4,24 +4,17 @@ import "normalize.css";
import * as React from 'react';
import "./PreviewCursor.scss";
import { Docs } from '../documents/Documents';
-// import { Transform } from 'prosemirror-transform';
import { Doc } from '../../new_fields/Doc';
import { Transform } from "../util/Transform";
@observer
export class PreviewCursor extends React.Component<{}> {
- private _prompt = React.createRef<HTMLDivElement>();
static _onKeyPress?: (e: KeyboardEvent) => void;
static _getTransform: () => Transform;
static _addLiveTextDoc: (doc: Doc) => void;
static _addDocument: (doc: Doc) => boolean;
@observable static _clickPoint = [0, 0];
@observable public static Visible = false;
- //when focus is lost, this will remove the preview cursor
- @action onBlur = (): void => {
- PreviewCursor.Visible = false;
- }
-
constructor(props: any) {
super(props);
document.addEventListener("keydown", this.onKeyPress);
@@ -29,64 +22,53 @@ export class PreviewCursor extends React.Component<{}> {
}
paste = (e: ClipboardEvent) => {
- if (PreviewCursor.Visible) {
- if (e.clipboardData) {
- let newPoint = PreviewCursor._getTransform().transformPoint(PreviewCursor._clickPoint[0], PreviewCursor._clickPoint[1]);
- runInAction(() => { PreviewCursor.Visible = false; });
-
-
- if (e.clipboardData.getData("text/plain") !== "") {
-
- // tests for youtube and makes video document
- if (e.clipboardData.getData("text/plain").indexOf("www.youtube.com/watch") !== -1) {
- const url = e.clipboardData.getData("text/plain").replace("youtube.com/watch?v=", "youtube.com/embed/");
- PreviewCursor._addDocument(Docs.Create.VideoDocument(url, {
- title: url, width: 400, height: 315,
- nativeWidth: 600, nativeHeight: 472.5,
- x: newPoint[0], y: newPoint[1]
- }));
- return;
- }
-
- // tests for URL and makes web document
- let re: any = /^https?:\/\//g;
- if (re.test(e.clipboardData.getData("text/plain"))) {
- const url = e.clipboardData.getData("text/plain");
- PreviewCursor._addDocument(Docs.Create.WebDocument(url, {
- title: url, width: 300, height: 300,
- // nativeWidth: 300, nativeHeight: 472.5,
- x: newPoint[0], y: newPoint[1]
- }));
- return;
- }
-
- // creates text document
- let newBox = Docs.Create.TextDocument({
- width: 200, height: 100,
- x: newPoint[0],
- y: newPoint[1],
- title: "-pasted text-"
- });
+ if (PreviewCursor.Visible && e.clipboardData) {
+ const newPoint = PreviewCursor._getTransform().transformPoint(PreviewCursor._clickPoint[0], PreviewCursor._clickPoint[1]);
+ runInAction(() => PreviewCursor.Visible = false);
- newBox.proto!.autoHeight = true;
- PreviewCursor._addLiveTextDoc(newBox);
- return;
+ if (e.clipboardData.getData("text/plain") !== "") {
+ // tests for youtube and makes video document
+ if (e.clipboardData.getData("text/plain").indexOf("www.youtube.com/watch") !== -1) {
+ const url = e.clipboardData.getData("text/plain").replace("youtube.com/watch?v=", "youtube.com/embed/");
+ return PreviewCursor._addDocument(Docs.Create.VideoDocument(url, {
+ title: url, _width: 400, _height: 315,
+ _nativeWidth: 600, _nativeHeight: 472.5,
+ x: newPoint[0], y: newPoint[1]
+ }));
}
- //pasting in images
- if (e.clipboardData.getData("text/html") !== "" && e.clipboardData.getData("text/html").includes("<img src=")) {
- let re: any = /<img src="(.*?)"/g;
- let arr: any[] = re.exec(e.clipboardData.getData("text/html"));
- let img: Doc = Docs.Create.ImageDocument(
- arr[1], {
- width: 300, title: arr[1],
- x: newPoint[0],
- y: newPoint[1],
- });
- PreviewCursor._addDocument(img);
- return;
+ // tests for URL and makes web document
+ const re: any = /^https?:\/\//g;
+ if (re.test(e.clipboardData.getData("text/plain"))) {
+ const url = e.clipboardData.getData("text/plain");
+ return PreviewCursor._addDocument(Docs.Create.WebDocument(url, {
+ title: url, _width: 500, _height: 300,
+ // nativeWidth: 300, nativeHeight: 472.5,
+ x: newPoint[0], y: newPoint[1]
+ }));
}
+ // creates text document
+ return PreviewCursor._addLiveTextDoc(Docs.Create.TextDocument("", {
+ _width: 500,
+ limitHeight: 400,
+ _autoHeight: true,
+ x: newPoint[0],
+ y: newPoint[1],
+ title: "-pasted text-"
+ }));
+ }
+ //pasting in images
+ if (e.clipboardData.getData("text/html") !== "" && e.clipboardData.getData("text/html").includes("<img src=")) {
+ const re: any = /<img src="(.*?)"/g;
+ const arr: any[] = re.exec(e.clipboardData.getData("text/html"));
+
+ return PreviewCursor._addDocument(Docs.Create.ImageDocument(
+ arr[1], {
+ _width: 300, title: arr[1],
+ x: newPoint[0],
+ y: newPoint[1],
+ }));
}
}
}
@@ -108,6 +90,12 @@ export class PreviewCursor extends React.Component<{}> {
}
}
}
+
+ //when focus is lost, this will remove the preview cursor
+ @action onBlur = (): void => {
+ PreviewCursor.Visible = false;
+ }
+
@action
public static Show(x: number, y: number,
onKeyPress: (e: KeyboardEvent) => void,
@@ -119,18 +107,13 @@ export class PreviewCursor extends React.Component<{}> {
this._addLiveTextDoc = addLiveText;
this._getTransform = getTransform;
this._addDocument = addDocument;
- setTimeout(action(() => this.Visible = true), (1));
+ this.Visible = true;
}
render() {
- if (!PreviewCursor._clickPoint) {
- return (null);
- }
- if (PreviewCursor.Visible && this._prompt.current) {
- this._prompt.current.focus();
- }
- return <div className="previewCursor" id="previewCursor" onBlur={this.onBlur} tabIndex={0} ref={this._prompt}
- style={{ transform: `translate(${PreviewCursor._clickPoint[0]}px, ${PreviewCursor._clickPoint[1]}px)`, opacity: PreviewCursor.Visible ? 1 : 0 }}>
- I
+ return (!PreviewCursor._clickPoint || !PreviewCursor.Visible) ? (null) :
+ <div className="previewCursor" onBlur={this.onBlur} tabIndex={0} ref={e => e && e.focus()}
+ style={{ transform: `translate(${PreviewCursor._clickPoint[0]}px, ${PreviewCursor._clickPoint[1]}px)` }}>
+ I
</div >;
}
} \ No newline at end of file
diff --git a/src/client/views/ScriptBox.tsx b/src/client/views/ScriptBox.tsx
index 8ef9f3be6..d24256886 100644
--- a/src/client/views/ScriptBox.tsx
+++ b/src/client/views/ScriptBox.tsx
@@ -59,7 +59,7 @@ export class ScriptBox extends React.Component<ScriptBoxProps> {
onFocus = this.onFocus;
onBlur = this.onBlur;
}
- let params = <EditableView
+ const params = <EditableView
contents={""}
display={"block"}
maxHeight={72}
@@ -82,28 +82,19 @@ export class ScriptBox extends React.Component<ScriptBoxProps> {
);
}
//let l = docList(this.source[0].data).length; if (l) { let ind = this.target[0].index !== undefined ? (this.target[0].index+1) % l : 0; this.target[0].index = ind; this.target[0].proto = getProto(docList(this.source[0].data)[ind]);}
- public static EditButtonScript(title: string, doc: Doc, fieldKey: string, clientX: number, clientY: number, prewrapper?: string, postwrapper?: string) {
+ public static EditButtonScript(title: string, doc: Doc, fieldKey: string, clientX: number, clientY: number, contextParams?: { [name: string]: string }) {
let overlayDisposer: () => void = emptyFunction;
const script = ScriptCast(doc[fieldKey]);
let originalText: string | undefined = undefined;
if (script) {
originalText = script.script.originalScript;
- if (prewrapper && originalText.startsWith(prewrapper)) {
- originalText = originalText.substr(prewrapper.length);
- }
- if (postwrapper && originalText.endsWith(postwrapper)) {
- originalText = originalText.substr(0, originalText.length - postwrapper.length);
- }
}
// tslint:disable-next-line: no-unnecessary-callback-wrapper
- let params: string[] = [];
- let setParams = (p: string[]) => params.splice(0, params.length, ...p);
- let scriptingBox = <ScriptBox initialText={originalText} setParams={setParams} onCancel={overlayDisposer} onSave={(text, onError) => {
- if (prewrapper) {
- text = prewrapper + text + (postwrapper ? postwrapper : "");
- }
+ const params: string[] = [];
+ const setParams = (p: string[]) => params.splice(0, params.length, ...p);
+ const scriptingBox = <ScriptBox initialText={originalText} setParams={setParams} onCancel={overlayDisposer} onSave={(text, onError) => {
const script = CompileScript(text, {
- params: { this: Doc.name },
+ params: { this: Doc.name, ...contextParams },
typecheck: false,
editable: true,
transformer: DocumentIconContainer.getTransformer()
@@ -113,7 +104,15 @@ export class ScriptBox extends React.Component<ScriptBoxProps> {
return;
}
- params.length && DragManager.StartButtonDrag([], text, "a script", {}, params, (button: Doc) => { }, clientX, clientY);
+ const div = document.createElement("div");
+ div.style.width = "90";
+ div.style.height = "20";
+ div.style.background = "gray";
+ div.style.position = "absolute";
+ div.style.display = "inline-block";
+ div.style.transform = `translate(${clientX}px, ${clientY}px)`;
+ div.innerHTML = "button";
+ params.length && DragManager.StartButtonDrag([div], text, doc.title + "-instance", {}, params, (button: Doc) => { }, clientX, clientY);
doc[fieldKey] = new ScriptField(script);
overlayDisposer();
diff --git a/src/client/views/TemplateMenu.scss b/src/client/views/TemplateMenu.scss
new file mode 100644
index 000000000..bbed8cd96
--- /dev/null
+++ b/src/client/views/TemplateMenu.scss
@@ -0,0 +1,51 @@
+@import "globalCssVariables";
+.templating-menu {
+ position: absolute;
+ pointer-events: auto;
+ text-transform: uppercase;
+ letter-spacing: 2px;
+ font-size: 75%;
+ transition: transform 0.2s;
+ text-align: center;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.templating-button {
+ width: 20px;
+ height: 20px;
+ padding-left: 5px;
+ background: black;
+ color: white;
+ border-radius: 10px;
+ display: flex;
+ align-items: center;
+ cursor: pointer;
+
+ &:hover {
+ background: $main-accent;
+ transform: scale(1.05);
+ }
+}
+
+.template-list {
+ font-family: $sans-serif;
+ font-size: 12px;
+ background-color: $light-color-secondary;
+ padding: 2px 12px;
+ list-style: none;
+ position: relative;
+ display: inline-block;
+ height: 100%;
+ width: 100%;
+
+ .templateToggle, .chromeToggle {
+ text-align: left;
+ color: black;
+ }
+
+ input {
+ margin-right: 10px;
+ }
+} \ No newline at end of file
diff --git a/src/client/views/TemplateMenu.tsx b/src/client/views/TemplateMenu.tsx
index 96265385e..f61eb9cd0 100644
--- a/src/client/views/TemplateMenu.tsx
+++ b/src/client/views/TemplateMenu.tsx
@@ -1,15 +1,14 @@
-import { action, observable } from "mobx";
+import { action, observable, runInAction, ObservableSet } from "mobx";
import { observer } from "mobx-react";
-import { DocumentManager } from "../util/DocumentManager";
-import { DragManager } from "../util/DragManager";
import { SelectionManager } from "../util/SelectionManager";
import { undoBatch } from "../util/UndoManager";
-import './DocumentDecorations.scss';
+import './TemplateMenu.scss';
import { DocumentView } from "./nodes/DocumentView";
import { Template, Templates } from "./Templates";
import React = require("react");
-import { Doc } from "../../new_fields/Doc";
-import { StrCast } from "../../new_fields/Types";
+import { Doc, DocListCast } from "../../new_fields/Doc";
+import { StrCast, Cast } from "../../new_fields/Types";
+import { CurrentUserUtils } from "../../server/authentication/models/current_user_utils";
const higflyout = require("@hig/flyout");
export const { anchorPoints } = higflyout;
export const Flyout = higflyout.default;
@@ -42,73 +41,38 @@ class OtherToggle extends React.Component<{ checked: boolean, name: string, togg
}
export interface TemplateMenuProps {
- docs: DocumentView[];
+ docViews: DocumentView[];
templates: Map<Template, boolean>;
}
+
@observer
export class TemplateMenu extends React.Component<TemplateMenuProps> {
@observable private _hidden: boolean = true;
- dragRef = React.createRef<HTMLUListElement>();
- toggleCustom = (e: React.ChangeEvent<HTMLInputElement>): void => {
- this.props.docs.map(dv => dv.setCustomView(e.target.checked));
+ toggleLayout = (e: React.ChangeEvent<HTMLInputElement>, layout: string): void => {
+ this.props.docViews.map(dv => dv.setCustomView(e.target.checked, layout));
}
toggleFloat = (e: React.ChangeEvent<HTMLInputElement>): void => {
SelectionManager.DeselectAll();
- let topDocView = this.props.docs[0];
- let topDoc = topDocView.props.Document;
- let xf = topDocView.props.ScreenToLocalTransform();
- let ex = e.target.clientLeft;
- let ey = e.target.clientTop;
- undoBatch(action(() => topDoc.z = topDoc.z ? 0 : 1))();
- if (e.target.checked) {
- setTimeout(() => {
- let newDocView = DocumentManager.Instance.getDocumentView(topDoc);
- if (newDocView) {
- let de = new DragManager.DocumentDragData([topDoc]);
- de.moveDocument = topDocView.props.moveDocument;
- let xf = newDocView.ContentDiv!.getBoundingClientRect();
- DragManager.StartDocumentDrag([newDocView.ContentDiv!], de, ex, ey, {
- offsetX: (ex - xf.left), offsetY: (ey - xf.top),
- handlers: { dragComplete: () => { }, },
- hideSource: false
- });
- }
- }, 10);
- } else if (topDocView.props.ContainingCollectionView) {
- let collView = topDocView.props.ContainingCollectionView;
- let [sx, sy] = xf.inverse().transformPoint(0, 0);
- let [x, y] = collView.props.ScreenToLocalTransform().transformPoint(sx, sy);
- topDoc.x = x;
- topDoc.y = y;
- }
+ const topDocView = this.props.docViews[0];
+ const ex = e.target.getBoundingClientRect().left;
+ const ey = e.target.getBoundingClientRect().top;
+ DocumentView.FloatDoc(topDocView, ex, ey);
}
+
@undoBatch
@action
toggleTemplate = (event: React.ChangeEvent<HTMLInputElement>, template: Template): void => {
if (event.target.checked) {
- this.props.docs.map(d => d.Document["show" + template.Name] = template.Name.toLowerCase());
+ this.props.docViews.map(d => d.Document["show" + template.Name] = template.Name.toLowerCase());
} else {
- this.props.docs.map(d => d.Document["show" + template.Name] = "");
+ this.props.docViews.map(d => d.Document["show" + template.Name] = "");
}
}
- @undoBatch
- @action
- clearTemplates = (event: React.MouseEvent) => {
- Templates.TemplateList.forEach(template => this.props.docs.forEach(d => d.Document["show" + template.Name] = undefined));
- ["backgroundColor", "borderRounding", "width", "height"].forEach(field => this.props.docs.forEach(d => {
- if (d.Document.isTemplateDoc && d.props.DataDoc) {
- d.Document[field] = undefined;
- } else if (d.Document["default" + field[0].toUpperCase() + field.slice(1)] !== undefined) {
- d.Document[field] = Doc.GetProto(d.Document)[field] = undefined;
- }
- }));
- }
-
@action
toggleTemplateActivity = (): void => {
this._hidden = !this._hidden;
@@ -117,28 +81,45 @@ export class TemplateMenu extends React.Component<TemplateMenuProps> {
@undoBatch
@action
toggleChrome = (): void => {
- this.props.docs.map(dv => {
- let layout = Doc.Layout(dv.Document);
- layout.chromeStatus = (layout.chromeStatus !== "disabled" ? "disabled" : "enabled");
+ this.props.docViews.map(dv => {
+ const layout = Doc.Layout(dv.Document);
+ layout._chromeStatus = (layout._chromeStatus !== "disabled" ? "disabled" : "enabled");
});
}
+ // todo: add brushes to brushMap to save with a style name
+ onCustomKeypress = (e: React.KeyboardEvent) => {
+ if (e.key === "Enter") {
+ runInAction(() => this._addedKeys.add(this._customRef.current!.value));
+ }
+ }
+ componentDidMount() {
+ !this._addedKeys && (this._addedKeys = new ObservableSet());
+ Array.from(Object.keys(Doc.GetProto(this.props.docViews[0].props.Document))).
+ filter(key => key.startsWith("layout_")).
+ map(key => runInAction(() => this._addedKeys.add(key.replace("layout_", ""))));
+ DocListCast(Cast(CurrentUserUtils.UserDocument.expandingButtons, Doc, null)?.data)?.map(btnDoc => {
+ if (StrCast(Cast(btnDoc?.dragFactory, Doc, null)?.title)) {
+ runInAction(() => this._addedKeys.add(StrCast(Cast(btnDoc?.dragFactory, Doc, null)?.title)));
+ }
+ });
+ }
+
+ _addedKeys = new ObservableSet();
+ _customRef = React.createRef<HTMLInputElement>();
render() {
- let layout = Doc.Layout(this.props.docs[0].Document);
- let templateMenu: Array<JSX.Element> = [];
+ const layout = Doc.Layout(this.props.docViews[0].Document);
+ const templateMenu: Array<JSX.Element> = [];
this.props.templates.forEach((checked, template) =>
templateMenu.push(<TemplateToggle key={template.Name} template={template} checked={checked} toggle={this.toggleTemplate} />));
- templateMenu.push(<OtherToggle key={"float"} name={"Float"} checked={this.props.docs[0].Document.z ? true : false} toggle={this.toggleFloat} />);
- templateMenu.push(<OtherToggle key={"custom"} name={"Custom"} checked={StrCast(this.props.docs[0].Document.layoutKey, "layout") !== "layout"} toggle={this.toggleCustom} />);
- templateMenu.push(<OtherToggle key={"chrome"} name={"Chrome"} checked={layout.chromeStatus !== "disabled"} toggle={this.toggleChrome} />);
- return (
- <div className="templating-menu" >
- <div title="Template Options" className="templating-button" onClick={() => this.toggleTemplateActivity()}>+</div>
- <ul id="template-list" ref={this.dragRef} style={{ display: this._hidden ? "none" : "block" }}>
- {templateMenu}
- {<button onClick={this.clearTemplates}>Restore Defaults</button>}
- </ul>
- </div>
+ templateMenu.push(<OtherToggle key={"float"} name={"Float"} checked={this.props.docViews[0].Document.z ? true : false} toggle={this.toggleFloat} />);
+ templateMenu.push(<OtherToggle key={"chrome"} name={"Chrome"} checked={layout._chromeStatus !== "disabled"} toggle={this.toggleChrome} />);
+ this._addedKeys && Array.from(this._addedKeys).map(layout =>
+ templateMenu.push(<OtherToggle key={layout} name={layout} checked={StrCast(this.props.docViews[0].Document.layoutKey, "layout") === "layout_" + layout} toggle={e => this.toggleLayout(e, layout)} />)
);
+ return <ul className="template-list" style={{ display: "block" }}>
+ {templateMenu}
+ <input placeholder="+ layout" ref={this._customRef} onKeyPress={this.onCustomKeypress}></input>
+ </ul>;
}
} \ No newline at end of file
diff --git a/src/client/views/Templates.tsx b/src/client/views/Templates.tsx
index ef78b60d4..8c60f1c36 100644
--- a/src/client/views/Templates.tsx
+++ b/src/client/views/Templates.tsx
@@ -43,7 +43,7 @@ export namespace Templates {
`<div>
<div style="height:100%; width:100%;">{layout}</div>
<div style="bottom: 0; font-size:14px; width:100%; position:absolute">
- <FormattedTextBox {...props} height="min-content" fieldKey={"caption"} hideOnLeave={"true"} />
+ <FormattedTextBox {...props} fieldKey={"caption"} hideOnLeave={"true"} />
</div>
</div>` );
@@ -56,8 +56,17 @@ export namespace Templates {
<div style="width:100%;overflow:auto">{layout}</div>
</div>
</div>` );
+ export const TitleHover = new Template("TitleHover", TemplatePosition.InnerTop,
+ `<div>
+ <div style="height:25px; width:100%; background-color: rgba(0, 0, 0, .4); color: white; z-index: 100">
+ <span style="text-align:center;width:100%;font-size:20px;position:absolute;overflow:hidden;white-space:nowrap;text-overflow:ellipsis">{props.Document.title}</span>
+ </div>
+ <div style="height:calc(100% - 25px);">
+ <div style="width:100%;overflow:auto">{layout}</div>
+ </div>
+ </div>` );
- export const TemplateList: Template[] = [Title, Caption];
+ export const TemplateList: Template[] = [Title, TitleHover, Caption];
export function sortTemplates(a: Template, b: Template) {
if (a.Position < b.Position) { return -1; }
diff --git a/src/client/views/TouchScrollableMenu.tsx b/src/client/views/TouchScrollableMenu.tsx
new file mode 100644
index 000000000..4bda0818e
--- /dev/null
+++ b/src/client/views/TouchScrollableMenu.tsx
@@ -0,0 +1,59 @@
+import React = require("react");
+import { computed } from "mobx";
+import { observer } from "mobx-react";
+
+export interface TouchScrollableMenuProps {
+ options: JSX.Element[];
+ bounds: {
+ right: number;
+ left: number;
+ bottom: number;
+ top: number;
+ width: number;
+ height: number;
+ };
+ selectedIndex: number;
+ x: number;
+ y: number;
+}
+
+export interface TouchScrollableMenuItemProps {
+ text: string;
+ onClick: () => any;
+}
+
+@observer
+export default class TouchScrollableMenu extends React.Component<TouchScrollableMenuProps> {
+
+ @computed
+ private get possibilities() { return this.props.options; }
+
+ @computed
+ private get selectedIndex() { return this.props.selectedIndex; }
+
+ render() {
+ return (
+ <div className="inkToTextDoc-cont" style={{
+ transform: `translate(${this.props.x}px, ${this.props.y}px)`,
+ width: 300,
+ height: this.possibilities.length * 25
+ }}>
+ <div className="inkToTextDoc-scroller" style={{ transform: `translate(0, ${-this.selectedIndex * 25}px)` }}>
+ {this.possibilities}
+ </div>
+ <div className="shadow" style={{ height: `calc(100% - 25px - ${this.selectedIndex * 25}px)` }}>
+ </div>
+ </div>
+ )
+ }
+}
+
+export class TouchScrollableMenuItem extends React.Component<TouchScrollableMenuItemProps>{
+ render() {
+ return (
+ <div className="menuItem-cont" onClick={this.props.onClick}>
+ {this.props.text}
+ </div>
+ )
+ }
+} \ No newline at end of file
diff --git a/src/client/views/Touchable.tsx b/src/client/views/Touchable.tsx
new file mode 100644
index 000000000..13cc38589
--- /dev/null
+++ b/src/client/views/Touchable.tsx
@@ -0,0 +1,244 @@
+import * as React from 'react';
+import { action } from 'mobx';
+import { InteractionUtils } from '../util/InteractionUtils';
+import { SelectionManager } from '../util/SelectionManager';
+import { RadialMenu } from './nodes/RadialMenu';
+
+const HOLD_DURATION = 1000;
+
+export abstract class Touchable<T = {}> extends React.Component<T> {
+ //private holdTimer: NodeJS.Timeout | undefined;
+ private moveDisposer?: InteractionUtils.MultiTouchEventDisposer;
+ private endDisposer?: InteractionUtils.MultiTouchEventDisposer;
+ private holdMoveDisposer?: InteractionUtils.MultiTouchEventDisposer;
+ private holdEndDisposer?: InteractionUtils.MultiTouchEventDisposer;
+
+
+ protected abstract multiTouchDisposer?: InteractionUtils.MultiTouchEventDisposer;
+ protected _touchDrag: boolean = false;
+ protected prevPoints: Map<number, React.Touch> = new Map<number, React.Touch>();
+
+ public FirstX: number = 0;
+ public FirstY: number = 0;
+ public SecondX: number = 0;
+ public SecondY: number = 0;
+
+ /**
+ * When a touch even starts, we keep track of each touch that is associated with that event
+ */
+ @action
+ protected onTouchStart = (e: Event, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>): void => {
+
+ const actualPts: React.Touch[] = [];
+ const te = me.touchEvent;
+ // loop through all touches on screen
+ for (const pt of me.touches) {
+ actualPts.push(pt);
+ if (this.prevPoints.has(pt.identifier)) {
+ this.prevPoints.set(pt.identifier, pt);
+ }
+ // only add the ones that are targeted on "this" element, but with the identifier that the screen touch gives
+ for (const tPt of me.changedTouches) {
+ if (pt.clientX === tPt.clientX && pt.clientY === tPt.clientY) {
+ // pen is also a touch, but with a radius of 0.5 (at least with the surface pens)
+ // and this seems to be the only way of differentiating pen and touch on touch events
+ if (pt.radiusX > 1 && pt.radiusY > 1) {
+ this.prevPoints.set(pt.identifier, pt);
+ }
+ }
+ }
+ }
+
+ const ptsToDelete: number[] = [];
+ this.prevPoints.forEach(pt => {
+ if (!actualPts.includes(pt)) {
+ ptsToDelete.push(pt.identifier);
+ }
+ });
+
+ // console.log(ptsToDelete.length);
+ ptsToDelete.forEach(pt => this.prevPoints.delete(pt));
+
+ if (this.prevPoints.size) {
+ switch (this.prevPoints.size) {
+ case 1:
+ this.handle1PointerDown(te, me);
+ te.persist();
+ // if (this.holdTimer) {
+ // clearTimeout(this.holdTimer)
+ // this.holdTimer = undefined;
+ // }
+ // console.log(this.holdTimer);
+ // console.log(this.holdTimer);
+ break;
+ case 2:
+ this.handle2PointersDown(te, me);
+ // e.stopPropagation();
+ break;
+ // case 5:
+ // this.handleHandDown(te);
+ // break;
+ }
+ }
+ }
+
+ /**
+ * Handle touch move event
+ */
+ @action
+ protected onTouch = (e: Event, me: InteractionUtils.MultiTouchEvent<TouchEvent>): void => {
+ const te = me.touchEvent;
+ const myTouches = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true);
+
+ // if we're not actually moving a lot, don't consider it as dragging yet
+ if (!InteractionUtils.IsDragging(this.prevPoints, myTouches, 5) && !this._touchDrag) return;
+ this._touchDrag = true;
+ // console.log(myTouches.length);
+ switch (myTouches.length) {
+ case 1:
+ this.handle1PointerMove(te, me);
+ break;
+ case 2:
+ this.handle2PointersMove(te, me);
+ break;
+ }
+
+ for (const pt of me.touches) {
+ if (pt) {
+ if (this.prevPoints.has(pt.identifier)) {
+ this.prevPoints.set(pt.identifier, pt);
+ }
+ }
+ }
+ }
+
+ @action
+ protected onTouchEnd = (e: Event, me: InteractionUtils.MultiTouchEvent<TouchEvent>): void => {
+ // console.log(InteractionUtils.GetMyTargetTouches(e, this.prevPoints).length + " up");
+ // remove all the touches associated with the event
+ const te = me.touchEvent;
+ for (const pt of me.changedTouches) {
+ if (pt) {
+ if (this.prevPoints.has(pt.identifier)) {
+ this.prevPoints.delete(pt.identifier);
+ }
+ }
+ }
+ this._touchDrag = false;
+ te.stopPropagation();
+
+
+ // if (e.targetTouches.length === 0) {
+ // this.prevPoints.clear();
+ // }
+
+ if (this.prevPoints.size === 0) {
+ this.cleanUpInteractions();
+ }
+ e.stopPropagation();
+ }
+
+ cleanUpInteractions = (): void => {
+ this.removeMoveListeners();
+ this.removeEndListeners();
+ }
+
+ handle1PointerMove = (e: TouchEvent, me: InteractionUtils.MultiTouchEvent<TouchEvent>): any => {
+ e.stopPropagation();
+ e.preventDefault();
+ }
+
+ handle2PointersMove = (e: TouchEvent, me: InteractionUtils.MultiTouchEvent<TouchEvent>): any => {
+ e.stopPropagation();
+ e.preventDefault();
+ }
+
+ handle1PointerDown = (e: React.TouchEvent, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>): any => {
+ this.removeMoveListeners();
+ this.addMoveListeners();
+ this.removeEndListeners();
+ this.addEndListeners();
+ }
+
+ handle2PointersDown = (e: React.TouchEvent, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>): any => {
+ this.removeMoveListeners();
+ this.addMoveListeners();
+ this.removeEndListeners();
+ this.addEndListeners();
+ }
+
+ handle1PointerHoldStart = (e: Event, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>): any => {
+ e.stopPropagation();
+ me.touchEvent.stopPropagation();
+ this.removeMoveListeners();
+ this.removeEndListeners();
+ this.removeHoldMoveListeners();
+ this.removeHoldEndListeners();
+ this.addHoldMoveListeners();
+ this.addHoldEndListeners();
+
+ }
+
+ addMoveListeners = () => {
+ const handler = (e: Event) => this.onTouch(e, (e as CustomEvent<InteractionUtils.MultiTouchEvent<TouchEvent>>).detail);
+ document.addEventListener("dashOnTouchMove", handler);
+ this.moveDisposer = () => document.removeEventListener("dashOnTouchMove", handler);
+ }
+
+ removeMoveListeners = () => {
+ this.moveDisposer && this.moveDisposer();
+ }
+
+ addEndListeners = () => {
+ const handler = (e: Event) => this.onTouchEnd(e, (e as CustomEvent<InteractionUtils.MultiTouchEvent<TouchEvent>>).detail);
+ document.addEventListener("dashOnTouchEnd", handler);
+ this.endDisposer = () => document.removeEventListener("dashOnTouchEnd", handler);
+ }
+
+ removeEndListeners = () => {
+ this.endDisposer && this.endDisposer();
+ }
+
+ addHoldMoveListeners = () => {
+ const handler = (e: Event) => this.handle1PointerHoldMove(e, (e as CustomEvent<InteractionUtils.MultiTouchEvent<TouchEvent>>).detail);
+ document.addEventListener("dashOnTouchHoldMove", handler);
+ this.holdMoveDisposer = () => document.removeEventListener("dashOnTouchHoldMove", handler);
+ }
+
+ addHoldEndListeners = () => {
+ const handler = (e: Event) => this.handle1PointerHoldEnd(e, (e as CustomEvent<InteractionUtils.MultiTouchEvent<TouchEvent>>).detail);
+ document.addEventListener("dashOnTouchHoldEnd", handler);
+ this.holdEndDisposer = () => document.removeEventListener("dashOnTouchHoldEnd", handler);
+ }
+
+ removeHoldMoveListeners = () => {
+ this.holdMoveDisposer && this.holdMoveDisposer();
+ }
+
+ removeHoldEndListeners = () => {
+ this.holdEndDisposer && this.holdEndDisposer();
+ }
+
+
+ handle1PointerHoldMove = (e: Event, me: InteractionUtils.MultiTouchEvent<TouchEvent>): void => {
+ e.stopPropagation();
+ me.touchEvent.stopPropagation();
+ }
+
+
+ handle1PointerHoldEnd = (e: Event, me: InteractionUtils.MultiTouchEvent<TouchEvent>): void => {
+ e.stopPropagation();
+ me.touchEvent.stopPropagation();
+ this.removeHoldMoveListeners();
+ this.removeHoldEndListeners();
+
+ me.touchEvent.stopPropagation();
+ me.touchEvent.preventDefault();
+ }
+
+
+ handleHandDown = (e: React.TouchEvent) => {
+ // e.stopPropagation();
+ // e.preventDefault();
+ }
+} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionCarouselView.scss b/src/client/views/collections/CollectionCarouselView.scss
new file mode 100644
index 000000000..4815f1a59
--- /dev/null
+++ b/src/client/views/collections/CollectionCarouselView.scss
@@ -0,0 +1,40 @@
+
+.collectionCarouselView-outer {
+ background: gray;
+ .collectionCarouselView-caption {
+ margin-left: 10%;
+ margin-right: 10%;
+ height: 50;
+ display: inline-block;
+ width: 80%;
+ }
+ .collectionCarouselView-image {
+ height: calc(100% - 50px);
+ display: inline-block;
+ width: 100%;
+ }
+}
+.carouselView-back {
+ position: absolute;
+ display: flex;
+ left: 0;
+ top: 50%;
+ width: 30;
+ height: 30;
+ background: lightgray;
+ align-items: center;
+ border-radius: 5px;
+ justify-content: center;
+}
+.carouselView-fwd {
+ position: absolute;
+ display: flex;
+ right: 0;
+ top: 50%;
+ width: 30;
+ height: 30;
+ background: lightgray;
+ align-items: center;
+ border-radius: 5px;
+ justify-content: center;
+} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionCarouselView.tsx b/src/client/views/collections/CollectionCarouselView.tsx
new file mode 100644
index 000000000..0933d5924
--- /dev/null
+++ b/src/client/views/collections/CollectionCarouselView.tsx
@@ -0,0 +1,82 @@
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import { observable, computed } from 'mobx';
+import { observer } from 'mobx-react';
+import * as React from 'react';
+import { documentSchema } from '../../../new_fields/documentSchemas';
+import { makeInterface } from '../../../new_fields/Schema';
+import { NumCast, StrCast } from '../../../new_fields/Types';
+import { DragManager } from '../../util/DragManager';
+import { ContentFittingDocumentView } from '../nodes/ContentFittingDocumentView';
+import "./CollectionCarouselView.scss";
+import { CollectionSubView } from './CollectionSubView';
+import { faCaretLeft, faCaretRight } from '@fortawesome/free-solid-svg-icons';
+import { Doc } from '../../../new_fields/Doc';
+import { FormattedTextBox } from '../nodes/FormattedTextBox';
+
+
+
+
+type CarouselDocument = makeInterface<[typeof documentSchema,]>;
+const CarouselDocument = makeInterface(documentSchema);
+
+@observer
+export class CollectionCarouselView extends CollectionSubView(CarouselDocument) {
+ @observable public addMenuToggle = React.createRef<HTMLInputElement>();
+ private _dropDisposer?: DragManager.DragDropDisposer;
+
+ componentWillUnmount() {
+ this._dropDisposer && this._dropDisposer();
+ }
+
+ componentDidMount() {
+ }
+ protected createDashEventsTarget = (ele: HTMLDivElement) => { //used for stacking and masonry view
+ this._dropDisposer && this._dropDisposer();
+ if (ele) {
+ this._dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this));
+ }
+ }
+
+ advance = (e: React.MouseEvent) => {
+ e.stopPropagation();
+ this.layoutDoc._itemIndex = (NumCast(this.layoutDoc._itemIndex) + 1) % this.childLayoutPairs.length;
+ }
+ goback = (e: React.MouseEvent) => {
+ e.stopPropagation();
+ this.layoutDoc._itemIndex = (NumCast(this.layoutDoc._itemIndex) - 1 + this.childLayoutPairs.length) % this.childLayoutPairs.length;
+ }
+
+ panelHeight = () => this.props.PanelHeight() - 50;
+ @computed get content() {
+ const index = NumCast(this.layoutDoc._itemIndex);
+ return !(this.childLayoutPairs?.[index]?.layout instanceof Doc) ? (null) :
+ <div>
+ <div className="collectionCarouselView-image">
+ <ContentFittingDocumentView {...this.props}
+ Document={this.childLayoutPairs[index].layout}
+ DataDocument={this.childLayoutPairs[index].data}
+ PanelHeight={this.panelHeight}
+ getTransform={this.props.ScreenToLocalTransform} />
+ </div>
+ <div className="collectionCarouselView-caption" style={{ background: `${StrCast(this.props.Document.backgroundColor)}` }}>
+ <FormattedTextBox key={index} {...this.props} Document={this.childLayoutPairs[index].layout} DataDoc={undefined} fieldKey={"caption"}></FormattedTextBox>
+ </div>
+ </div>
+ }
+ @computed get buttons() {
+ return <>
+ <div key="back" className="carouselView-back" style={{ background: `${StrCast(this.props.Document.backgroundColor)}` }} onClick={this.goback}>
+ <FontAwesomeIcon icon={faCaretLeft} size={"2x"} />
+ </div>
+ <div key="fwd" className="carouselView-fwd" style={{ background: `${StrCast(this.props.Document.backgroundColor)}` }} onClick={this.advance}>
+ <FontAwesomeIcon icon={faCaretRight} size={"2x"} />
+ </div>
+ </>;
+ }
+ render() {
+ return <div className="collectionCarouselView-outer">
+ {this.content}
+ {this.buttons}
+ </div>;
+ }
+} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionDockingView.scss b/src/client/views/collections/CollectionDockingView.scss
index 12f54d69d..f518ef8fb 100644
--- a/src/client/views/collections/CollectionDockingView.scss
+++ b/src/client/views/collections/CollectionDockingView.scss
@@ -1,12 +1,13 @@
@import "../../views/globalCssVariables.scss";
-.lm_active .messageCounter{
- color:white;
+.lm_active .messageCounter {
+ color: white;
background: #999999;
}
+
.messageCounter {
- width:18px;
- height:20px;
+ width: 18px;
+ height: 20px;
text-align: center;
border-radius: 20px;
margin-left: 5px;
@@ -18,25 +19,33 @@
.collectiondockingview-container {
width: 100%;
- height:100%;
+ height: 100%;
border-style: solid;
border-width: $COLLECTION_BORDER_WIDTH;
position: absolute;
top: 0;
left: 0;
- overflow: hidden;
+ // overflow: hidden; // bcz: menus don't show up when this is on (e.g., the parentSelectorMenu)
+
+ .collectionDockingView-dragAsDocument {
+ touch-action: none;
+ }
+
.lm_content {
background: white;
}
+
.lm_controls>li {
opacity: 0.6;
transform: scale(1.2);
}
+
.lm_maximised .lm_controls .lm_maximise {
opacity: 1;
transform: scale(0.8);
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKElEQVR4nGP8////fwYCgImQAgYGBgYWKM2IR81/okwajIpgvsMbVgAwgQYRVakEKQAAAABJRU5ErkJggg==) !important;
}
+
.flexlayout__layout {
left: 0;
top: 0;
@@ -45,17 +54,21 @@
position: absolute;
overflow: hidden;
}
+
.flexlayout__splitter {
background-color: black;
}
+
.flexlayout__splitter:hover {
background-color: #333;
}
+
.flexlayout__splitter_drag {
border-radius: 5px;
background-color: #444;
z-index: 1000;
}
+
.flexlayout__outline_rect {
position: absolute;
cursor: move;
@@ -65,6 +78,7 @@
z-index: 1000;
box-sizing: border-box;
}
+
.flexlayout__outline_rect_edge {
cursor: move;
border: 2px solid #b7d1b5;
@@ -73,12 +87,14 @@
z-index: 1000;
box-sizing: border-box;
}
+
.flexlayout__edge_rect {
position: absolute;
z-index: 1000;
box-shadow: inset 0 0 5px rgba(0, 0, 0, .2);
background-color: lightgray;
}
+
.flexlayout__drag_rect {
position: absolute;
cursor: move;
@@ -97,11 +113,13 @@
padding: 10px;
word-wrap: break-word;
}
+
.flexlayout__tabset {
overflow: hidden;
background-color: #222;
box-sizing: border-box;
}
+
.flexlayout__tab {
overflow: auto;
position: absolute;
@@ -109,6 +127,7 @@
background-color: #222;
color: black;
}
+
.flexlayout__tab_button {
cursor: pointer;
padding: 2px 8px 3px 8px;
@@ -120,28 +139,35 @@
vertical-align: top;
box-sizing: border-box;
}
+
.flexlayout__tab_button--selected {
color: #ddd;
background-color: #222;
}
+
.flexlayout__tab_button--unselected {
color: gray;
}
+
.flexlayout__tab_button_leading {
display: inline-block;
}
+
.flexlayout__tab_button_content {
display: inline-block;
}
+
.flexlayout__tab_button_textbox {
float: left;
border: none;
color: lightgreen;
background-color: #222;
}
+
.flexlayout__tab_button_textbox:focus {
outline: none;
}
+
.flexlayout__tab_button_trailing {
display: inline-block;
margin-left: 5px;
@@ -149,10 +175,12 @@
width: 8px;
height: 8px;
}
+
.flexlayout__tab_button:hover .flexlayout__tab_button_trailing,
.flexlayout__tab_button--selected .flexlayout__tab_button_trailing {
background: transparent url("../../../../node_modules/flexlayout-react/images/close_white.png") no-repeat center;
}
+
.flexlayout__tab_button_overflow {
float: left;
width: 20px;
@@ -165,6 +193,7 @@
font-family: Arial, sans-serif;
background: transparent url("../../../../node_modules/flexlayout-react/images/more.png") no-repeat left;
}
+
.flexlayout__tabset_header {
position: absolute;
left: 0;
@@ -175,6 +204,7 @@
/*box-shadow: inset 0px 0px 3px 0px rgba(136, 136, 136, 0.54);*/
box-sizing: border-box;
}
+
.flexlayout__tab_header_inner {
position: absolute;
left: 0;
@@ -182,6 +212,7 @@
bottom: 0;
width: 10000px;
}
+
.flexlayout__tab_header_outer {
background-color: black;
position: absolute;
@@ -191,12 +222,15 @@
/*height: 100px;*/
overflow: hidden;
}
+
.flexlayout__tabset-selected {
background-image: linear-gradient(#111, #444);
}
+
.flexlayout__tabset-maximized {
background-image: linear-gradient(#666, #333);
}
+
.flexlayout__tab_toolbar {
position: absolute;
display: flex;
@@ -206,6 +240,7 @@
bottom: 0;
right: 0;
}
+
.flexlayout__tab_toolbar_button-min {
width: 20px;
height: 20px;
@@ -213,6 +248,7 @@
outline-width: 0;
background: transparent url("../../../../node_modules/flexlayout-react/images/maximize.png") no-repeat center;
}
+
.flexlayout__tab_toolbar_button-max {
width: 20px;
height: 20px;
@@ -220,14 +256,18 @@
outline-width: 0;
background: transparent url("../../../../node_modules/flexlayout-react/images/restore.png") no-repeat center;
}
+
.flexlayout__popup_menu {}
+
.flexlayout__popup_menu_item {
padding: 2px 10px 2px 10px;
color: #ddd;
}
+
.flexlayout__popup_menu_item:hover {
background-color: #444444;
}
+
.flexlayout__popup_menu_container {
box-shadow: inset 0 0 5px rgba(0, 0, 0, .15);
border: 1px solid #555;
@@ -236,33 +276,39 @@
position: absolute;
z-index: 1000;
}
+
.flexlayout__border_top {
background-color: black;
border-bottom: 1px solid #ddd;
box-sizing: border-box;
overflow: hidden;
}
+
.flexlayout__border_bottom {
background-color: black;
border-top: 1px solid #333;
box-sizing: border-box;
overflow: hidden;
}
+
.flexlayout__border_left {
background-color: black;
border-right: 1px solid #333;
box-sizing: border-box;
overflow: hidden;
}
+
.flexlayout__border_right {
background-color: black;
border-left: 1px solid #333;
box-sizing: border-box;
overflow: hidden;
}
+
.flexlayout__border_inner_bottom {
display: flex;
}
+
.flexlayout__border_inner_left {
position: absolute;
white-space: nowrap;
@@ -270,6 +316,7 @@
transform-origin: top right;
transform: rotate(-90deg);
}
+
.flexlayout__border_inner_right {
position: absolute;
white-space: nowrap;
@@ -277,6 +324,7 @@
transform-origin: top left;
transform: rotate(90deg);
}
+
.flexlayout__border_button {
background-color: #222;
color: white;
@@ -288,29 +336,36 @@
vertical-align: top;
box-sizing: border-box;
}
+
.flexlayout__border_button--selected {
color: #ddd;
background-color: #222;
}
+
.flexlayout__border_button--unselected {
color: gray;
}
+
.flexlayout__border_button_leading {
float: left;
display: inline;
}
+
.flexlayout__border_button_content {
display: inline-block;
}
+
.flexlayout__border_button_textbox {
float: left;
border: none;
color: green;
background-color: #ddd;
}
+
.flexlayout__border_button_textbox:focus {
outline: none;
}
+
.flexlayout__border_button_trailing {
display: inline-block;
margin-left: 5px;
@@ -318,10 +373,12 @@
width: 8px;
height: 8px;
}
+
.flexlayout__border_button:hover .flexlayout__border_button_trailing,
.flexlayout__border_button--selected .flexlayout__border_button_trailing {
background: transparent url("../../../../node_modules/flexlayout-react/images/close_white.png") no-repeat center;
}
+
.flexlayout__border_toolbar_left {
position: absolute;
display: flex;
@@ -331,6 +388,7 @@
left: 0;
right: 0;
}
+
.flexlayout__border_toolbar_right {
position: absolute;
display: flex;
@@ -340,6 +398,7 @@
left: 0;
right: 0;
}
+
.flexlayout__border_toolbar_top {
position: absolute;
display: flex;
@@ -349,6 +408,7 @@
bottom: 0;
right: 0;
}
+
.flexlayout__border_toolbar_bottom {
position: absolute;
display: flex;
diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx
index 42d372f4a..82cb3bc88 100644
--- a/src/client/views/collections/CollectionDockingView.tsx
+++ b/src/client/views/collections/CollectionDockingView.tsx
@@ -20,7 +20,7 @@ import { emptyFunction, returnEmptyString, returnFalse, returnOne, returnTrue, U
import { DocServer } from "../../DocServer";
import { Docs } from '../../documents/Documents';
import { DocumentManager } from '../../util/DocumentManager';
-import { DragLinksAsDocuments, DragManager } from "../../util/DragManager";
+import { DragManager } from "../../util/DragManager";
import { SelectionManager } from '../../util/SelectionManager';
import { Transform } from '../../util/Transform';
import { undoBatch } from "../../util/UndoManager";
@@ -32,6 +32,9 @@ import React = require("react");
import { ButtonSelector } from './ParentDocumentSelector';
import { DocumentType } from '../../documents/DocumentTypes';
import { ComputedField } from '../../../new_fields/ScriptField';
+import { InteractionUtils } from '../../util/InteractionUtils';
+import { TraceMobx } from '../../../new_fields/util';
+import { Scripting } from '../../util/Scripting';
library.add(faFile);
const _global = (window /* browser */ || global /* node */) as any;
@@ -39,7 +42,7 @@ const _global = (window /* browser */ || global /* node */) as any;
export class CollectionDockingView extends React.Component<SubCollectionViewProps> {
@observable public static Instances: CollectionDockingView[] = [];
@computed public static get Instance() { return CollectionDockingView.Instances[0]; }
- public static makeDocumentConfig(document: Doc, dataDoc: Doc | undefined, width?: number) {
+ public static makeDocumentConfig(document: Doc, dataDoc: Doc | undefined, width?: number, libraryPath?: Doc[]) {
return {
type: 'react-component',
component: 'DocumentFrameRenderer',
@@ -47,7 +50,8 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
width: width,
props: {
documentId: document[Id],
- dataDocumentId: dataDoc && dataDoc[Id] !== document[Id] ? dataDoc[Id] : ""
+ dataDocumentId: dataDoc && dataDoc[Id] !== document[Id] ? dataDoc[Id] : "",
+ libraryPath: libraryPath ? libraryPath.map(d => d[Id]) : []
//collectionDockingView: CollectionDockingView.Instance
}
};
@@ -95,14 +99,14 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
@undoBatch
@action
- public OpenFullScreen(docView: DocumentView) {
- let document = Doc.MakeAlias(docView.props.Document);
- let dataDoc = docView.props.DataDoc;
- let newItemStackConfig = {
+ public OpenFullScreen(docView: DocumentView, libraryPath?: Doc[]) {
+ const document = Doc.MakeAlias(docView.props.Document);
+ const dataDoc = docView.props.DataDoc;
+ const newItemStackConfig = {
type: 'stack',
- content: [CollectionDockingView.makeDocumentConfig(document, dataDoc)]
+ content: [CollectionDockingView.makeDocumentConfig(document, dataDoc, undefined, libraryPath)]
};
- var docconfig = this._goldenLayout.root.layoutManager.createContentItem(newItemStackConfig, this._goldenLayout);
+ const docconfig = this._goldenLayout.root.layoutManager.createContentItem(newItemStackConfig, this._goldenLayout);
this._goldenLayout.root.contentItems[0].addChild(docconfig);
docconfig.callDownwards('_$init');
this._goldenLayout._$maximiseItem(docconfig);
@@ -113,7 +117,7 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
}
public CloseFullScreen = () => {
- let target = this._goldenLayout._maximisedItem;
+ const target = this._goldenLayout._maximisedItem;
if (target !== null && this._maximizedSrc) {
this._goldenLayout._maximisedItem.remove();
SelectionManager.SelectDoc(this._maximizedSrc, false);
@@ -128,26 +132,26 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
@undoBatch
@action
- public static CloseRightSplit(document: Doc): boolean {
+ public static CloseRightSplit(document: Opt<Doc>): boolean {
if (!CollectionDockingView.Instance) return false;
- let instance = CollectionDockingView.Instance;
+ const instance = CollectionDockingView.Instance;
let retVal = false;
if (instance._goldenLayout.root.contentItems[0].isRow) {
retVal = Array.from(instance._goldenLayout.root.contentItems[0].contentItems).some((child: any) => {
if (child.contentItems.length === 1 && child.contentItems[0].config.component === "DocumentFrameRenderer" &&
DocumentManager.Instance.getDocumentViewById(child.contentItems[0].config.props.documentId) &&
- Doc.AreProtosEqual(DocumentManager.Instance.getDocumentViewById(child.contentItems[0].config.props.documentId)!.Document, document)) {
+ ((!document && DocumentManager.Instance.getDocumentViewById(child.contentItems[0].config.props.documentId)!.Document.isDisplayPanel) ||
+ (document && Doc.AreProtosEqual(DocumentManager.Instance.getDocumentViewById(child.contentItems[0].config.props.documentId)!.Document, document)))) {
child.contentItems[0].remove();
instance.layoutChanged(document);
return true;
} else {
Array.from(child.contentItems).filter((tab: any) => tab.config.component === "DocumentFrameRenderer").some((tab: any, j: number) => {
if (DocumentManager.Instance.getDocumentViewById(tab.config.props.documentId) &&
- Doc.AreProtosEqual(DocumentManager.Instance.getDocumentViewById(tab.config.props.documentId)!.Document, document)) {
+ ((!document && DocumentManager.Instance.getDocumentViewById(tab.config.props.documentId)!.Document.isDisplayPanel) ||
+ (document && Doc.AreProtosEqual(DocumentManager.Instance.getDocumentViewById(tab.config.props.documentId)!.Document, document)))) {
child.contentItems[j].remove();
child.config.activeItemIndex = Math.max(child.contentItems.length - 1, 0);
- let docs = Cast(instance.props.Document.data, listSpec(Doc));
- docs && docs.indexOf(document) !== -1 && docs.splice(docs.indexOf(document), 1);
return true;
}
return false;
@@ -170,41 +174,68 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
if (removed) CollectionDockingView.Instance._removedDocs.push(removed);
this.stateChanged();
}
+ @undoBatch
+ @action
+ public static ReplaceRightSplit(document: Doc, dataDoc: Doc | undefined, libraryPath?: Doc[]): boolean {
+ if (!CollectionDockingView.Instance) return false; const instance = CollectionDockingView.Instance;
+ const newItemStackConfig = {
+ type: 'stack',
+ content: [CollectionDockingView.makeDocumentConfig(document, dataDoc, undefined, libraryPath)]
+ };
+
+ const newContentItem = instance._goldenLayout.root.layoutManager.createContentItem(newItemStackConfig, instance._goldenLayout);
- public Has = (document: Doc) => {
- let docs = Cast(this.props.Document.data, listSpec(Doc));
- if (!docs) {
- return false;
+ let retVal = false;
+ if (instance._goldenLayout.root.contentItems[0].isRow) {
+ retVal = Array.from(instance._goldenLayout.root.contentItems[0].contentItems).some((child: any) => {
+ if (child.contentItems.length === 1 && child.contentItems[0].config.component === "DocumentFrameRenderer" &&
+ DocumentManager.Instance.getDocumentViewById(child.contentItems[0].config.props.documentId)?.Document.isDisplayPanle) {
+ child.contentItems[0].remove();
+ child.addChild(newContentItem, undefined, true);
+ instance.layoutChanged(document);
+ return true;
+ } else {
+ Array.from(child.contentItems).filter((tab: any) => tab.config.component === "DocumentFrameRenderer").some((tab: any, j: number) => {
+ if (DocumentManager.Instance.getDocumentViewById(tab.config.props.documentId)?.Document.isDisplayPanel) {
+ child.contentItems[j].remove();
+ child.addChild(newContentItem, undefined, true);
+ return true;
+ }
+ return false;
+ });
+ }
+ return false;
+ });
+ }
+ if (retVal) {
+ instance.stateChanged();
}
- return docs.includes(document);
+ return retVal;
}
+
//
- // Creates a vertical split on the right side of the docking view, and then adds the Document to that split
+ // Creates a vertical split on the right side of the docking view, and then adds the Document to the right of that split
//
@undoBatch
@action
- public static AddRightSplit(document: Doc, dataDoc: Doc | undefined, minimize: boolean = false) {
+ public static AddRightSplit(document: Doc, dataDoc: Doc | undefined, libraryPath?: Doc[]) {
if (!CollectionDockingView.Instance) return false;
- let instance = CollectionDockingView.Instance;
- let docs = Cast(instance.props.Document.data, listSpec(Doc));
- if (docs) {
- docs.push(document);
- }
- let newItemStackConfig = {
+ const instance = CollectionDockingView.Instance;
+ const newItemStackConfig = {
type: 'stack',
- content: [CollectionDockingView.makeDocumentConfig(document, dataDoc)]
+ content: [CollectionDockingView.makeDocumentConfig(document, dataDoc, undefined, libraryPath)]
};
- var newContentItem = instance._goldenLayout.root.layoutManager.createContentItem(newItemStackConfig, instance._goldenLayout);
+ const newContentItem = instance._goldenLayout.root.layoutManager.createContentItem(newItemStackConfig, instance._goldenLayout);
if (instance._goldenLayout.root.contentItems.length === 0) {
instance._goldenLayout.root.addChild(newContentItem);
} else if (instance._goldenLayout.root.contentItems[0].isRow) {
instance._goldenLayout.root.contentItems[0].addChild(newContentItem);
} else {
- var collayout = instance._goldenLayout.root.contentItems[0];
- var newRow = collayout.layoutManager.createContentItem({ type: "row" }, instance._goldenLayout);
+ const collayout = instance._goldenLayout.root.contentItems[0];
+ const newRow = collayout.layoutManager.createContentItem({ type: "row" }, instance._goldenLayout);
collayout.parent.replaceChild(collayout, newRow);
newRow.addChild(newContentItem, undefined, true);
@@ -213,25 +244,28 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
collayout.config.width = 50;
newContentItem.config.width = 50;
}
- if (minimize) {
- // bcz: this makes the drag image show up better, but it also messes with fixed layout sizes
- // newContentItem.config.width = 10;
- // newContentItem.config.height = 10;
- }
newContentItem.callDownwards('_$init');
instance.layoutChanged();
return true;
}
+ //
+ // Creates a vertical split on the right side of the docking view, and then adds the Document to that split
+ //
@undoBatch
@action
- public AddTab = (stack: any, document: Doc, dataDocument: Doc | undefined) => {
- Doc.GetProto(document).lastOpened = new DateField;
- let docs = Cast(this.props.Document.data, listSpec(Doc));
- if (docs) {
- docs.push(document);
+ public static UseRightSplit(document: Doc, dataDoc: Doc | undefined, libraryPath?: Doc[]) {
+ document.isDisplayPanel = true;
+ if (!CollectionDockingView.ReplaceRightSplit(document, dataDoc, libraryPath)) {
+ CollectionDockingView.AddRightSplit(document, dataDoc, libraryPath);
}
- let docContentConfig = CollectionDockingView.makeDocumentConfig(document, dataDocument);
+ }
+
+ @undoBatch
+ @action
+ public AddTab = (stack: any, document: Doc, dataDocument: Doc | undefined, libraryPath?: Doc[]) => {
+ Doc.GetProto(document).lastOpened = new DateField;
+ const docContentConfig = CollectionDockingView.makeDocumentConfig(document, dataDocument, undefined, libraryPath);
if (stack === undefined) {
let stack: any = this._goldenLayout.root;
while (!stack.isStack) {
@@ -254,7 +288,7 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
}
setupGoldenLayout() {
- var config = StrCast(this.props.Document.dockingConfig);
+ const config = StrCast(this.props.Document.dockingConfig);
if (config) {
if (!this._goldenLayout) {
runInAction(() => this._goldenLayout = new GoldenLayout(JSON.parse(config)));
@@ -298,7 +332,7 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
// Because this is in a set timeout, if this component unmounts right after mounting,
// we will leak a GoldenLayout, because we try to destroy it before we ever create it
setTimeout(() => this.setupGoldenLayout(), 1);
- let userDoc = CurrentUserUtils.UserDocument;
+ const userDoc = CurrentUserUtils.UserDocument;
userDoc && DocListCast((userDoc.workspaces as Doc).data).map(d => d.workspaceBrush = false);
this.props.Document.workspaceBrush = true;
}
@@ -329,7 +363,7 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
}
@action
onResize = (event: any) => {
- var cur = this._containerRef.current;
+ const cur = this._containerRef.current;
// bcz: since GoldenLayout isn't a React component itself, we need to notify it to resize when its document container's size has changed
this._goldenLayout && this._goldenLayout.updateSize(cur!.getBoundingClientRect().width, cur!.getBoundingClientRect().height);
@@ -348,36 +382,43 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
@action
onPointerDown = (e: React.PointerEvent): void => {
this._isPointerDown = true;
- let onPointerUp = action(() => {
+ const onPointerUp = action(() => {
window.removeEventListener("pointerup", onPointerUp);
this._isPointerDown = false;
});
window.addEventListener("pointerup", onPointerUp);
- var className = (e.target as any).className;
+ const className = (e.target as any).className;
if (className === "messageCounter") {
e.stopPropagation();
e.preventDefault();
- let x = e.clientX;
- let y = e.clientY;
- let docid = (e.target as any).DashDocId;
- let tab = (e.target as any).parentElement as HTMLElement;
+ const x = e.clientX;
+ const y = e.clientY;
+ const docid = (e.target as any).DashDocId;
+ const tab = (e.target as any).parentElement as HTMLElement;
DocServer.GetRefField(docid).then(action(async (sourceDoc: Opt<Field>) =>
- (sourceDoc instanceof Doc) && DragLinksAsDocuments(tab, x, y, sourceDoc)));
+ (sourceDoc instanceof Doc) && DragManager.StartLinkTargetsDrag(tab, x, y, sourceDoc)));
}
if (className === "lm_drag_handle" || className === "lm_close" || className === "lm_maximise" || className === "lm_minimise" || className === "lm_close_tab") {
this._flush = true;
}
}
+ updateDataField = async (json: string) => {
+ const matches = json.match(/\"documentId\":\"[a-z0-9-]+\"/g);
+ const docids = matches?.map(m => m.replace("\"documentId\":\"", "").replace("\"", ""));
+
+ if (docids) {
+ const docs = (await Promise.all(docids.map(id => DocServer.GetRefField(id)))).filter(f => f).map(f => f as Doc);
+ Doc.GetProto(this.props.Document)[this.props.fieldKey] = new List<Doc>(docs);
+ }
+ }
+
@undoBatch
stateChanged = () => {
- let docs = Cast(CollectionDockingView.Instance.props.Document.data, listSpec(Doc));
- CollectionDockingView.Instance._removedDocs.map(theDoc =>
- docs && docs.indexOf(theDoc) !== -1 &&
- docs.splice(docs.indexOf(theDoc), 1));
- CollectionDockingView.Instance._removedDocs.length = 0;
- var json = JSON.stringify(this._goldenLayout.toConfig());
+ const json = JSON.stringify(this._goldenLayout.toConfig());
this.props.Document.dockingConfig = json;
+ this.updateDataField(json);
+
if (this.undohack && !this.hack) {
this.undohack.end();
this.undohack = undefined;
@@ -391,7 +432,7 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
}
htmlToElement(html: string) {
- var template = document.createElement('template');
+ const template = document.createElement('template');
html = html.trim(); // Never return a text node of whitespace as the result
template.innerHTML = html;
return template.content.firstChild;
@@ -403,50 +444,46 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
tab.contentItem.parent.config.fixed = true;
}
- let doc = await DocServer.GetRefField(tab.contentItem.config.props.documentId) as Doc;
- let dataDoc = await DocServer.GetRefField(tab.contentItem.config.props.dataDocumentId) as Doc;
+ const doc = await DocServer.GetRefField(tab.contentItem.config.props.documentId) as Doc;
+ const dataDoc = await DocServer.GetRefField(tab.contentItem.config.props.dataDocumentId) as Doc;
if (doc instanceof Doc) {
- let dragSpan = document.createElement("span");
+ const dragSpan = document.createElement("span");
dragSpan.style.position = "relative";
dragSpan.style.bottom = "6px";
dragSpan.style.paddingLeft = "4px";
dragSpan.style.paddingRight = "2px";
- let gearSpan = document.createElement("span");
+ const gearSpan = document.createElement("span");
gearSpan.style.position = "relative";
gearSpan.style.paddingLeft = "0px";
gearSpan.style.paddingRight = "12px";
- let upDiv = document.createElement("span");
+ const upDiv = document.createElement("span");
const stack = tab.contentItem.parent;
// shifts the focus to this tab when another tab is dragged over it
tab.element[0].onmouseenter = (e: any) => {
if (!this._isPointerDown || !SelectionManager.GetIsDragging()) return;
- var activeContentItem = tab.header.parent.getActiveContentItem();
+ const activeContentItem = tab.header.parent.getActiveContentItem();
if (tab.contentItem !== activeContentItem) {
tab.header.parent.setActiveContentItem(tab.contentItem);
}
tab.setActive(true);
};
- ReactDOM.render(<span title="Drag as document" onPointerDown={
- e => {
+ ReactDOM.render(<span title="Drag as document"
+ className="collectionDockingView-dragAsDocument"
+ onPointerDown={e => {
e.preventDefault();
e.stopPropagation();
- DragManager.StartDocumentDrag([dragSpan], new DragManager.DocumentDragData([doc]), e.clientX, e.clientY, {
- handlers: { dragComplete: emptyFunction },
- hideSource: false
- });
- }}><FontAwesomeIcon icon="file" size="lg" /></span>, dragSpan);
+ DragManager.StartDocumentDrag([dragSpan], new DragManager.DocumentDragData([doc]), e.clientX, e.clientY);
+ }}>
+ <FontAwesomeIcon icon="file" size="lg" />
+ </span>, dragSpan);
ReactDOM.render(<ButtonSelector Document={doc} Stack={stack} />, gearSpan);
- // ReactDOM.render(<ParentDocSelector Document={doc} addDocTab={(doc, data, where) => {
- // where === "onRight" ? CollectionDockingView.AddRightSplit(doc, dataDoc) : CollectionDockingView.Instance.AddTab(stack, doc, dataDoc);
- // return true;
- // }} />, upDiv);
tab.reactComponents = [dragSpan, gearSpan, upDiv];
tab.element.append(dragSpan);
tab.element.append(gearSpan);
tab.element.append(upDiv);
tab.reactionDisposer = reaction(() => [doc.title, Doc.IsBrushedDegree(doc)], () => {
tab.titleElement[0].textContent = doc.title, { fireImmediately: true };
- tab.titleElement[0].style.outline = `${["transparent", "white", "white"][Doc.IsBrushedDegree(doc)]} ${["none", "dashed", "solid"][Doc.IsBrushedDegree(doc)]} 1px`;
+ tab.titleElement[0].style.outline = `${["transparent", "white", "white"][Doc.IsBrushedDegreeUnmemoized(doc)]} ${["none", "dashed", "solid"][Doc.IsBrushedDegreeUnmemoized(doc)]} 1px`;
});
//TODO why can't this just be doc instead of the id?
tab.titleElement[0].DashDocId = tab.contentItem.config.props.documentId;
@@ -456,12 +493,12 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
tab.closeElement.off('click') //unbind the current click handler
.click(async function () {
tab.reactionDisposer && tab.reactionDisposer();
- let doc = await DocServer.GetRefField(tab.contentItem.config.props.documentId);
+ const doc = await DocServer.GetRefField(tab.contentItem.config.props.documentId);
if (doc instanceof Doc) {
- let theDoc = doc;
+ const theDoc = doc;
CollectionDockingView.Instance._removedDocs.push(theDoc);
- let userDoc = CurrentUserUtils.UserDocument;
+ const userDoc = CurrentUserUtils.UserDocument;
let recent: Doc | undefined;
if (userDoc && (recent = await Cast(CurrentUserUtils.UserDocument.recentlyClosed, Doc))) {
Doc.AddDocToList(recent, "data", doc, undefined, true, true);
@@ -488,9 +525,31 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
stack.header.element[0].style.backgroundColor = DocServer.Control.isReadOnly() ? "#228540" : undefined;
stack.header.element.on('mousedown', (e: any) => {
if (e.target === stack.header.element[0] && e.button === 1) {
- this.AddTab(stack, Docs.Create.FreeformDocument([], { width: this.props.PanelWidth(), height: this.props.PanelHeight(), title: "Untitled Collection" }), undefined);
+ this.AddTab(stack, Docs.Create.FreeformDocument([], { _width: this.props.PanelWidth(), _height: this.props.PanelHeight(), title: "Untitled Collection" }), undefined);
}
});
+
+ // starter code for bezel to add new pane
+ // stack.element.on("touchstart", (e: TouchEvent) => {
+ // if (e.targetTouches.length === 2) {
+ // let pt1 = e.targetTouches.item(0);
+ // let pt2 = e.targetTouches.item(1);
+ // let threshold = 40 * window.devicePixelRatio;
+ // if (pt1 && pt2 && InteractionUtils.TwoPointEuclidist(pt1, pt2) < threshold) {
+ // let edgeThreshold = 30 * window.devicePixelRatio;
+ // let center = InteractionUtils.CenterPoint([pt1, pt2]);
+ // let stackRect: DOMRect = stack.element.getBoundingClientRect();
+ // let nearLeft = center.X - stackRect.x < edgeThreshold;
+ // let nearTop = center.Y - stackRect.y < edgeThreshold;
+ // let nearRight = stackRect.right - center.X < edgeThreshold;
+ // let nearBottom = stackRect.bottom - center.Y < edgeThreshold;
+ // let ns = [nearLeft, nearTop, nearRight, nearBottom].filter(n => n);
+ // if (ns.length === 1) {
+
+ // }
+ // }
+ // }
+ // });
stack.header.controlsContainer.find('.lm_close') //get the close icon
.off('click') //unbind the current click handler
.click(action(async function () {
@@ -498,13 +557,13 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
stack.remove();
stack.contentItems.forEach(async (contentItem: any) => {
- let doc = await DocServer.GetRefField(contentItem.config.props.documentId);
+ const doc = await DocServer.GetRefField(contentItem.config.props.documentId);
if (doc instanceof Doc) {
let recent: Doc | undefined;
if (CurrentUserUtils.UserDocument && (recent = await Cast(CurrentUserUtils.UserDocument.recentlyClosed, Doc))) {
Doc.AddDocToList(recent, "data", doc, undefined, true, true);
}
- let theDoc = doc;
+ const theDoc = doc;
CollectionDockingView.Instance._removedDocs.push(theDoc);
}
});
@@ -514,7 +573,7 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
.off('click') //unbind the current click handler
.click(action(function () {
stack.config.fixed = !stack.config.fixed;
- // var url = Utils.prepend("/doc/" + stack.contentItems[0].tab.contentItem.config.props.documentId);
+ // const url = Utils.prepend("/doc/" + stack.contentItems[0].tab.contentItem.config.props.documentId);
// let win = window.open(url, stack.contentItems[0].tab.title, "width=300,height=400");
}));
}
@@ -541,11 +600,13 @@ interface DockedFrameProps {
documentId: FieldId;
dataDocumentId: FieldId;
glContainer: any;
+ libraryPath: (FieldId[]);
//collectionDockingView: CollectionDockingView
}
@observer
export class DockedFrameRenderer extends React.Component<DockedFrameProps> {
_mainCont: HTMLDivElement | null = null;
+ @observable private _libraryPath: Doc[] = [];
@observable private _panelWidth = 0;
@observable private _panelHeight = 0;
@observable private _document: Opt<Doc>;
@@ -563,6 +624,14 @@ export class DockedFrameRenderer extends React.Component<DockedFrameProps> {
DocServer.GetRefField(this.props.dataDocumentId).then(action((f: Opt<Field>) => this._dataDoc = f as Doc));
}
}));
+ this.props.libraryPath && this.setupLibraryPath();
+ }
+
+ async setupLibraryPath() {
+ Promise.all(this.props.libraryPath.map(async docid => {
+ const d = await DocServer.GetRefField(docid);
+ return d instanceof Doc ? d : undefined;
+ })).then(action((list: (Doc | undefined)[]) => this._libraryPath = list.filter(d => d).map(d => d as Doc)));
}
/**
@@ -572,11 +641,11 @@ export class DockedFrameRenderer extends React.Component<DockedFrameProps> {
@action
public PinDoc(doc: Doc) {
//add this new doc to props.Document
- let curPres = Cast(CurrentUserUtils.UserDocument.curPresentation, Doc) as Doc;
+ const curPres = Cast(CurrentUserUtils.UserDocument.curPresentation, Doc) as Doc;
if (curPres) {
- let pinDoc = Docs.Create.PresElementBoxDocument({ backgroundColor: "transparent" });
+ const pinDoc = Docs.Create.PresElementBoxDocument({ backgroundColor: "transparent" });
Doc.GetProto(pinDoc).presentationTargetDoc = doc;
- Doc.GetProto(pinDoc).title = ComputedField.MakeFunction('(this.presentationTargetDoc instanceof Doc) && this.presentationTargetDoc.title.toString()');
+ Doc.GetProto(pinDoc).title = ComputedField.MakeFunction('(this.presentationTargetDoc instanceof Doc) && this.presentationTargetDoc.title?.toString()');
const data = Cast(curPres.data, listSpec(Doc));
if (data) {
data.push(pinDoc);
@@ -590,8 +659,8 @@ export class DockedFrameRenderer extends React.Component<DockedFrameProps> {
}
componentDidMount() {
- let observer = new _global.ResizeObserver(action((entries: any) => {
- for (let entry of entries) {
+ const observer = new _global.ResizeObserver(action((entries: any) => {
+ for (const entry of entries) {
this._panelWidth = entry.contentRect.width;
this._panelHeight = entry.contentRect.height;
}
@@ -615,64 +684,65 @@ export class DockedFrameRenderer extends React.Component<DockedFrameProps> {
}
}
- get layoutDoc() { return this._document && Doc.Layout(this._document);}
- panelWidth = () => this.layoutDoc && this.layoutDoc.maxWidth ? Math.min(Math.max(NumCast(this.layoutDoc.width), NumCast(this.layoutDoc.nativeWidth)), this._panelWidth) : this._panelWidth;
+ get layoutDoc() { return this._document && Doc.Layout(this._document); }
+ panelWidth = () => this.layoutDoc && this.layoutDoc.maxWidth ? Math.min(Math.max(NumCast(this.layoutDoc._width), NumCast(this.layoutDoc._nativeWidth)), this._panelWidth) : this._panelWidth;
panelHeight = () => this._panelHeight;
- nativeWidth = () => !this.layoutDoc!.ignoreAspect && !this.layoutDoc!.fitWidth ? NumCast(this.layoutDoc!.nativeWidth) || this._panelWidth : 0;
- nativeHeight = () => !this.layoutDoc!.ignoreAspect && !this.layoutDoc!.fitWidth ? NumCast(this.layoutDoc!.nativeHeight) || this._panelHeight : 0;
+ nativeWidth = () => !this.layoutDoc!.ignoreAspect && !this.layoutDoc!._fitWidth ? NumCast(this.layoutDoc!._nativeWidth) || this._panelWidth : 0;
+ nativeHeight = () => !this.layoutDoc!.ignoreAspect && !this.layoutDoc!._fitWidth ? NumCast(this.layoutDoc!._nativeHeight) || this._panelHeight : 0;
contentScaling = () => {
if (this.layoutDoc!.type === DocumentType.PDF) {
- if ((this.layoutDoc && this.layoutDoc.fitWidth) ||
- this._panelHeight / NumCast(this.layoutDoc!.nativeHeight) > this._panelWidth / NumCast(this.layoutDoc!.nativeWidth)) {
- return this._panelWidth / NumCast(this.layoutDoc!.nativeWidth);
+ if ((this.layoutDoc && this.layoutDoc._fitWidth) ||
+ this._panelHeight / NumCast(this.layoutDoc!._nativeHeight) > this._panelWidth / NumCast(this.layoutDoc!._nativeWidth)) {
+ return this._panelWidth / NumCast(this.layoutDoc!._nativeWidth);
} else {
- return this._panelHeight / NumCast(this.layoutDoc!.nativeHeight);
+ return this._panelHeight / NumCast(this.layoutDoc!._nativeHeight);
}
}
const nativeH = this.nativeHeight();
const nativeW = this.nativeWidth();
if (!nativeW || !nativeH) return 1;
- let wscale = this.panelWidth() / nativeW;
+ const wscale = this.panelWidth() / nativeW;
return wscale * nativeH > this._panelHeight ? this._panelHeight / nativeH : wscale;
}
ScreenToLocalTransform = () => {
if (this._mainCont && this._mainCont.children) {
- let { scale, translateX, translateY } = Utils.GetScreenTransform(this._mainCont.children[0].firstChild as HTMLElement);
- scale = Utils.GetScreenTransform(this._mainCont).scale;
+ const { translateX, translateY } = Utils.GetScreenTransform(this._mainCont.children[0].firstChild as HTMLElement);
+ const scale = Utils.GetScreenTransform(this._mainCont).scale;
return CollectionDockingView.Instance.props.ScreenToLocalTransform().translate(-translateX, -translateY).scale(1 / this.contentScaling() / scale);
}
return Transform.Identity();
}
get previewPanelCenteringOffset() { return this.nativeWidth() && !this.layoutDoc!.ignoreAspect ? (this._panelWidth - this.nativeWidth() * this.contentScaling()) / 2 : 0; }
+ get widthpercent() { return this.nativeWidth() && !this.layoutDoc!.ignoreAspect ? `${(this.nativeWidth() * this.contentScaling()) / this.panelWidth() * 100}%` : undefined; }
- addDocTab = (doc: Doc, dataDoc: Opt<Doc>, location: string) => {
+ addDocTab = (doc: Doc, dataDoc: Opt<Doc>, location: string, libraryPath?: Doc[]) => {
SelectionManager.DeselectAll();
if (doc.dockingConfig) {
- MainView.Instance.openWorkspace(doc);
- return true;
+ return MainView.Instance.openWorkspace(doc);
} else if (location === "onRight") {
- return CollectionDockingView.AddRightSplit(doc, dataDoc);
+ return CollectionDockingView.AddRightSplit(doc, dataDoc, libraryPath);
} else if (location === "close") {
return CollectionDockingView.CloseRightSplit(doc);
} else {
- return CollectionDockingView.Instance.AddTab(this._stack, doc, dataDoc);
+ return CollectionDockingView.Instance.AddTab(this._stack, doc, dataDoc, libraryPath);
}
}
@computed get docView() {
+ TraceMobx();
if (!this._document) return (null);
const document = this._document;
- let resolvedDataDoc = document.layout instanceof Doc ? document : this._dataDoc;
+ const resolvedDataDoc = document.layout instanceof Doc ? document : this._dataDoc;
return <DocumentView key={document[Id]}
+ LibraryPath={this._libraryPath}
Document={document}
DataDoc={resolvedDataDoc}
bringToFront={emptyFunction}
addDocument={undefined}
removeDocument={undefined}
- ruleProvider={undefined}
ContentScaling={this.contentScaling}
PanelWidth={this.panelWidth}
PanelHeight={this.panelHeight}
@@ -695,9 +765,12 @@ export class DockedFrameRenderer extends React.Component<DockedFrameProps> {
(<div className="collectionDockingView-content" ref={ref => this._mainCont = ref}
style={{
transform: `translate(${this.previewPanelCenteringOffset}px, 0px)`,
- height: this.layoutDoc && this.layoutDoc.fitWidth ? undefined : "100%"
+ height: this.layoutDoc && this.layoutDoc._fitWidth ? undefined : "100%",
+ width: this.widthpercent
}}>
{this.docView}
</div >);
}
-} \ No newline at end of file
+}
+Scripting.addGlobal(function openOnRight(doc: any) { CollectionDockingView.AddRightSplit(doc, undefined); });
+Scripting.addGlobal(function useRightSplit(doc: any) { CollectionDockingView.UseRightSplit(doc, undefined); });
diff --git a/src/client/views/CollectionLinearView.scss b/src/client/views/collections/CollectionLinearView.scss
index 4423a7020..eae9e0220 100644
--- a/src/client/views/CollectionLinearView.scss
+++ b/src/client/views/collections/CollectionLinearView.scss
@@ -1,5 +1,5 @@
-@import "globalCssVariables";
-@import "nodeModuleOverrides";
+@import "../globalCssVariables";
+@import "../_nodeModuleOverrides";
.collectionLinearView-outer{
overflow: hidden;
@@ -17,6 +17,7 @@
height: 18px;
margin-top:auto;
margin-bottom:auto;
+ margin-right: 3px;
cursor: pointer;
transition: transform 0.2s;
}
@@ -51,8 +52,9 @@
.collectionLinearView-docBtn, .collectionLinearView-docBtn-scalable {
position:relative;
- margin-top: auto;
- margin-bottom: auto;
+ margin:auto;
+ margin-left: 3px;
+ transform-origin: center 80%;
}
.collectionLinearView-docBtn-scalable:hover {
transform: scale(1.15);
diff --git a/src/client/views/collections/CollectionLinearView.tsx b/src/client/views/collections/CollectionLinearView.tsx
new file mode 100644
index 000000000..e613bf411
--- /dev/null
+++ b/src/client/views/collections/CollectionLinearView.tsx
@@ -0,0 +1,134 @@
+import { action, IReactionDisposer, observable, reaction, runInAction } from 'mobx';
+import { observer } from 'mobx-react';
+import * as React from 'react';
+import { Doc, HeightSym, WidthSym } from '../../../new_fields/Doc';
+import { makeInterface } from '../../../new_fields/Schema';
+import { BoolCast, NumCast, StrCast, Cast } from '../../../new_fields/Types';
+import { emptyFunction, returnEmptyString, returnOne, returnTrue, Utils } from '../../../Utils';
+import { DragManager } from '../../util/DragManager';
+import { Transform } from '../../util/Transform';
+import "./CollectionLinearView.scss";
+import { CollectionViewType } from './CollectionView';
+import { CollectionSubView } from './CollectionSubView';
+import { DocumentView } from '../nodes/DocumentView';
+import { documentSchema } from '../../../new_fields/documentSchemas';
+import { Id } from '../../../new_fields/FieldSymbols';
+import { ScriptField } from '../../../new_fields/ScriptField';
+
+
+type LinearDocument = makeInterface<[typeof documentSchema,]>;
+const LinearDocument = makeInterface(documentSchema);
+
+@observer
+export class CollectionLinearView extends CollectionSubView(LinearDocument) {
+ @observable public addMenuToggle = React.createRef<HTMLInputElement>();
+ @observable private _selectedIndex = -1;
+ private _dropDisposer?: DragManager.DragDropDisposer;
+ private _widthDisposer?: IReactionDisposer;
+ private _selectedDisposer?: IReactionDisposer;
+
+ componentWillUnmount() {
+ this._dropDisposer && this._dropDisposer();
+ this._widthDisposer && this._widthDisposer();
+ this._selectedDisposer && this._selectedDisposer();
+ this.childLayoutPairs.filter((pair) => this.isCurrent(pair.layout)).map((pair, ind) => {
+ Cast(pair.layout.proto?.onPointerUp, ScriptField)?.script.run({ this: pair.layout.proto }, console.log);
+ });
+ }
+
+ componentDidMount() {
+ // is there any reason this needs to exist? -syip. yes, it handles autoHeight for stacking views (masonry isn't yet supported).
+ this._widthDisposer = reaction(() => this.props.Document[HeightSym]() + this.childDocs.length + (this.props.Document.isExpanded ? 1 : 0),
+ () => this.props.Document._width = 5 + (this.props.Document.isExpanded ? this.childDocs.length * (this.props.Document[HeightSym]()) : 10),
+ { fireImmediately: true }
+ );
+
+ this._selectedDisposer = reaction(
+ () => NumCast(this.props.Document.selectedIndex),
+ (i) => runInAction(() => {
+ this._selectedIndex = i;
+ let selected: any = undefined;
+ this.childLayoutPairs.filter((pair) => this.isCurrent(pair.layout)).map(async (pair, ind) => {
+ const isSelected = this._selectedIndex === ind;
+ if (isSelected) {
+ selected = pair;
+ }
+ else {
+ Cast(pair.layout.proto?.onPointerUp, ScriptField)?.script.run({ this: pair.layout.proto }, console.log);
+ }
+ });
+ if (selected && selected.layout) {
+ Cast(selected.layout.proto?.onPointerDown, ScriptField)?.script.run({ this: selected.layout.proto }, console.log);
+ }
+ }),
+ { fireImmediately: true }
+ );
+ }
+ protected createDashEventsTarget = (ele: HTMLDivElement) => { //used for stacking and masonry view
+ this._dropDisposer && this._dropDisposer();
+ if (ele) {
+ this._dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this));
+ }
+ }
+
+ public isCurrent(doc: Doc) { return !doc.isMinimized && (Math.abs(NumCast(doc.displayTimecode, -1) - NumCast(this.Document.currentTimecode, -1)) < 1.5 || NumCast(doc.displayTimecode, -1) === -1); }
+
+ dimension = () => NumCast(this.props.Document._height); // 2 * the padding
+ getTransform = (ele: React.RefObject<HTMLDivElement>) => () => {
+ if (!ele.current) return Transform.Identity();
+ const { scale, translateX, translateY } = Utils.GetScreenTransform(ele.current);
+ return new Transform(-translateX, -translateY, 1 / scale);
+ }
+
+ render() {
+ const guid = Utils.GenerateGuid();
+ const flexDir: any = StrCast(this.Document.flexDirection);
+ return <div className="collectionLinearView-outer">
+ <div className="collectionLinearView" ref={this.createDashEventsTarget} >
+ <input id={`${guid}`} type="checkbox" checked={BoolCast(this.props.Document.isExpanded)} ref={this.addMenuToggle}
+ onChange={action((e: any) => this.props.Document.isExpanded = this.addMenuToggle.current!.checked)} />
+ <label htmlFor={`${guid}`} style={{ marginTop: "auto", marginBottom: "auto", background: StrCast(this.props.Document.backgroundColor, "black") === StrCast(this.props.Document.color, "white") ? "black" : StrCast(this.props.Document.backgroundColor, "black") }} title="Close Menu"><p>+</p></label>
+
+ <div className="collectionLinearView-content" style={{ height: this.dimension(), width: NumCast(this.props.Document._width, 25), flexDirection: flexDir }}>
+ {this.childLayoutPairs.filter((pair) => this.isCurrent(pair.layout)).map((pair, ind) => {
+ const nested = pair.layout._viewType === CollectionViewType.Linear;
+ const dref = React.createRef<HTMLDivElement>();
+ const nativeWidth = NumCast(pair.layout._nativeWidth, this.dimension());
+ const deltaSize = nativeWidth * .15 / 2;
+ return <div className={`collectionLinearView-docBtn` + (pair.layout.onClick || pair.layout.onDragStart ? "-scalable" : "")} key={pair.layout[Id]} ref={dref}
+ style={{
+ width: nested ? pair.layout[WidthSym]() : this.dimension() - deltaSize,
+ height: nested && pair.layout.isExpanded ? pair.layout[HeightSym]() : this.dimension() - deltaSize,
+ }} >
+ <DocumentView
+ Document={pair.layout}
+ DataDoc={pair.data}
+ LibraryPath={this.props.LibraryPath}
+ addDocument={this.props.addDocument}
+ moveDocument={this.props.moveDocument}
+ addDocTab={this.props.addDocTab}
+ pinToPres={emptyFunction}
+ removeDocument={this.props.removeDocument}
+ onClick={undefined}
+ ScreenToLocalTransform={this.getTransform(dref)}
+ ContentScaling={returnOne}
+ PanelWidth={nested ? pair.layout[WidthSym] : () => this.dimension()}// ugh - need to get rid of this inline function to avoid recomputing
+ PanelHeight={nested ? pair.layout[HeightSym] : () => this.dimension()}
+ renderDepth={this.props.renderDepth + 1}
+ focus={emptyFunction}
+ backgroundColor={returnEmptyString}
+ parentActive={returnTrue}
+ whenActiveChanged={emptyFunction}
+ bringToFront={emptyFunction}
+ ContainingCollectionView={undefined}
+ ContainingCollectionDoc={undefined}
+ zoomToScale={emptyFunction}
+ getScale={returnOne}>
+ </DocumentView>
+ </div>;
+ })}
+ </div>
+ </div>
+ </div>;
+ }
+} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionMasonryViewFieldRow.tsx b/src/client/views/collections/CollectionMasonryViewFieldRow.tsx
index 52ebfafd3..e25a2f5eb 100644
--- a/src/client/views/collections/CollectionMasonryViewFieldRow.tsx
+++ b/src/client/views/collections/CollectionMasonryViewFieldRow.tsx
@@ -2,7 +2,7 @@ import React = require("react");
import { library } from '@fortawesome/fontawesome-svg-core';
import { faPalette } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { action, observable } from "mobx";
+import { action, observable, computed } from "mobx";
import { observer } from "mobx-react";
import Measure from "react-measure";
import { Doc } from "../../../new_fields/Doc";
@@ -20,7 +20,6 @@ import { anchorPoints, Flyout } from "../DocumentDecorations";
import { EditableView } from "../EditableView";
import { CollectionStackingView } from "./CollectionStackingView";
import "./CollectionStackingView.scss";
-import { undo } from "prosemirror-history";
library.add(faPalette);
@@ -57,7 +56,7 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
createRowDropRef = (ele: HTMLDivElement | null) => {
this._dropDisposer && this._dropDisposer();
if (ele) {
- this._dropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.rowDrop.bind(this) } });
+ this._dropDisposer = DragManager.MakeDropTarget(ele, this.rowDrop.bind(this));
}
}
@@ -65,9 +64,9 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
if (this._collapsed) {
this.props.setDocHeight(this._heading, 20);
} else {
- let rawHeight = this._contRef.current!.getBoundingClientRect().height + 15; //+ 15 accounts for the group header
- let transformScale = this.props.screenToLocalTransform().Scale;
- let trueHeight = rawHeight * transformScale;
+ const rawHeight = this._contRef.current!.getBoundingClientRect().height + 15; //+ 15 accounts for the group header
+ const transformScale = this.props.screenToLocalTransform().Scale;
+ const trueHeight = rawHeight * transformScale;
this.props.setDocHeight(this._heading, trueHeight);
}
}
@@ -75,19 +74,19 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
@undoBatch
rowDrop = action((e: Event, de: DragManager.DropEvent) => {
this._createAliasSelected = false;
- if (de.data instanceof DragManager.DocumentDragData) {
+ if (de.complete.docDragData) {
(this.props.parent.Document.dropConverter instanceof ScriptField) &&
- this.props.parent.Document.dropConverter.script.run({ dragData: de.data });
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
- let castedValue = this.getValue(this._heading);
- de.data.droppedDocuments.forEach(d => d[key] = castedValue);
+ this.props.parent.Document.dropConverter.script.run({ dragData: de.complete.docDragData });
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const castedValue = this.getValue(this._heading);
+ de.complete.docDragData.droppedDocuments.forEach(d => d[key] = castedValue);
this.props.parent.drop(e, de);
e.stopPropagation();
}
});
getValue = (value: string): any => {
- let parsed = parseInt(value);
+ const parsed = parseInt(value);
if (!isNaN(parsed)) return parsed;
if (value.toLowerCase().indexOf("true") > -1) return true;
if (value.toLowerCase().indexOf("false") > -1) return false;
@@ -97,8 +96,8 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
@action
headingChanged = (value: string, shiftDown?: boolean) => {
this._createAliasSelected = false;
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
- let castedValue = this.getValue(value);
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const castedValue = this.getValue(value);
if (castedValue) {
if (this.props.parent.sectionHeaders) {
if (this.props.parent.sectionHeaders.map(i => i.heading).indexOf(castedValue.toString()) > -1) {
@@ -136,18 +135,18 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
@action
addDocument = (value: string, shiftDown?: boolean) => {
this._createAliasSelected = false;
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
- let newDoc = Docs.Create.TextDocument({ height: 18, width: 200, title: value });
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const newDoc = Docs.Create.TextDocument("", { _height: 18, _width: 200, title: value });
newDoc[key] = this.getValue(this.props.heading);
return this.props.parent.props.addDocument(newDoc);
}
deleteRow = undoBatch(action(() => {
this._createAliasSelected = false;
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
this.props.docList.forEach(d => d[key] = undefined);
if (this.props.parent.sectionHeaders && this.props.headingObject) {
- let index = this.props.parent.sectionHeaders.indexOf(this.props.headingObject);
+ const index = this.props.parent.sectionHeaders.indexOf(this.props.headingObject);
this.props.parent.sectionHeaders.splice(index, 1);
}
}));
@@ -163,19 +162,17 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
}
startDrag = (e: PointerEvent) => {
- let [dx, dy] = this.props.screenToLocalTransform().transformDirection(e.clientX - this._startDragPosition.x, e.clientY - this._startDragPosition.y);
+ const [dx, dy] = this.props.screenToLocalTransform().transformDirection(e.clientX - this._startDragPosition.x, e.clientY - this._startDragPosition.y);
if (Math.abs(dx) + Math.abs(dy) > this._sensitivity) {
- let alias = Doc.MakeAlias(this.props.parent.props.Document);
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const alias = Doc.MakeAlias(this.props.parent.props.Document);
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
let value = this.getValue(this._heading);
value = typeof value === "string" ? `"${value}"` : value;
- let script = `return doc.${key} === ${value}`;
- let compiled = CompileScript(script, { params: { doc: Doc.name } });
+ const script = `return doc.${key} === ${value}`;
+ const compiled = CompileScript(script, { params: { doc: Doc.name } });
if (compiled.compiled) {
- let scriptField = new ScriptField(compiled);
- alias.viewSpecScript = scriptField;
- let dragData = new DragManager.DocumentDragData([alias]);
- DragManager.StartDocumentDrag([this._headerRef.current!], dragData, e.clientX, e.clientY);
+ alias.viewSpecScript = new ScriptField(compiled);
+ DragManager.StartDocumentDrag([this._headerRef.current!], new DragManager.DocumentDragData([alias]), e.clientX, e.clientY);
}
e.stopPropagation();
@@ -197,7 +194,7 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
e.stopPropagation();
e.preventDefault();
- let [dx, dy] = this.props.screenToLocalTransform().transformDirection(e.clientX, e.clientY);
+ const [dx, dy] = this.props.screenToLocalTransform().transformDirection(e.clientX, e.clientY);
this._startDragPosition = { x: dx, y: dy };
if (this._createAliasSelected) {
@@ -210,17 +207,17 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
}
renderColorPicker = () => {
- let selected = this.props.headingObject ? this.props.headingObject.color : "#f1efeb";
+ const selected = this.props.headingObject ? this.props.headingObject.color : "#f1efeb";
- let pink = PastelSchemaPalette.get("pink2");
- let purple = PastelSchemaPalette.get("purple4");
- let blue = PastelSchemaPalette.get("bluegreen1");
- let yellow = PastelSchemaPalette.get("yellow4");
- let red = PastelSchemaPalette.get("red2");
- let green = PastelSchemaPalette.get("bluegreen7");
- let cyan = PastelSchemaPalette.get("bluegreen5");
- let orange = PastelSchemaPalette.get("orange1");
- let gray = "#f1efeb";
+ const pink = PastelSchemaPalette.get("pink2");
+ const purple = PastelSchemaPalette.get("purple4");
+ const blue = PastelSchemaPalette.get("bluegreen1");
+ const yellow = PastelSchemaPalette.get("yellow4");
+ const red = PastelSchemaPalette.get("red2");
+ const green = PastelSchemaPalette.get("bluegreen7");
+ const cyan = PastelSchemaPalette.get("bluegreen5");
+ const orange = PastelSchemaPalette.get("orange1");
+ const gray = "#f1efeb";
return (
<div className="collectionStackingView-colorPicker">
@@ -243,7 +240,7 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
toggleVisibility = action(() => this._collapsed = !this._collapsed);
renderMenu = () => {
- let selected = this._createAliasSelected;
+ const selected = this._createAliasSelected;
return (<div className="collectionStackingView-optionPicker">
<div className="optionOptions">
<div className={"optionPicker" + (selected === true ? " active" : "")} onClick={this.toggleAlias}>Create Alias</div>
@@ -258,47 +255,66 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
}
}
-
- render() {
- let rows = Math.max(1, Math.min(this.props.docList.length, Math.floor((this.props.parent.props.PanelWidth() - 2 * this.props.parent.xMargin) / (this.props.parent.columnWidth + this.props.parent.gridGap))));
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
- let heading = this._heading;
- let style = this.props.parent;
- let evContents = heading ? heading : this.props.type && this.props.type === "number" ? "0" : `NO ${key.toUpperCase()} VALUE`;
- let headerEditableViewProps = {
- GetValue: () => evContents,
- SetValue: this.headingChanged,
- contents: evContents,
- oneLine: true,
+ @computed get contentLayout() {
+ const rows = Math.max(1, Math.min(this.props.docList.length, Math.floor((this.props.parent.props.PanelWidth() - 2 * this.props.parent.xMargin) / (this.props.parent.columnWidth + this.props.parent.gridGap))));
+ const style = this.props.parent; const collapsed = this._collapsed;
+ const chromeStatus = this.props.parent.props.Document._chromeStatus;
+ const newEditableViewProps = {
+ GetValue: () => "",
+ SetValue: this.addDocument,
+ contents: "+ NEW",
HeadingObject: this.props.headingObject,
HeadingsHack: this._headingsHack,
toggle: this.toggleVisibility,
color: this._color
};
- let newEditableViewProps = {
- GetValue: () => "",
- SetValue: this.addDocument,
- contents: "+ NEW",
+ return collapsed ? (null) :
+ <div style={{ position: "relative" }}>
+ <div className={`collectionStackingView-masonryGrid`}
+ ref={this._contRef}
+ style={{
+ padding: `${this.props.parent.yMargin}px ${this.props.parent.xMargin}px`,
+ width: this.props.parent.NodeWidth,
+ gridGap: this.props.parent.gridGap,
+ gridTemplateColumns: numberRange(rows).reduce((list: string, i: any) => list + ` ${this.props.parent.columnWidth}px`, ""),
+ }}>
+ {this.props.parent.children(this.props.docList)}
+ {this.props.parent.columnDragger}
+ </div>
+ {(chromeStatus !== 'view-mode' && chromeStatus !== 'disabled') ?
+ <div className="collectionStackingView-addDocumentButton"
+ style={{ width: style.columnWidth / style.numGroupColumns }}>
+ <EditableView {...newEditableViewProps} />
+ </div> : null
+ }
+ </div>;
+ }
+
+ @computed get headingView() {
+ const heading = this._heading;
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const evContents = heading ? heading : this.props.type && this.props.type === "number" ? "0" : `NO ${key.toUpperCase()} VALUE`;
+ const headerEditableViewProps = {
+ GetValue: () => evContents,
+ SetValue: this.headingChanged,
+ contents: evContents,
+ oneLine: true,
HeadingObject: this.props.headingObject,
HeadingsHack: this._headingsHack,
toggle: this.toggleVisibility,
color: this._color
};
- let headingView = this.props.parent.props.Document.miniHeaders ?
- <div className="collectionStackingView-miniHeader" style={{ width: "100%" }}>
- {<EditableView {...headerEditableViewProps} />}
+ return this.props.parent.props.Document.miniHeaders ?
+ <div className="collectionStackingView-miniHeader">
+ <EditableView {...headerEditableViewProps} />
</div> :
- this.props.headingObject ?
+ !this.props.headingObject ? (null) :
<div className="collectionStackingView-sectionHeader" ref={this._headerRef} >
<div className="collectionStackingView-sectionHeader-subCont" onPointerDown={this.headerDown}
title={evContents === `NO ${key.toUpperCase()} VALUE` ?
`Documents that don't have a ${key} value will go here. This column cannot be removed.` : ""}
- style={{
- width: "100%",
- background: evContents !== `NO ${key.toUpperCase()} VALUE` ? this._color : "lightgrey",
- color: "grey"
- }}>
- {<EditableView {...headerEditableViewProps} />}
+ style={{ background: evContents !== `NO ${key.toUpperCase()} VALUE` ? this._color : "lightgrey", }}>
+ <EditableView {...headerEditableViewProps} />
{evContents === `NO ${key.toUpperCase()} VALUE` ? (null) :
<div className="collectionStackingView-sectionColor">
<Flyout anchorPoint={anchorPoints.CENTER_RIGHT} content={this.renderColorPicker()}>
@@ -321,47 +337,26 @@ export class CollectionMasonryViewFieldRow extends React.Component<CMVFieldRowPr
</div>
}
</div>
- </div > : (null);
+ </div>;
+ }
+ render() {
const background = this._background; //to account for observables in Measure
- const collapsed = this._collapsed;
- let chromeStatus = this.props.parent.props.Document.chromeStatus;
- return (
- <Measure offset onResize={this.handleResize}>
- {({ measureRef }) => {
- return <div ref={measureRef}>
- <div className="collectionStackingView-masonrySection"
- key={heading = "empty"}
- style={{ width: this.props.parent.NodeWidth, background }}
- ref={this.createRowDropRef}
- onPointerEnter={this.pointerEnteredRow}
- onPointerLeave={this.pointerLeaveRow}
- >
- {headingView}
- {collapsed ? (null) :
- < div style={{ position: "relative" }}>
- <div key={`${heading}-stack`} className={`collectionStackingView-masonryGrid`}
- ref={this._contRef}
- style={{
- padding: `${this.props.parent.yMargin}px ${this.props.parent.xMargin}px`,
- width: this.props.parent.NodeWidth,
- gridGap: this.props.parent.gridGap,
- gridTemplateColumns: numberRange(rows).reduce((list: string, i: any) => list + ` ${this.props.parent.columnWidth}px`, ""),
- }}>
- {this.props.parent.children(this.props.docList)}
- {this.props.parent.columnDragger}
- </div>
- {(chromeStatus !== 'view-mode' && chromeStatus !== 'disabled') ?
- <div key={`${heading}-add-document`} className="collectionStackingView-addDocumentButton"
- style={{ width: style.columnWidth / style.numGroupColumns }}>
- <EditableView {...newEditableViewProps} />
- </div> : null
- }
- </div>
- }
- </div >
- </div>;
- }}
- </Measure>
- );
+ const contentlayout = this.contentLayout;
+ const headingview = this.headingView;
+ return <Measure offset onResize={this.handleResize}>
+ {({ measureRef }) => {
+ return <div ref={measureRef}>
+ <div className="collectionStackingView-masonrySection"
+ style={{ width: this.props.parent.NodeWidth, background }}
+ ref={this.createRowDropRef}
+ onPointerEnter={this.pointerEnteredRow}
+ onPointerLeave={this.pointerLeaveRow}
+ >
+ {headingview}
+ {contentlayout}
+ </div >
+ </div>;
+ }}
+ </Measure>;
}
} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionPivotView.scss b/src/client/views/collections/CollectionPivotView.scss
new file mode 100644
index 000000000..505091e98
--- /dev/null
+++ b/src/client/views/collections/CollectionPivotView.scss
@@ -0,0 +1,88 @@
+.collectionPivotView {
+ display: flex;
+ flex-direction: row;
+ position: absolute;
+ height: 100%;
+ width: 100%;
+
+ .collectionPivotView-flyout {
+ width: 400px;
+ height: 300px;
+ display: inline-block;
+
+ .collectionPivotView-flyout-item {
+ background-color: lightgray;
+ text-align: left;
+ display: inline-block;
+ position: relative;
+ width: 100%;
+ }
+ }
+
+ .pivotKeyEntry {
+ position: absolute;
+ top: 5px;
+ right: 5px;
+ z-index: 10;
+ pointer-events: all;
+ padding: 5px;
+ border: 1px solid black;
+ }
+
+ .collectionPivotView-treeView {
+ display: flex;
+ flex-direction: column;
+ width: 200px;
+ height: 100%;
+
+ .collectionPivotView-addfacet {
+ display: inline-block;
+ width: 200px;
+ height: 30px;
+ background: darkGray;
+ text-align: center;
+
+ .collectionPivotView-button {
+ align-items: center;
+ display: flex;
+ width: 100%;
+ height: 100%;
+
+ .collectionPivotView-span {
+ margin: auto;
+ }
+ }
+
+ >div,
+ >div>div {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ }
+ }
+
+ .collectionPivotView-tree {
+ display: inline-block;
+ width: 100%;
+ height: calc(100% - 30px);
+ }
+ }
+
+ .collectionPivotView-pivot {
+ display: inline-block;
+ width: calc(100% - 200px);
+ height: 100%;
+ }
+
+ .collectionPivotView-dragger {
+ background-color: lightgray;
+ height: 40px;
+ width: 20px;
+ position: absolute;
+ border-radius: 10px;
+ top: 55%;
+ border: 1px black solid;
+ z-index: 2;
+ left: -10px;
+ }
+} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionPivotView.tsx b/src/client/views/collections/CollectionPivotView.tsx
new file mode 100644
index 000000000..440b6856b
--- /dev/null
+++ b/src/client/views/collections/CollectionPivotView.tsx
@@ -0,0 +1,148 @@
+import { faEdit } from "@fortawesome/free-solid-svg-icons";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { action, computed, IReactionDisposer, observable } from "mobx";
+import { observer } from "mobx-react";
+import { Set } from "typescript-collections";
+import { Doc, DocListCast } from "../../../new_fields/Doc";
+import { List } from "../../../new_fields/List";
+import { listSpec } from "../../../new_fields/Schema";
+import { ComputedField, ScriptField } from "../../../new_fields/ScriptField";
+import { Cast, StrCast } from "../../../new_fields/Types";
+import { Docs } from "../../documents/Documents";
+import { EditableView } from "../EditableView";
+import { anchorPoints, Flyout } from "../TemplateMenu";
+import { CollectionFreeFormView } from "./collectionFreeForm/CollectionFreeFormView";
+import "./CollectionPivotView.scss";
+import { CollectionSubView } from "./CollectionSubView";
+import { CollectionTreeView } from "./CollectionTreeView";
+import React = require("react");
+
+@observer
+export class CollectionPivotView extends CollectionSubView(doc => doc) {
+ componentDidMount() {
+ this.props.Document._freeformLayoutEngine = "pivot";
+ const childDetailed = this.props.Document.childDetailed; // bcz: needs to be here to make sure the childDetailed layout template has been loaded when the first item is clicked;
+ if (!this.props.Document._facetCollection) {
+ const facetCollection = Docs.Create.TreeDocument([], { title: "facetFilters", _yMargin: 0, treeViewHideTitle: true });
+ facetCollection.target = this.props.Document;
+ this.props.Document.excludeFields = new List<string>(["_facetCollection", "_docFilter"]);
+
+ const scriptText = "setDocFilter(containingTreeView.target, heading, this.title, checked)";
+ const childText = "const alias = getAlias(this); Doc.ApplyTemplateTo(containingCollection.childDetailed, alias, 'layout_detailed'); useRightSplit(alias); ";
+ facetCollection.onCheckedClick = ScriptField.MakeScript(scriptText, { this: Doc.name, heading: "boolean", checked: "boolean", containingTreeView: Doc.name });
+ this.props.Document.onChildClick = ScriptField.MakeScript(childText, { this: Doc.name, heading: "boolean", containingCollection: Doc.name });
+ this.props.Document._facetCollection = facetCollection;
+ this.props.Document._fitToBox = true;
+ }
+ }
+ bodyPanelWidth = () => this.props.PanelWidth() - this._facetWidth;
+ getTransform = () => this.props.ScreenToLocalTransform().translate(-200, 0);
+
+ @computed get _allFacets() {
+ const facets = new Set<string>();
+ this.childDocs.forEach(child => Object.keys(Doc.GetProto(child)).forEach(key => facets.add(key)));
+ return facets.toArray();
+ }
+
+ /**
+ * Responds to clicking the check box in the flyout menu
+ */
+ facetClick = (facetHeader: string) => {
+ const facetCollection = this.props.Document._facetCollection;
+ if (facetCollection instanceof Doc) {
+ const found = DocListCast(facetCollection.data).findIndex(doc => doc.title === facetHeader);
+ if (found !== -1) {
+ (facetCollection.data as List<Doc>).splice(found, 1);
+ const docFilter = Cast(this.props.Document._docFilter, listSpec("string"));
+ if (docFilter) {
+ let index: number;
+ while ((index = docFilter.findIndex(item => item === facetHeader)) !== -1) {
+ docFilter.splice(index, 3);
+ }
+ }
+ } else {
+ const newFacet = Docs.Create.TreeDocument([], { title: facetHeader, treeViewOpen: true, isFacetFilter: true });
+ const capturedVariables = { layoutDoc: this.props.Document, dataDoc: this.dataDoc };
+ const params = { layoutDoc: Doc.name, dataDoc: Doc.name, };
+ newFacet.data = ComputedField.MakeFunction(`readFacetData(layoutDoc, dataDoc, "${this.props.fieldKey}", "${facetHeader}")`, params, capturedVariables);
+ Doc.AddDocToList(facetCollection, "data", newFacet);
+ }
+ }
+ }
+ _canClick = false;
+ _facetWidthOnDown = 0;
+ @observable _facetWidth = 200;
+ onPointerDown = (e: React.PointerEvent) => {
+ this._canClick = true;
+ this._facetWidthOnDown = e.screenX;
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ document.addEventListener("pointermove", this.onPointerMove);
+ document.addEventListener("pointerup", this.onPointerUp);
+ e.stopPropagation();
+ e.preventDefault();
+ }
+
+
+ @action
+ onPointerMove = (e: PointerEvent) => {
+ this._facetWidth = Math.max(this.props.ScreenToLocalTransform().transformPoint(e.clientX, 0)[0], 0);
+ Math.abs(e.movementX) > 6 && (this._canClick = false);
+ }
+ @action
+ onPointerUp = (e: PointerEvent) => {
+ if (Math.abs(e.screenX - this._facetWidthOnDown) < 6 && this._canClick) {
+ this._facetWidth = this._facetWidth < 15 ? 200 : 0;
+ }
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ }
+
+ render() {
+ const facetCollection = Cast(this.props.Document?._facetCollection, Doc, null);
+ const flyout = (
+ <div className="collectionPivotView-flyout" style={{ width: `${this._facetWidth}` }}>
+ {this._allFacets.map(facet => <label className="collectionPivotView-flyout-item" key={`${facet}`} onClick={e => this.facetClick(facet)}>
+ <input type="checkbox" onChange={e => { }} checked={DocListCast((this.props.Document._facetCollection as Doc)?.data).some(d => d.title === facet)} />
+ <span className="checkmark" />
+ {facet}
+ </label>)}
+ </div>
+ );
+ return !facetCollection ? (null) :
+ <div className="collectionPivotView" style={{ height: `calc(100% - ${this.props.Document._chromeStatus === "enabled" ? 51 : 0}px)` }}>
+ <div className={"pivotKeyEntry"}>
+ <EditableView
+ contents={this.props.Document.pivotField}
+ GetValue={() => StrCast(this.props.Document.pivotField)}
+ SetValue={value => {
+ if (value && value.length) {
+ this.props.Document.pivotField = value;
+ return true;
+ }
+ return false;
+ }}
+ />
+ </div>
+ <div className="collectionPivotView-dragger" key="dragger" onPointerDown={this.onPointerDown} style={{ transform: `translate(${this._facetWidth}px, 0px)` }} >
+ <span title="library View Dragger" style={{ width: "5px", position: "absolute", top: "0" }} />
+ </div>
+ <div className="collectionPivotView-treeView" style={{ width: `${this._facetWidth}px`, overflow: this._facetWidth < 15 ? "hidden" : undefined }}>
+ <div className="collectionPivotView-addFacet" style={{ width: `${this._facetWidth}px` }} onPointerDown={e => e.stopPropagation()}>
+ <Flyout anchorPoint={anchorPoints.LEFT_TOP} content={flyout}>
+ <div className="collectionPivotView-button">
+ <span className="collectionPivotView-span">Facet Filters</span>
+ <FontAwesomeIcon icon={faEdit} size={"lg"} />
+ </div>
+ </Flyout>
+ </div>
+ <div className="collectionPivotView-tree" key="tree">
+ <CollectionTreeView {...this.props} Document={facetCollection} />
+ </div>
+ </div>
+ <div className="collectionPivotView-pivot" key="pivot" style={{ width: this.bodyPanelWidth() }}>
+ <CollectionFreeFormView {...this.props} ScreenToLocalTransform={this.getTransform} PanelWidth={this.bodyPanelWidth} />
+ </div>
+ </div>;
+ }
+} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionSchemaCells.tsx b/src/client/views/collections/CollectionSchemaCells.tsx
index 102dad31f..4eba5dc26 100644
--- a/src/client/views/collections/CollectionSchemaCells.tsx
+++ b/src/client/views/collections/CollectionSchemaCells.tsx
@@ -1,7 +1,7 @@
import React = require("react");
-import { action, computed, observable, trace, untracked, toJS } from "mobx";
+import { action, observable } from "mobx";
import { observer } from "mobx-react";
-import ReactTable, { CellInfo, ComponentPropsGetterR, ReactTableDefaults, Column } from "react-table";
+import { CellInfo } from "react-table";
import "react-table/react-table.css";
import { emptyFunction, returnFalse, returnZero, returnOne } from "../../../Utils";
import { Doc, DocListCast, DocListCastAsync, Field, Opt } from "../../../new_fields/Doc";
@@ -9,7 +9,7 @@ import { Id } from "../../../new_fields/FieldSymbols";
import { SetupDrag, DragManager } from "../../util/DragManager";
import { CompileScript } from "../../util/Scripting";
import { Transform } from "../../util/Transform";
-import { COLLECTION_BORDER_WIDTH, MAX_ROW_HEIGHT } from '../globalCssVariables.scss';
+import { MAX_ROW_HEIGHT } from '../globalCssVariables.scss';
import '../DocumentDecorations.scss';
import { EditableView } from "../EditableView";
import { FieldView, FieldViewProps } from "../nodes/FieldView";
@@ -38,7 +38,7 @@ export interface CellProps {
renderDepth: number;
addDocTab: (document: Doc, dataDoc: Doc | undefined, where: string) => boolean;
pinToPres: (document: Doc) => void;
- moveDocument: (document: Doc, targetCollection: Doc, addDocument: (document: Doc) => boolean) => boolean;
+ moveDocument: (document: Doc, targetCollection: Doc | undefined, addDocument: (document: Doc) => boolean) => boolean;
isFocused: boolean;
changeFocusedCellByIndex: (row: number, col: number) => void;
setIsEditing: (isEditing: boolean) => void;
@@ -100,8 +100,8 @@ export class CollectionSchemaCell extends React.Component<CellProps> {
// this._isEditing = true;
// this.props.setIsEditing(true);
- let field = this.props.rowProps.original[this.props.rowProps.column.id!];
- let doc = FieldValue(Cast(field, Doc));
+ const field = this.props.rowProps.original[this.props.rowProps.column.id!];
+ const doc = FieldValue(Cast(field, Doc));
if (typeof field === "object" && doc) this.props.setPreviewDoc(doc);
}
@@ -116,13 +116,13 @@ export class CollectionSchemaCell extends React.Component<CellProps> {
}
private drop = (e: Event, de: DragManager.DropEvent) => {
- if (de.data instanceof DragManager.DocumentDragData) {
- let fieldKey = this.props.rowProps.column.id as string;
- if (de.data.draggedDocuments.length === 1) {
- this._document[fieldKey] = de.data.draggedDocuments[0];
+ if (de.complete.docDragData) {
+ const fieldKey = this.props.rowProps.column.id as string;
+ if (de.complete.docDragData.draggedDocuments.length === 1) {
+ this._document[fieldKey] = de.complete.docDragData.draggedDocuments[0];
}
else {
- let coll = Docs.Create.SchemaDocument([new SchemaHeaderField("title", "#f1efeb")], de.data.draggedDocuments, {});
+ const coll = Docs.Create.SchemaDocument([new SchemaHeaderField("title", "#f1efeb")], de.complete.docDragData.draggedDocuments, {});
this._document[fieldKey] = coll;
}
e.stopPropagation();
@@ -132,7 +132,7 @@ export class CollectionSchemaCell extends React.Component<CellProps> {
private dropRef = (ele: HTMLElement | null) => {
this._dropDisposer && this._dropDisposer();
if (ele) {
- this._dropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.drop.bind(this) } });
+ this._dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this));
}
}
@@ -149,13 +149,13 @@ export class CollectionSchemaCell extends React.Component<CellProps> {
// }
renderCellWithType(type: string | undefined) {
- let dragRef: React.RefObject<HTMLDivElement> = React.createRef();
+ const dragRef: React.RefObject<HTMLDivElement> = React.createRef();
- let props: FieldViewProps = {
+ const props: FieldViewProps = {
Document: this.props.rowProps.original,
DataDoc: this.props.rowProps.original,
+ LibraryPath: [],
fieldKey: this.props.rowProps.column.id as string,
- ruleProvider: undefined,
ContainingCollectionView: this.props.CollectionView,
ContainingCollectionDoc: this.props.CollectionView && this.props.CollectionView.props.Document,
isSelected: returnFalse,
@@ -172,23 +172,22 @@ export class CollectionSchemaCell extends React.Component<CellProps> {
ContentScaling: returnOne
};
- let field = props.Document[props.fieldKey];
- let doc = FieldValue(Cast(field, Doc));
- let fieldIsDoc = (type === "document" && typeof field === "object") || (typeof field === "object" && doc);
+ const field = props.Document[props.fieldKey];
+ const doc = FieldValue(Cast(field, Doc));
+ const fieldIsDoc = (type === "document" && typeof field === "object") || (typeof field === "object" && doc);
- let onItemDown = (e: React.PointerEvent) => {
- if (fieldIsDoc) {
- SetupDrag(this._focusRef, () => this._document[props.fieldKey] instanceof Doc ? this._document[props.fieldKey] : this._document,
- this._document[props.fieldKey] instanceof Doc ? (doc: Doc, target: Doc, addDoc: (newDoc: Doc) => any) => addDoc(doc) : this.props.moveDocument,
- this._document[props.fieldKey] instanceof Doc ? "alias" : this.props.Document.schemaDoc ? "copy" : undefined)(e);
- }
+ const onItemDown = (e: React.PointerEvent) => {
+ fieldIsDoc && SetupDrag(this._focusRef,
+ () => this._document[props.fieldKey] instanceof Doc ? this._document[props.fieldKey] : this._document,
+ this._document[props.fieldKey] instanceof Doc ? (doc: Doc, target: Doc | undefined, addDoc: (newDoc: Doc) => any) => addDoc(doc) : this.props.moveDocument,
+ this._document[props.fieldKey] instanceof Doc ? "alias" : this.props.Document.schemaDoc ? "copy" : undefined)(e);
};
- let onPointerEnter = (e: React.PointerEvent): void => {
+ const onPointerEnter = (e: React.PointerEvent): void => {
if (e.buttons === 1 && SelectionManager.GetIsDragging() && (type === "document" || type === undefined)) {
dragRef.current!.className = "collectionSchemaView-cellContainer doc-drag-over";
}
};
- let onPointerLeave = (e: React.PointerEvent): void => {
+ const onPointerLeave = (e: React.PointerEvent): void => {
dragRef.current!.className = "collectionSchemaView-cellContainer";
};
@@ -198,7 +197,7 @@ export class CollectionSchemaCell extends React.Component<CellProps> {
if (type === "string") contents = typeof field === "string" ? (StrCast(field) === "" ? "--" : StrCast(field)) : "--" + typeof field + "--";
if (type === "boolean") contents = typeof field === "boolean" ? (BoolCast(field) ? "true" : "false") : "--" + typeof field + "--";
if (type === "document") {
- let doc = FieldValue(Cast(field, Doc));
+ const doc = FieldValue(Cast(field, Doc));
contents = typeof field === "object" ? doc ? StrCast(doc.title) === "" ? "--" : StrCast(doc.title) : `--${typeof field}--` : `--${typeof field}--`;
}
@@ -226,7 +225,7 @@ export class CollectionSchemaCell extends React.Component<CellProps> {
height={"auto"}
maxHeight={Number(MAX_ROW_HEIGHT)}
GetValue={() => {
- let field = props.Document[props.fieldKey];
+ const field = props.Document[props.fieldKey];
if (Field.IsField(field)) {
return Field.toScriptString(field);
}
@@ -237,14 +236,14 @@ export class CollectionSchemaCell extends React.Component<CellProps> {
if (value.startsWith(":=")) {
return this.props.setComputed(value.substring(2), props.Document, this.props.rowProps.column.id!, this.props.row, this.props.col);
}
- let script = CompileScript(value, { requiredType: type, addReturn: true, params: { this: Doc.name, $r: "number", $c: "number", $: "any" } });
+ const script = CompileScript(value, { requiredType: type, typecheck: false, editable: true, addReturn: true, params: { this: Doc.name, $r: "number", $c: "number", $: "any" } });
if (!script.compiled) {
return false;
}
return this.applyToDoc(props.Document, this.props.row, this.props.col, script.run);
}}
OnFillDown={async (value: string) => {
- const script = CompileScript(value, { requiredType: type, addReturn: true, params: { this: Doc.name, $r: "number", $c: "number", $: "any" } });
+ const script = CompileScript(value, { requiredType: type, typecheck: false, editable: true, addReturn: true, params: { this: Doc.name, $r: "number", $c: "number", $: "any" } });
if (script.compiled) {
DocListCast(this.props.Document[this.props.fieldKey]).
forEach((doc, i) => this.applyToDoc(doc, i, this.props.col, script.run));
@@ -298,15 +297,15 @@ export class CollectionSchemaCheckboxCell extends CollectionSchemaCell {
@action
toggleChecked = (e: React.ChangeEvent<HTMLInputElement>) => {
this._isChecked = e.target.checked;
- let script = CompileScript(e.target.checked.toString(), { requiredType: "boolean", addReturn: true, params: { this: Doc.name } });
+ const script = CompileScript(e.target.checked.toString(), { requiredType: "boolean", addReturn: true, params: { this: Doc.name } });
if (script.compiled) {
this.applyToDoc(this._document, this.props.row, this.props.col, script.run);
}
}
render() {
- let reference = React.createRef<HTMLDivElement>();
- let onItemDown = (e: React.PointerEvent) => {
+ const reference = React.createRef<HTMLDivElement>();
+ const onItemDown = (e: React.PointerEvent) => {
(!this.props.CollectionView || !this.props.CollectionView.props.isSelected() ? undefined :
SetupDrag(reference, () => this._document, this.props.moveDocument, this.props.Document.schemaDoc ? "copy" : undefined)(e));
};
diff --git a/src/client/views/collections/CollectionSchemaHeaders.tsx b/src/client/views/collections/CollectionSchemaHeaders.tsx
index d24f63fbb..92dc8780e 100644
--- a/src/client/views/collections/CollectionSchemaHeaders.tsx
+++ b/src/client/views/collections/CollectionSchemaHeaders.tsx
@@ -1,5 +1,5 @@
import React = require("react");
-import { action, computed, observable, trace, untracked } from "mobx";
+import { action, observable } from "mobx";
import { observer } from "mobx-react";
import "./CollectionSchemaView.scss";
import { faPlus, faFont, faHashtag, faAlignJustify, faCheckSquare, faToggleOn, faSortAmountDown, faSortAmountUp, faTimes } from '@fortawesome/free-solid-svg-icons';
@@ -7,10 +7,8 @@ import { library, IconProp } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { Flyout, anchorPoints } from "../DocumentDecorations";
import { ColumnType } from "./CollectionSchemaView";
-import { emptyFunction } from "../../../Utils";
-import { contains } from "typescript-collections/dist/lib/arrays";
import { faFile } from "@fortawesome/free-regular-svg-icons";
-import { SchemaHeaderField, RandomPastel, PastelSchemaPalette } from "../../../new_fields/SchemaHeaderField";
+import { SchemaHeaderField, PastelSchemaPalette } from "../../../new_fields/SchemaHeaderField";
import { undoBatch } from "../../util/UndoManager";
library.add(faPlus, faFont, faHashtag, faAlignJustify, faCheckSquare, faToggleOn, faFile as any, faSortAmountDown, faSortAmountUp, faTimes);
@@ -32,7 +30,7 @@ export interface HeaderProps {
export class CollectionSchemaHeader extends React.Component<HeaderProps> {
render() {
- let icon: IconProp = this.props.keyType === ColumnType.Number ? "hashtag" : this.props.keyType === ColumnType.String ? "font" :
+ const icon: IconProp = this.props.keyType === ColumnType.Number ? "hashtag" : this.props.keyType === ColumnType.String ? "font" :
this.props.keyType === ColumnType.Boolean ? "check-square" : this.props.keyType === ColumnType.Doc ? "file" : "align-justify";
return (
<div className="collectionSchemaView-header" style={{ background: this.props.keyValue.color }}>
@@ -139,7 +137,7 @@ export class CollectionSchemaColumnMenu extends React.Component<ColumnMenuProps>
renderTypes = () => {
if (this.props.typeConst) return <></>;
- let type = this.props.columnField.type;
+ const type = this.props.columnField.type;
return (
<div className="collectionSchema-headerMenu-group">
<label>Column type:</label>
@@ -170,7 +168,7 @@ export class CollectionSchemaColumnMenu extends React.Component<ColumnMenuProps>
}
renderSorting = () => {
- let sort = this.props.columnField.desc;
+ const sort = this.props.columnField.desc;
return (
<div className="collectionSchema-headerMenu-group">
<label>Sort by:</label>
@@ -193,14 +191,14 @@ export class CollectionSchemaColumnMenu extends React.Component<ColumnMenuProps>
}
renderColors = () => {
- let selected = this.props.columnField.color;
+ const selected = this.props.columnField.color;
- let pink = PastelSchemaPalette.get("pink2");
- let purple = PastelSchemaPalette.get("purple2");
- let blue = PastelSchemaPalette.get("bluegreen1");
- let yellow = PastelSchemaPalette.get("yellow4");
- let red = PastelSchemaPalette.get("red2");
- let gray = "#f1efeb";
+ const pink = PastelSchemaPalette.get("pink2");
+ const purple = PastelSchemaPalette.get("purple2");
+ const blue = PastelSchemaPalette.get("bluegreen1");
+ const yellow = PastelSchemaPalette.get("yellow4");
+ const red = PastelSchemaPalette.get("red2");
+ const gray = "#f1efeb";
return (
<div className="collectionSchema-headerMenu-group">
@@ -288,17 +286,16 @@ class KeysDropdown extends React.Component<KeysDropdownProps> {
}
@undoBatch
- @action
onKeyDown = (e: React.KeyboardEvent): void => {
if (e.key === "Enter") {
- let keyOptions = this._searchTerm === "" ? this.props.possibleKeys : this.props.possibleKeys.filter(key => key.toUpperCase().indexOf(this._searchTerm.toUpperCase()) > -1);
- let exactFound = keyOptions.findIndex(key => key.toUpperCase() === this._searchTerm.toUpperCase()) > -1 ||
+ const keyOptions = this._searchTerm === "" ? this.props.possibleKeys : this.props.possibleKeys.filter(key => key.toUpperCase().indexOf(this._searchTerm.toUpperCase()) > -1);
+ const exactFound = keyOptions.findIndex(key => key.toUpperCase() === this._searchTerm.toUpperCase()) > -1 ||
this.props.existingKeys.findIndex(key => key.toUpperCase() === this._searchTerm.toUpperCase()) > -1;
if (!exactFound && this._searchTerm !== "" && this.props.canAddNew) {
this.onSelect(this._searchTerm);
} else {
- this._searchTerm = this._key;
+ this.setSearchTerm(this._key);
}
}
}
@@ -334,11 +331,11 @@ class KeysDropdown extends React.Component<KeysDropdownProps> {
renderOptions = (): JSX.Element[] | JSX.Element => {
if (!this._isOpen) return <></>;
- let keyOptions = this._searchTerm === "" ? this.props.possibleKeys : this.props.possibleKeys.filter(key => key.toUpperCase().indexOf(this._searchTerm.toUpperCase()) > -1);
- let exactFound = keyOptions.findIndex(key => key.toUpperCase() === this._searchTerm.toUpperCase()) > -1 ||
+ const keyOptions = this._searchTerm === "" ? this.props.possibleKeys : this.props.possibleKeys.filter(key => key.toUpperCase().indexOf(this._searchTerm.toUpperCase()) > -1);
+ const exactFound = keyOptions.findIndex(key => key.toUpperCase() === this._searchTerm.toUpperCase()) > -1 ||
this.props.existingKeys.findIndex(key => key.toUpperCase() === this._searchTerm.toUpperCase()) > -1;
- let options = keyOptions.map(key => {
+ const options = keyOptions.map(key => {
return <div key={key} className="key-option" onClick={() => { this.onSelect(key); this.setSearchTerm(""); }}>{key}</div>;
});
diff --git a/src/client/views/collections/CollectionSchemaMovableTableHOC.tsx b/src/client/views/collections/CollectionSchemaMovableTableHOC.tsx
index 274c8b6d1..153bbd410 100644
--- a/src/client/views/collections/CollectionSchemaMovableTableHOC.tsx
+++ b/src/client/views/collections/CollectionSchemaMovableTableHOC.tsx
@@ -1,18 +1,18 @@
import React = require("react");
-import { ReactTableDefaults, TableCellRenderer, ComponentPropsGetterR, ComponentPropsGetter0, RowInfo } from "react-table";
+import { ReactTableDefaults, TableCellRenderer, RowInfo } from "react-table";
import "./CollectionSchemaView.scss";
import { Transform } from "../../util/Transform";
import { Doc } from "../../../new_fields/Doc";
import { DragManager, SetupDrag } from "../../util/DragManager";
import { SelectionManager } from "../../util/SelectionManager";
-import { Cast, FieldValue, StrCast } from "../../../new_fields/Types";
+import { Cast, FieldValue } from "../../../new_fields/Types";
import { ContextMenu } from "../ContextMenu";
import { action } from "mobx";
import { library } from '@fortawesome/fontawesome-svg-core';
import { faGripVertical, faTrash } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { DocumentManager } from "../../util/DocumentManager";
-import { PastelSchemaPalette, SchemaHeaderField } from "../../../new_fields/SchemaHeaderField";
+import { SchemaHeaderField } from "../../../new_fields/SchemaHeaderField";
import { undoBatch } from "../../util/UndoManager";
library.add(faGripVertical, faTrash);
@@ -43,10 +43,10 @@ export class MovableColumn extends React.Component<MovableColumnProps> {
document.removeEventListener("pointermove", this.onPointerMove);
}
onDragMove = (e: PointerEvent): void => {
- let x = this.props.ScreenToLocalTransform().transformPoint(e.clientX, e.clientY);
- let rect = this._header!.current!.getBoundingClientRect();
- let bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left + ((rect.right - rect.left) / 2), rect.top);
- let before = x[0] < bounds[0];
+ const x = this.props.ScreenToLocalTransform().transformPoint(e.clientX, e.clientY);
+ const rect = this._header!.current!.getBoundingClientRect();
+ const bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left + ((rect.right - rect.left) / 2), rect.top);
+ const before = x[0] < bounds[0];
this._header!.current!.className = "collectionSchema-col-wrapper";
if (before) this._header!.current!.className += " col-before";
if (!before) this._header!.current!.className += " col-after";
@@ -56,39 +56,39 @@ export class MovableColumn extends React.Component<MovableColumnProps> {
createColDropTarget = (ele: HTMLDivElement) => {
this._colDropDisposer && this._colDropDisposer();
if (ele) {
- this._colDropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.colDrop.bind(this) } });
+ this._colDropDisposer = DragManager.MakeDropTarget(ele, this.colDrop.bind(this));
}
}
colDrop = (e: Event, de: DragManager.DropEvent) => {
document.removeEventListener("pointermove", this.onDragMove, true);
- let x = this.props.ScreenToLocalTransform().transformPoint(de.x, de.y);
- let rect = this._header!.current!.getBoundingClientRect();
- let bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left + ((rect.right - rect.left) / 2), rect.top);
- let before = x[0] < bounds[0];
- if (de.data instanceof DragManager.ColumnDragData) {
- this.props.reorderColumns(de.data.colKey, this.props.columnValue, before, this.props.allColumns);
+ const x = this.props.ScreenToLocalTransform().transformPoint(de.x, de.y);
+ const rect = this._header!.current!.getBoundingClientRect();
+ const bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left + ((rect.right - rect.left) / 2), rect.top);
+ const before = x[0] < bounds[0];
+ if (de.complete.columnDragData) {
+ this.props.reorderColumns(de.complete.columnDragData.colKey, this.props.columnValue, before, this.props.allColumns);
return true;
}
return false;
}
onPointerMove = (e: PointerEvent) => {
- let onRowMove = (e: PointerEvent) => {
+ const onRowMove = (e: PointerEvent) => {
e.stopPropagation();
e.preventDefault();
document.removeEventListener("pointermove", onRowMove);
document.removeEventListener('pointerup', onRowUp);
- let dragData = new DragManager.ColumnDragData(this.props.columnValue);
+ const dragData = new DragManager.ColumnDragData(this.props.columnValue);
DragManager.StartColumnDrag(this._dragRef.current!, dragData, e.x, e.y);
};
- let onRowUp = (): void => {
+ const onRowUp = (): void => {
document.removeEventListener("pointermove", onRowMove);
document.removeEventListener('pointerup', onRowUp);
};
if (e.buttons === 1) {
- let [dx, dy] = this.props.ScreenToLocalTransform().transformDirection(e.clientX - this._startDragPosition.x, e.clientY - this._startDragPosition.y);
+ const [dx, dy] = this.props.ScreenToLocalTransform().transformDirection(e.clientX - this._startDragPosition.x, e.clientY - this._startDragPosition.y);
if (Math.abs(dx) + Math.abs(dy) > this._sensitivity) {
document.removeEventListener("pointermove", this.onPointerMove);
e.stopPropagation();
@@ -106,14 +106,14 @@ export class MovableColumn extends React.Component<MovableColumnProps> {
@action
onPointerDown = (e: React.PointerEvent, ref: React.RefObject<HTMLDivElement>) => {
this._dragRef = ref;
- let [dx, dy] = this.props.ScreenToLocalTransform().transformDirection(e.clientX, e.clientY);
+ const [dx, dy] = this.props.ScreenToLocalTransform().transformDirection(e.clientX, e.clientY);
this._startDragPosition = { x: dx, y: dy };
document.addEventListener("pointermove", this.onPointerMove);
}
render() {
- let reference = React.createRef<HTMLDivElement>();
+ const reference = React.createRef<HTMLDivElement>();
return (
<div className="collectionSchema-col" ref={this.createColDropTarget}>
@@ -152,10 +152,10 @@ export class MovableRow extends React.Component<MovableRowProps> {
document.removeEventListener("pointermove", this.onDragMove, true);
}
onDragMove = (e: PointerEvent): void => {
- let x = this.props.ScreenToLocalTransform().transformPoint(e.clientX, e.clientY);
- let rect = this._header!.current!.getBoundingClientRect();
- let bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left, rect.top + rect.height / 2);
- let before = x[1] < bounds[1];
+ const x = this.props.ScreenToLocalTransform().transformPoint(e.clientX, e.clientY);
+ const rect = this._header!.current!.getBoundingClientRect();
+ const bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left, rect.top + rect.height / 2);
+ const before = x[1] < bounds[1];
this._header!.current!.className = "collectionSchema-row-wrapper";
if (before) this._header!.current!.className += " row-above";
if (!before) this._header!.current!.className += " row-below";
@@ -165,7 +165,7 @@ export class MovableRow extends React.Component<MovableRowProps> {
createRowDropTarget = (ele: HTMLDivElement) => {
this._rowDropDisposer && this._rowDropDisposer();
if (ele) {
- this._rowDropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.rowDrop.bind(this) } });
+ this._rowDropDisposer = DragManager.MakeDropTarget(ele, this.rowDrop.bind(this));
}
}
@@ -173,38 +173,39 @@ export class MovableRow extends React.Component<MovableRowProps> {
const rowDoc = FieldValue(Cast(this.props.rowInfo.original, Doc));
if (!rowDoc) return false;
- let x = this.props.ScreenToLocalTransform().transformPoint(de.x, de.y);
- let rect = this._header!.current!.getBoundingClientRect();
- let bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left, rect.top + rect.height / 2);
- let before = x[1] < bounds[1];
+ const x = this.props.ScreenToLocalTransform().transformPoint(de.x, de.y);
+ const rect = this._header!.current!.getBoundingClientRect();
+ const bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left, rect.top + rect.height / 2);
+ const before = x[1] < bounds[1];
- if (de.data instanceof DragManager.DocumentDragData) {
+ const docDragData = de.complete.docDragData;
+ if (docDragData) {
e.stopPropagation();
- if (de.data.draggedDocuments[0] === rowDoc) return true;
- let addDocument = (doc: Doc) => this.props.addDoc(doc, rowDoc, before);
- let movedDocs = de.data.draggedDocuments;
- return (de.data.dropAction || de.data.userDropAction) ?
- de.data.droppedDocuments.reduce((added: boolean, d) => this.props.addDoc(d, rowDoc, before) || added, false)
- : (de.data.moveDocument) ?
- movedDocs.reduce((added: boolean, d) => de.data.moveDocument(d, rowDoc, addDocument) || added, false)
- : de.data.droppedDocuments.reduce((added: boolean, d) => this.props.addDoc(d, rowDoc, before), false);
+ if (docDragData.draggedDocuments[0] === rowDoc) return true;
+ const addDocument = (doc: Doc) => this.props.addDoc(doc, rowDoc, before);
+ const movedDocs = docDragData.draggedDocuments;
+ return (docDragData.dropAction || docDragData.userDropAction) ?
+ docDragData.droppedDocuments.reduce((added: boolean, d) => this.props.addDoc(d, rowDoc, before) || added, false)
+ : (docDragData.moveDocument) ?
+ movedDocs.reduce((added: boolean, d) => docDragData.moveDocument?.(d, rowDoc, addDocument) || added, false)
+ : docDragData.droppedDocuments.reduce((added: boolean, d) => this.props.addDoc(d, rowDoc, before), false);
}
return false;
}
onRowContextMenu = (e: React.MouseEvent): void => {
- let description = this.props.rowWrapped ? "Unwrap text on row" : "Text wrap row";
+ const description = this.props.rowWrapped ? "Unwrap text on row" : "Text wrap row";
ContextMenu.Instance.addItem({ description: description, event: () => this.props.textWrapRow(this.props.rowInfo.original), icon: "file-pdf" });
}
@undoBatch
@action
- move: DragManager.MoveFunction = (doc: Doc, target: Doc, addDoc) => {
- let targetView = DocumentManager.Instance.getDocumentView(target);
+ move: DragManager.MoveFunction = (doc: Doc, targetCollection: Doc | undefined, addDoc) => {
+ const targetView = targetCollection && DocumentManager.Instance.getDocumentView(targetCollection);
if (targetView && targetView.props.ContainingCollectionDoc) {
- return doc !== target && doc !== targetView.props.ContainingCollectionDoc && this.props.removeDoc(doc) && addDoc(doc);
+ return doc !== targetCollection && doc !== targetView.props.ContainingCollectionDoc && this.props.removeDoc(doc) && addDoc(doc);
}
- return doc !== target && this.props.removeDoc(doc) && addDoc(doc);
+ return doc !== targetCollection && this.props.removeDoc(doc) && addDoc(doc);
}
render() {
@@ -217,8 +218,8 @@ export class MovableRow extends React.Component<MovableRowProps> {
const doc = FieldValue(Cast(original, Doc));
if (!doc) return <></>;
- let reference = React.createRef<HTMLDivElement>();
- let onItemDown = SetupDrag(reference, () => doc, this.move);
+ const reference = React.createRef<HTMLDivElement>();
+ const onItemDown = SetupDrag(reference, () => doc, this.move);
let className = "collectionSchema-row";
if (this.props.rowFocused) className += " row-focused";
diff --git a/src/client/views/collections/CollectionSchemaView.scss b/src/client/views/collections/CollectionSchemaView.scss
index cb95dcbbc..8b3d332af 100644
--- a/src/client/views/collections/CollectionSchemaView.scss
+++ b/src/client/views/collections/CollectionSchemaView.scss
@@ -15,6 +15,11 @@
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
+ touch-action: none;
+
+ div {
+ touch-action: none;
+ }
.collectionSchemaView-tableContainer {
@@ -49,7 +54,7 @@
.rt-table {
height: 100%;
display: -webkit-inline-box;
- direction: ltr;
+ direction: ltr;
overflow: visible;
}
@@ -202,7 +207,7 @@ button.add-column {
border-bottom: 1px solid lightgray;
&:first-child {
- padding-top : 0;
+ padding-top: 0;
}
&:last-child {
@@ -231,7 +236,7 @@ button.add-column {
transition: background-color 0.2s;
&:hover {
- background-color: $light-color-secondary;
+ background-color: $light-color-secondary;
}
&.active {
@@ -267,7 +272,7 @@ button.add-column {
overflow-y: scroll;
position: absolute;
top: 28px;
- box-shadow: 0 10px 16px rgba(0,0,0,0.1);
+ box-shadow: 0 10px 16px rgba(0, 0, 0, 0.1);
.key-option {
background-color: $light-color;
@@ -380,6 +385,7 @@ button.add-column {
&.editing {
padding: 0;
+
input {
outline: 0;
border: none;
diff --git a/src/client/views/collections/CollectionSchemaView.tsx b/src/client/views/collections/CollectionSchemaView.tsx
index ebd47fd19..fa8be5177 100644
--- a/src/client/views/collections/CollectionSchemaView.tsx
+++ b/src/client/views/collections/CollectionSchemaView.tsx
@@ -94,11 +94,11 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
}
@action
onDividerMove = (e: PointerEvent): void => {
- let nativeWidth = this._mainCont!.getBoundingClientRect();
- let minWidth = 40;
- let maxWidth = 1000;
- let movedWidth = this.props.ScreenToLocalTransform().transformDirection(nativeWidth.right - e.clientX, 0)[0];
- let width = movedWidth < minWidth ? minWidth : movedWidth > maxWidth ? maxWidth : movedWidth;
+ const nativeWidth = this._mainCont!.getBoundingClientRect();
+ const minWidth = 40;
+ const maxWidth = 1000;
+ const movedWidth = this.props.ScreenToLocalTransform().transformDirection(nativeWidth.right - e.clientX, 0)[0];
+ const width = movedWidth < minWidth ? minWidth : movedWidth > maxWidth ? maxWidth : movedWidth;
this.props.Document.schemaPreviewWidth = width;
}
@action
@@ -112,7 +112,7 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
onPointerDown = (e: React.PointerEvent): void => {
if (e.button === 0 && !e.altKey && !e.ctrlKey && !e.metaKey) {
- if (this.props.isSelected()) e.stopPropagation();
+ if (this.props.isSelected(true)) e.stopPropagation();
else {
this.props.select(false);
}
@@ -136,14 +136,14 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
@computed
get previewPanel() {
- let layoutDoc = this.previewDocument ? Doc.expandTemplateLayout(this.previewDocument, this.props.DataDoc) : undefined;
+ const layoutDoc = this.previewDocument ? Doc.expandTemplateLayout(this.previewDocument, this.props.DataDoc) : undefined;
return <div ref={this.createTarget}>
<ContentFittingDocumentView
Document={layoutDoc}
DataDocument={this.previewDocument !== this.props.DataDoc ? this.props.DataDoc : undefined}
+ LibraryPath={this.props.LibraryPath}
childDocs={this.childDocs}
renderDepth={this.props.renderDepth}
- ruleProvider={this.props.Document.isRuleProvider && layoutDoc && layoutDoc.type !== DocumentType.TEXT ? this.props.Document : this.props.ruleProvider}
PanelWidth={this.previewWidth}
PanelHeight={this.previewHeight}
getTransform={this.getPreviewTransform}
@@ -156,8 +156,6 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
whenActiveChanged={this.props.whenActiveChanged}
addDocTab={this.props.addDocTab}
pinToPres={this.props.pinToPres}
- setPreviewScript={this.setPreviewScript}
- previewScript={this.previewScript}
/>
</div>;
}
@@ -201,7 +199,7 @@ export class CollectionSchemaView extends CollectionSubView(doc => doc) {
render() {
return <div className="collectionSchemaView-container">
- <div className="collectionSchemaView-tableContainer" onPointerDown={this.onPointerDown} onWheel={e => this.props.active() && e.stopPropagation()} onDrop={e => this.onDrop(e, {})} ref={this.createTarget}>
+ <div className="collectionSchemaView-tableContainer" onPointerDown={this.onPointerDown} onWheel={e => this.props.active(true) && e.stopPropagation()} onDrop={e => this.onDrop(e, {})} ref={this.createTarget}>
{this.schemaTable}
</div>
{this.dividerDragger}
@@ -223,13 +221,13 @@ export interface SchemaTableProps {
renderDepth: number;
deleteDocument: (document: Doc) => boolean;
addDocument: (document: Doc) => boolean;
- moveDocument: (document: Doc, targetCollection: Doc, addDocument: (document: Doc) => boolean) => boolean;
+ moveDocument: (document: Doc, targetCollection: Doc | undefined, addDocument: (document: Doc) => boolean) => boolean;
ScreenToLocalTransform: () => Transform;
- active: () => boolean;
+ active: (outsideReaction: boolean) => boolean;
onDrop: (e: React.DragEvent<Element>, options: DocumentOptions, completed?: (() => void) | undefined) => void;
addDocTab: (document: Doc, dataDoc: Doc | undefined, where: string) => boolean;
pinToPres: (document: Doc) => void;
- isSelected: () => boolean;
+ isSelected: (outsideReaction?: boolean) => boolean;
isFocused: (document: Doc) => boolean;
setFocused: (document: Doc) => void;
setPreviewDoc: (document: Doc) => void;
@@ -258,11 +256,11 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@computed get childDocs() {
if (this.props.childDocs) return this.props.childDocs;
- let doc = this.props.dataDoc ? this.props.dataDoc : this.props.Document;
+ const doc = this.props.dataDoc ? this.props.dataDoc : this.props.Document;
return DocListCast(doc[this.props.fieldKey]);
}
set childDocs(docs: Doc[]) {
- let doc = this.props.dataDoc ? this.props.dataDoc : this.props.Document;
+ const doc = this.props.dataDoc ? this.props.dataDoc : this.props.Document;
doc[this.props.fieldKey] = new List<Doc>(docs);
}
@@ -288,12 +286,12 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@computed get borderWidth() { return Number(COLLECTION_BORDER_WIDTH); }
@computed get tableColumns(): Column<Doc>[] {
- let possibleKeys = this.documentKeys.filter(key => this.columns.findIndex(existingKey => existingKey.heading.toUpperCase() === key.toUpperCase()) === -1);
- let columns: Column<Doc>[] = [];
- let tableIsFocused = this.props.isFocused(this.props.Document);
- let focusedRow = this._focusedCell.row;
- let focusedCol = this._focusedCell.col;
- let isEditable = !this._headerIsEditing;
+ const possibleKeys = this.documentKeys.filter(key => this.columns.findIndex(existingKey => existingKey.heading.toUpperCase() === key.toUpperCase()) === -1);
+ const columns: Column<Doc>[] = [];
+ const tableIsFocused = this.props.isFocused(this.props.Document);
+ const focusedRow = this._focusedCell.row;
+ const focusedCol = this._focusedCell.col;
+ const isEditable = !this._headerIsEditing;
if (this.childDocs.reduce((found, doc) => found || doc.type === "collection", false)) {
columns.push(
@@ -313,8 +311,8 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
);
}
- let cols = this.columns.map(col => {
- let header = <CollectionSchemaHeader
+ const cols = this.columns.map(col => {
+ const header = <CollectionSchemaHeader
keyValue={col}
possibleKeys={possibleKeys}
existingKeys={this.columns.map(c => c.heading)}
@@ -333,11 +331,11 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
accessor: (doc: Doc) => doc ? doc[col.heading] : 0,
id: col.heading,
Cell: (rowProps: CellInfo) => {
- let rowIndex = rowProps.index;
- let columnIndex = this.columns.map(c => c.heading).indexOf(rowProps.column.id!);
- let isFocused = focusedRow === rowIndex && focusedCol === columnIndex && tableIsFocused;
+ const rowIndex = rowProps.index;
+ const columnIndex = this.columns.map(c => c.heading).indexOf(rowProps.column.id!);
+ const isFocused = focusedRow === rowIndex && focusedCol === columnIndex && tableIsFocused;
- let props: CellProps = {
+ const props: CellProps = {
row: rowIndex,
col: columnIndex,
rowProps: rowProps,
@@ -358,7 +356,7 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
getField: this.getField,
};
- let colType = this.getColumnType(col);
+ const colType = this.getColumnType(col);
if (colType === ColumnType.Number) return <CollectionSchemaNumberCell {...props} />;
if (colType === ColumnType.String) return <CollectionSchemaStringCell {...props} />;
if (colType === ColumnType.Boolean) return <CollectionSchemaCheckboxCell {...props} />;
@@ -384,9 +382,9 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
constructor(props: SchemaTableProps) {
super(props);
// convert old schema columns (list of strings) into new schema columns (list of schema header fields)
- let oldSchemaColumns = Cast(this.props.Document.schemaColumns, listSpec("string"), []);
+ const oldSchemaColumns = Cast(this.props.Document.schemaColumns, listSpec("string"), []);
if (oldSchemaColumns && oldSchemaColumns.length && typeof oldSchemaColumns[0] !== "object") {
- let newSchemaColumns = oldSchemaColumns.map(i => typeof i === "string" ? new SchemaHeaderField(i, "#f1efeb") : i);
+ const newSchemaColumns = oldSchemaColumns.map(i => typeof i === "string" ? new SchemaHeaderField(i, "#f1efeb") : i);
this.props.Document.schemaColumns = new List<SchemaHeaderField>(newSchemaColumns);
}
}
@@ -418,10 +416,10 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
private getTdProps: ComponentPropsGetterR = (state, rowInfo, column, instance) => {
if (!rowInfo || column) return {};
- let row = rowInfo.index;
+ const row = rowInfo.index;
//@ts-ignore
- let col = this.columns.map(c => c.heading).indexOf(column!.id);
- let isFocused = this._focusedCell.row === row && this._focusedCell.col === col && this.props.isFocused(this.props.Document);
+ const col = this.columns.map(c => c.heading).indexOf(column!.id);
+ const isFocused = this._focusedCell.row === row && this._focusedCell.col === col && this.props.isFocused(this.props.Document);
// TODO: editing border doesn't work :(
return {
style: {
@@ -432,7 +430,7 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@action
onCloseCollection = (collection: Doc): void => {
- let index = this._openCollections.findIndex(col => col === collection[Id]);
+ const index = this._openCollections.findIndex(col => col === collection[Id]);
if (index > -1) this._openCollections.splice(index, 1);
}
@@ -442,15 +440,15 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
onPointerDown = (e: React.PointerEvent): void => {
this.props.setFocused(this.props.Document);
- if (e.button === 0 && !e.altKey && !e.ctrlKey && !e.metaKey && this.props.isSelected()) {
+ if (e.button === 0 && !e.altKey && !e.ctrlKey && !e.metaKey && this.props.isSelected(true)) {
e.stopPropagation();
}
}
@action
onKeyDown = (e: KeyboardEvent): void => {
- if (!this._cellIsEditing && !this._headerIsEditing && this.props.isFocused(this.props.Document)) {// && this.props.isSelected()) {
- let direction = e.key === "Tab" ? "tab" : e.which === 39 ? "right" : e.which === 37 ? "left" : e.which === 38 ? "up" : e.which === 40 ? "down" : "";
+ if (!this._cellIsEditing && !this._headerIsEditing && this.props.isFocused(this.props.Document)) {// && this.props.isSelected(true)) {
+ const direction = e.key === "Tab" ? "tab" : e.which === 39 ? "right" : e.which === 37 ? "left" : e.which === 38 ? "up" : e.which === 40 ? "down" : "";
this._focusedCell = this.changeFocusedCellByDirection(direction, this._focusedCell.row, this._focusedCell.col);
const pdoc = FieldValue(this.childDocs[this._focusedCell.row]);
@@ -479,7 +477,7 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@undoBatch
createRow = () => {
- let newDoc = Docs.Create.TextDocument({ title: "", width: 100, height: 30 });
+ const newDoc = Docs.Create.TextDocument("", { title: "", _width: 100, _height: 30 });
this.props.addDocument(newDoc);
}
@@ -498,7 +496,7 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@undoBatch
@action
deleteColumn = (key: string) => {
- let columns = this.columns;
+ const columns = this.columns;
if (columns === undefined) {
this.columns = new List<SchemaHeaderField>([]);
} else {
@@ -513,7 +511,7 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@undoBatch
@action
changeColumns = (oldKey: string, newKey: string, addNew: boolean) => {
- let columns = this.columns;
+ const columns = this.columns;
if (columns === undefined) {
this.columns = new List<SchemaHeaderField>([new SchemaHeaderField(newKey, "f1efeb")]);
} else {
@@ -523,7 +521,7 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
} else {
const index = columns.map(c => c.heading).indexOf(oldKey);
if (index > -1) {
- let column = columns[index];
+ const column = columns[index];
column.setHeading(newKey);
columns[index] = column;
this.columns = columns;
@@ -554,8 +552,8 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
setColumnType = (columnField: SchemaHeaderField, type: ColumnType): void => {
if (columnTypes.get(columnField.heading)) return;
- let columns = this.columns;
- let index = columns.indexOf(columnField);
+ const columns = this.columns;
+ const index = columns.indexOf(columnField);
if (index > -1) {
columnField.setType(NumCast(type));
columns[index] = columnField;
@@ -575,8 +573,8 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@undoBatch
setColumnColor = (columnField: SchemaHeaderField, color: string): void => {
- let columns = this.columns;
- let index = columns.indexOf(columnField);
+ const columns = this.columns;
+ const index = columns.indexOf(columnField);
if (index > -1) {
columnField.setColor(color);
columns[index] = columnField;
@@ -589,10 +587,10 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@undoBatch
reorderColumns = (toMove: SchemaHeaderField, relativeTo: SchemaHeaderField, before: boolean, columnsValues: SchemaHeaderField[]) => {
- let columns = [...columnsValues];
- let oldIndex = columns.indexOf(toMove);
- let relIndex = columns.indexOf(relativeTo);
- let newIndex = (oldIndex > relIndex && !before) ? relIndex + 1 : (oldIndex < relIndex && before) ? relIndex - 1 : relIndex;
+ const columns = [...columnsValues];
+ const oldIndex = columns.indexOf(toMove);
+ const relIndex = columns.indexOf(relativeTo);
+ const newIndex = (oldIndex > relIndex && !before) ? relIndex + 1 : (oldIndex < relIndex && before) ? relIndex - 1 : relIndex;
if (oldIndex === newIndex) return;
@@ -603,17 +601,17 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@undoBatch
@action
setColumnSort = (columnField: SchemaHeaderField, descending: boolean | undefined) => {
- let columns = this.columns;
- let index = columns.findIndex(c => c.heading === columnField.heading);
- let column = columns[index];
+ const columns = this.columns;
+ const index = columns.findIndex(c => c.heading === columnField.heading);
+ const column = columns[index];
column.setDesc(descending);
columns[index] = column;
this.columns = columns;
}
get documentKeys() {
- let docs = this.childDocs;
- let keys: { [key: string]: boolean } = {};
+ const docs = this.childDocs;
+ const keys: { [key: string]: boolean } = {};
// bcz: ugh. this is untracked since otherwise a large collection of documents will blast the server for all their fields.
// then as each document's fields come back, we update the documents _proxies. Each time we do this, the whole schema will be
// invalidated and re-rendered. This workaround will inquire all of the document fields before the options button is clicked.
@@ -626,10 +624,23 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
return Array.from(Object.keys(keys));
}
+ @undoBatch
+ @action
+ toggleTextwrap = async () => {
+ const textwrappedRows = Cast(this.props.Document.textwrappedSchemaRows, listSpec("string"), []);
+ if (textwrappedRows.length) {
+ this.props.Document.textwrappedSchemaRows = new List<string>([]);
+ } else {
+ const docs = DocListCast(this.props.Document[this.props.fieldKey]);
+ const allRows = docs instanceof Doc ? [docs[Id]] : docs.map(doc => doc[Id]);
+ this.props.Document.textwrappedSchemaRows = new List<string>(allRows);
+ }
+ }
+
@action
toggleTextWrapRow = (doc: Doc): void => {
- let textWrapped = this.textWrappedRows;
- let index = textWrapped.findIndex(id => doc[Id] === id);
+ const textWrapped = this.textWrappedRows;
+ const index = textWrapped.findIndex(id => doc[Id] === id);
index > -1 ? textWrapped.splice(index, 1) : textWrapped.push(doc[Id]);
@@ -638,13 +649,13 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
@computed
get reactTable() {
- let children = this.childDocs;
- let hasCollectionChild = children.reduce((found, doc) => found || doc.type === "collection", false);
- let expandedRowsList = this._openCollections.map(col => children.findIndex(doc => doc[Id] === col).toString());
- let expanded = {};
+ const children = this.childDocs;
+ const hasCollectionChild = children.reduce((found, doc) => found || doc.type === "collection", false);
+ const expandedRowsList = this._openCollections.map(col => children.findIndex(doc => doc[Id] === col).toString());
+ const expanded = {};
//@ts-ignore
expandedRowsList.forEach(row => expanded[row] = true);
- console.log("text wrapped rows", ...[...this.textWrappedRows]); // TODO: get component to rerender on text wrap change without needign to console.log :((((
+ const rerender = [...this.textWrappedRows]; // TODO: get component to rerender on text wrap change without needign to console.log :((((
return <ReactTable
style={{ position: "relative" }}
@@ -668,10 +679,10 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
}
onResizedChange = (newResized: Resize[], event: any) => {
- let columns = this.columns;
+ const columns = this.columns;
newResized.forEach(resized => {
- let index = columns.findIndex(c => c.heading === resized.id);
- let column = columns[index];
+ const index = columns.findIndex(c => c.heading === resized.id);
+ const column = columns[index];
column.setWidth(resized.value);
columns[index] = column;
});
@@ -680,7 +691,8 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
onContextMenu = (e: React.MouseEvent): void => {
if (!e.isPropagationStopped() && this.props.Document[Id] !== "mainDoc") { // need to test this because GoldenLayout causes a parallel hierarchy in the React DOM for its children and the main document view7
- ContextMenu.Instance.addItem({ description: "Make DB", event: this.makeDB, icon: "table" });
+ // ContextMenu.Instance.addItem({ description: "Make DB", event: this.makeDB, icon: "table" });
+ ContextMenu.Instance.addItem({ description: "Toggle text wrapping", event: this.toggleTextwrap, icon: "table" })
}
}
@@ -688,16 +700,16 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
makeDB = async () => {
let csv: string = this.columns.reduce((val, col) => val + col + ",", "");
csv = csv.substr(0, csv.length - 1) + "\n";
- let self = this;
+ const self = this;
this.childDocs.map(doc => {
csv += self.columns.reduce((val, col) => val + (doc[col.heading] ? doc[col.heading]!.toString() : "0") + ",", "");
csv = csv.substr(0, csv.length - 1) + "\n";
});
csv.substring(0, csv.length - 1);
- let dbName = StrCast(this.props.Document.title);
- let res = await Gateway.Instance.PostSchema(csv, dbName);
+ const dbName = StrCast(this.props.Document.title);
+ const res = await Gateway.Instance.PostSchema(csv, dbName);
if (self.props.CollectionView && self.props.CollectionView.props.addDocument) {
- let schemaDoc = await Docs.Create.DBDocument("https://www.cs.brown.edu/" + dbName, { title: dbName }, { dbDoc: self.props.Document });
+ const schemaDoc = await Docs.Create.DBDocument("https://www.cs.brown.edu/" + dbName, { title: dbName }, { dbDoc: self.props.Document });
if (schemaDoc) {
//self.props.CollectionView.props.addDocument(schemaDoc, false);
self.props.Document.schemaDoc = schemaDoc;
@@ -706,7 +718,7 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
}
getField = (row: number, col?: number) => {
- let docs = this.childDocs;
+ const docs = this.childDocs;
row = row % docs.length;
while (row < 0) row += docs.length;
@@ -778,7 +790,7 @@ export class SchemaTable extends React.Component<SchemaTableProps> {
}
render() {
- return <div className="collectionSchemaView-table" onPointerDown={this.onPointerDown} onWheel={e => this.props.active() && e.stopPropagation()} onDrop={e => this.props.onDrop(e, {})} onContextMenu={this.onContextMenu} >
+ return <div className="collectionSchemaView-table" onPointerDown={this.onPointerDown} onWheel={e => this.props.active(true) && e.stopPropagation()} onDrop={e => this.props.onDrop(e, {})} onContextMenu={this.onContextMenu} >
{this.reactTable}
<div className="collectionSchemaView-addRow" onClick={() => this.createRow()}>+ new</div>
</div>;
diff --git a/src/client/views/collections/CollectionStackingView.scss b/src/client/views/collections/CollectionStackingView.scss
index 29178b909..843c743db 100644
--- a/src/client/views/collections/CollectionStackingView.scss
+++ b/src/client/views/collections/CollectionStackingView.scss
@@ -97,6 +97,7 @@
.collectionStackingView-columnDoc {
display: inline-block;
+ margin: auto;
}
.collectionStackingView-masonryDoc {
@@ -177,7 +178,9 @@
.collectionStackingView-sectionHeader-subCont {
outline: none;
border: 0px;
- color: $light-color;
+ color: $light-color;
+ width: 100%;
+ color: grey;
letter-spacing: 2px;
font-size: 75%;
transition: transform 0.2s;
@@ -382,4 +385,4 @@
.rc-switch-checked .rc-switch-inner {
left: 8px;
}
-} \ No newline at end of file
+}
diff --git a/src/client/views/collections/CollectionStackingView.tsx b/src/client/views/collections/CollectionStackingView.tsx
index be3bfca0a..91c7ca76e 100644
--- a/src/client/views/collections/CollectionStackingView.tsx
+++ b/src/client/views/collections/CollectionStackingView.tsx
@@ -1,16 +1,16 @@
import React = require("react");
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { CursorProperty } from "csstype";
-import { action, computed, IReactionDisposer, observable, reaction, runInAction, trace } from "mobx";
+import { action, computed, IReactionDisposer, observable, reaction, runInAction } from "mobx";
import { observer } from "mobx-react";
import Switch from 'rc-switch';
-import { Doc, HeightSym, WidthSym } from "../../../new_fields/Doc";
+import { Doc, HeightSym, WidthSym, DataSym } from "../../../new_fields/Doc";
import { Id } from "../../../new_fields/FieldSymbols";
import { List } from "../../../new_fields/List";
import { listSpec } from "../../../new_fields/Schema";
import { SchemaHeaderField } from "../../../new_fields/SchemaHeaderField";
import { BoolCast, Cast, NumCast, StrCast, ScriptCast } from "../../../new_fields/Types";
-import { emptyFunction, Utils, numberRange } from "../../../Utils";
+import { emptyFunction, Utils } from "../../../Utils";
import { DocumentType } from "../../documents/DocumentTypes";
import { DragManager } from "../../util/DragManager";
import { Transform } from "../../util/Transform";
@@ -22,8 +22,9 @@ import { CollectionStackingViewFieldColumn } from "./CollectionStackingViewField
import { CollectionSubView } from "./CollectionSubView";
import { ContextMenu } from "../ContextMenu";
import { ContextMenuProps } from "../ContextMenuItem";
-import { ScriptBox } from "../ScriptBox";
import { CollectionMasonryViewFieldRow } from "./CollectionMasonryViewFieldRow";
+import { TraceMobx } from "../../../new_fields/util";
+import { CollectionViewType } from "./CollectionView";
@observer
export class CollectionStackingView extends CollectionSubView(doc => doc) {
@@ -38,35 +39,31 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
@observable _scroll = 0; // used to force the document decoration to update when scrolling
@computed get sectionHeaders() { return Cast(this.props.Document.sectionHeaders, listSpec(SchemaHeaderField)); }
@computed get sectionFilter() { return StrCast(this.props.Document.sectionFilter); }
- @computed get filteredChildren() { return this.childDocs.filter(d => !d.isMinimized); }
- @computed get xMargin() { return NumCast(this.props.Document.xMargin, 2 * this.gridGap); }
- @computed get yMargin() { return NumCast(this.props.Document.yMargin, 2 * this.gridGap); }
- @computed get gridGap() { return NumCast(this.props.Document.gridGap, 10); }
+ @computed get filteredChildren() { return this.childLayoutPairs.filter(pair => pair.layout instanceof Doc && !pair.layout.isMinimized).map(pair => pair.layout); }
+ @computed get xMargin() { return NumCast(this.props.Document._xMargin, 2 * this.gridGap); }
+ @computed get yMargin() { return Math.max(this.props.Document.showTitle && !this.props.Document.showTitleHover ? 30 : 0, NumCast(this.props.Document._yMargin, 2 * this.gridGap)); }
+ @computed get gridGap() { return NumCast(this.props.Document._gridGap, 10); }
@computed get isStackingView() { return BoolCast(this.props.Document.singleColumn, true); }
@computed get numGroupColumns() { return this.isStackingView ? Math.max(1, this.Sections.size + (this.showAddAGroup ? 1 : 0)) : 1; }
- @computed get showAddAGroup() { return (this.sectionFilter && (this.props.Document.chromeStatus !== 'view-mode' && this.props.Document.chromeStatus !== 'disabled')); }
+ @computed get showAddAGroup() { return (this.sectionFilter && (this.props.Document._chromeStatus !== 'view-mode' && this.props.Document._chromeStatus !== 'disabled')); }
@computed get columnWidth() {
return Math.min(this.props.PanelWidth() / (this.props as any).ContentScaling() - 2 * this.xMargin,
this.isStackingView ? Number.MAX_VALUE : NumCast(this.props.Document.columnWidth, 250));
}
@computed get NodeWidth() { return this.props.PanelWidth() - this.gridGap; }
- childDocHeight(child: Doc) { return this.getDocHeight(Doc.GetLayoutDataDocPair(this.props.Document, this.props.DataDoc, this.props.fieldKey, child).layout); }
-
children(docs: Doc[]) {
this._docXfs.length = 0;
return docs.map((d, i) => {
- let pair = Doc.GetLayoutDataDocPair(this.props.Document, this.props.DataDoc, this.props.fieldKey, d);
- let layoutDoc = pair.layout ? Doc.Layout(pair.layout) : d;
- let width = () => Math.min(layoutDoc.nativeWidth && !layoutDoc.ignoreAspect && !this.props.Document.fillColumn ? layoutDoc[WidthSym]() : Number.MAX_VALUE, this.columnWidth / this.numGroupColumns);
- let height = () => this.getDocHeight(layoutDoc);
- let dref = React.createRef<HTMLDivElement>();
- let dxf = () => this.getDocTransform(layoutDoc, dref.current!);
+ const width = () => Math.min(d._nativeWidth && !d.ignoreAspect && !this.props.Document.fillColumn ? d[WidthSym]() : Number.MAX_VALUE, this.columnWidth / this.numGroupColumns);
+ const height = () => this.getDocHeight(d);
+ const dref = React.createRef<HTMLDivElement>();
+ const dxf = () => this.getDocTransform(d, dref.current!);
this._docXfs.push({ dxf: dxf, width: width, height: height });
- let rowSpan = Math.ceil((height() + this.gridGap) / this.gridGap);
- let style = this.isStackingView ? { width: width(), margin: "auto", marginTop: i === 0 ? 0 : this.gridGap, height: height() } : { gridRowEnd: `span ${rowSpan}` };
+ const rowSpan = Math.ceil((height() + this.gridGap) / this.gridGap);
+ const style = this.isStackingView ? { width: width(), marginTop: i === 0 ? 0 : this.gridGap, height: height() } : { gridRowEnd: `span ${rowSpan}` };
return <div className={`collectionStackingView-${this.isStackingView ? "columnDoc" : "masonryDoc"}`} key={d[Id]} ref={dref} style={style} >
- {this.getDisplayDoc(pair.layout || d, pair.data, dxf, width)}
+ {this.getDisplayDoc(d, Cast(d.resolvedDataDoc, Doc, null) || this.props.DataDoc, dxf, width)}
</div>;
});
}
@@ -83,20 +80,20 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
return new Map<SchemaHeaderField, Doc[]>();
}
const sectionHeaders = this.sectionHeaders;
- let fields = new Map<SchemaHeaderField, Doc[]>(sectionHeaders.map(sh => [sh, []] as [SchemaHeaderField, []]));
+ const fields = new Map<SchemaHeaderField, Doc[]>(sectionHeaders.map(sh => [sh, []] as [SchemaHeaderField, []]));
this.filteredChildren.map(d => {
- let sectionValue = (d[this.sectionFilter] ? d[this.sectionFilter] : `NO ${this.sectionFilter.toUpperCase()} VALUE`) as object;
+ const sectionValue = (d[this.sectionFilter] ? d[this.sectionFilter] : `NO ${this.sectionFilter.toUpperCase()} VALUE`) as object;
// the next five lines ensures that floating point rounding errors don't create more than one section -syip
- let parsed = parseInt(sectionValue.toString());
- let castedSectionValue = !isNaN(parsed) ? parsed : sectionValue;
+ const parsed = parseInt(sectionValue.toString());
+ const castedSectionValue = !isNaN(parsed) ? parsed : sectionValue;
// look for if header exists already
- let existingHeader = sectionHeaders.find(sh => sh.heading === (castedSectionValue ? castedSectionValue.toString() : `NO ${this.sectionFilter.toUpperCase()} VALUE`));
+ const existingHeader = sectionHeaders.find(sh => sh.heading === (castedSectionValue ? castedSectionValue.toString() : `NO ${this.sectionFilter.toUpperCase()} VALUE`));
if (existingHeader) {
fields.get(existingHeader)!.push(d);
}
else {
- let newSchemaHeader = new SchemaHeaderField(castedSectionValue ? castedSectionValue.toString() : `NO ${this.sectionFilter.toUpperCase()} VALUE`);
+ const newSchemaHeader = new SchemaHeaderField(castedSectionValue ? castedSectionValue.toString() : `NO ${this.sectionFilter.toUpperCase()} VALUE`);
fields.set(newSchemaHeader, [d]);
sectionHeaders.push(newSchemaHeader);
}
@@ -107,28 +104,28 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
componentDidMount() {
super.componentDidMount();
this._heightDisposer = reaction(() => {
- if (this.props.Document.autoHeight) {
- let sectionsList = Array.from(this.Sections.size ? this.Sections.values() : [this.filteredChildren]);
+ if (this.props.Document._autoHeight) {
+ const sectionsList = Array.from(this.Sections.size ? this.Sections.values() : [this.filteredChildren]);
if (this.isStackingView) {
- let res = this.props.ContentScaling() * sectionsList.reduce((maxHght, s) => {
- let r1 = Math.max(maxHght,
+ const res = this.props.ContentScaling() * sectionsList.reduce((maxHght, s) => {
+ const r1 = Math.max(maxHght,
(this.Sections.size ? 50 : 0) + s.reduce((height, d, i) => {
- let val = height + this.childDocHeight(d) + (i === s.length - 1 ? this.yMargin : this.gridGap);
+ const val = height + this.getDocHeight(d) + (i === s.length - 1 ? this.yMargin : this.gridGap);
return val;
}, this.yMargin));
return r1;
}, 0);
return res;
} else {
- let sum = Array.from(this._heightMap.values()).reduce((acc: number, curr: number) => acc += curr, 0);
+ const sum = Array.from(this._heightMap.values()).reduce((acc: number, curr: number) => acc += curr, 0);
return this.props.ContentScaling() * (sum + (this.Sections.size ? (this.props.Document.miniHeaders ? 20 : 85) : -15));
}
}
return -1;
},
(hgt: number) => {
- let doc = hgt === -1 ? undefined : this.props.DataDoc && this.props.DataDoc.layout === this.layoutDoc ? this.props.DataDoc : this.layoutDoc;
- doc && hgt > 0 && (Doc.Layout(doc).height = hgt);
+ const doc = hgt === -1 ? undefined : this.props.DataDoc && this.props.DataDoc.layout === this.layoutDoc ? this.props.DataDoc : this.layoutDoc;
+ doc && hgt > 0 && (Doc.Layout(doc)._height = hgt);
},
{ fireImmediately: true }
);
@@ -146,36 +143,30 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
}
@action
- moveDocument = (doc: Doc, targetCollection: Doc, addDocument: (document: Doc) => boolean): boolean => {
+ moveDocument = (doc: Doc, targetCollection: Doc | undefined, addDocument: (document: Doc) => boolean): boolean => {
return this.props.removeDocument(doc) && addDocument(doc);
}
createRef = (ele: HTMLDivElement | null) => {
this._masonryGridRef = ele;
- this.createDropTarget(ele!); //so the whole grid is the drop target?
- }
-
- overlays = (doc: Doc) => {
- return doc.type === DocumentType.IMG || doc.type === DocumentType.VID ? { title: StrCast(this.props.Document.showTitles), caption: StrCast(this.props.Document.showCaptions) } : {};
+ this.createDashEventsTarget(ele!); //so the whole grid is the drop target?
}
@computed get onChildClickHandler() { return ScriptCast(this.Document.onChildClick); }
@computed get onClickHandler() { return ScriptCast(this.Document.onChildClick); }
getDisplayDoc(doc: Doc, dataDoc: Doc | undefined, dxf: () => Transform, width: () => number) {
- let layoutDoc = Doc.Layout(doc);
- let height = () => this.getDocHeight(doc);
- let finalDxf = () => dxf().scale(this.columnWidth / layoutDoc[WidthSym]());
+ const layoutDoc = Doc.Layout(doc);
+ const height = () => this.getDocHeight(doc);
return <ContentFittingDocumentView
Document={doc}
DataDocument={dataDoc}
- showOverlays={this.overlays}
- renderDepth={this.props.renderDepth}
- ruleProvider={this.props.Document.isRuleProvider && layoutDoc.type !== DocumentType.TEXT ? this.props.Document : this.props.ruleProvider}
+ LibraryPath={this.props.LibraryPath}
+ renderDepth={this.props.renderDepth + 1}
fitToBox={this.props.fitToBox}
onClick={layoutDoc.isTemplateDoc ? this.onClickHandler : this.onChildClickHandler}
PanelWidth={width}
PanelHeight={height}
- getTransform={finalDxf}
+ getTransform={dxf}
focus={this.props.focus}
CollectionDoc={this.props.CollectionView && this.props.CollectionView.props.Document}
CollectionView={this.props.CollectionView}
@@ -185,24 +176,22 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
active={this.props.active}
whenActiveChanged={this.props.whenActiveChanged}
addDocTab={this.props.addDocTab}
- pinToPres={this.props.pinToPres}
- setPreviewScript={emptyFunction}
- previewScript={undefined}>
+ pinToPres={this.props.pinToPres}>
</ContentFittingDocumentView>;
}
getDocHeight(d?: Doc) {
if (!d) return 0;
- let layoutDoc = Doc.Layout(d);
- let nw = NumCast(layoutDoc.nativeWidth);
- let nh = NumCast(layoutDoc.nativeHeight);
+ const layoutDoc = Doc.Layout(d);
+ const nw = NumCast(layoutDoc._nativeWidth);
+ const nh = NumCast(layoutDoc._nativeHeight);
let wid = this.columnWidth / (this.isStackingView ? this.numGroupColumns : 1);
- if (!layoutDoc.ignoreAspect && !layoutDoc.fitWidth && nw && nh) {
- let aspect = nw && nh ? nh / nw : 1;
- if (!(d.nativeWidth && !layoutDoc.ignoreAspect && this.props.Document.fillColumn)) wid = Math.min(layoutDoc[WidthSym](), wid);
+ if (!layoutDoc.ignoreAspect && !layoutDoc._fitWidth && nw && nh) {
+ const aspect = nw && nh ? nh / nw : 1;
+ if (!(d._nativeWidth && !layoutDoc.ignoreAspect && this.props.Document.fillColumn)) wid = Math.min(layoutDoc[WidthSym](), wid);
return wid * aspect;
}
- return layoutDoc.fitWidth ? !layoutDoc.nativeHeight ? this.props.PanelHeight() - 2 * this.yMargin :
- Math.min(wid * NumCast(layoutDoc.scrollHeight, NumCast(layoutDoc.nativeHeight)) / NumCast(layoutDoc.nativeWidth, 1), this.props.PanelHeight() - 2 * this.yMargin) : layoutDoc[HeightSym]();
+ return layoutDoc._fitWidth ? !layoutDoc._nativeHeight ? this.props.PanelHeight() - 2 * this.yMargin :
+ Math.min(wid * NumCast(layoutDoc.scrollHeight, NumCast(layoutDoc._nativeHeight)) / NumCast(layoutDoc._nativeWidth, 1), this.props.PanelHeight() - 2 * this.yMargin) : layoutDoc[HeightSym]();
}
columnDividerDown = (e: React.PointerEvent) => {
@@ -215,8 +204,8 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
}
@action
onDividerMove = (e: PointerEvent): void => {
- let dragPos = this.props.ScreenToLocalTransform().transformPoint(e.clientX, e.clientY)[0];
- let delta = dragPos - this._columnStart;
+ const dragPos = this.props.ScreenToLocalTransform().transformPoint(e.clientX, e.clientY)[0];
+ const delta = dragPos - this._columnStart;
this._columnStart = dragPos;
this.layoutDoc.columnWidth = Math.max(10, this.columnWidth + delta);
}
@@ -229,7 +218,8 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
}
@computed get columnDragger() {
- return <div className="collectionStackingView-columnDragger" onPointerDown={this.columnDividerDown} ref={this._draggerRef} style={{ cursor: this._cursor, left: `${this.columnWidth + this.xMargin}px` }} >
+ return <div className="collectionStackingView-columnDragger" onPointerDown={this.columnDividerDown} ref={this._draggerRef}
+ style={{ cursor: this._cursor, left: `${this.columnWidth + this.xMargin}px`, top: `${Math.max(0, this.yMargin - 9)}px` }} >
<FontAwesomeIcon icon={"arrows-alt-h"} />
</div>;
}
@@ -237,28 +227,29 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
@undoBatch
@action
drop = (e: Event, de: DragManager.DropEvent) => {
- let where = [de.x, de.y];
+ const where = [de.x, de.y];
let targInd = -1;
- let plusOne = false;
- if (de.data instanceof DragManager.DocumentDragData) {
+ let plusOne = 0;
+ if (de.complete.docDragData) {
this._docXfs.map((cd, i) => {
- let pos = cd.dxf().inverse().transformPoint(-2 * this.gridGap, -2 * this.gridGap);
- let pos1 = cd.dxf().inverse().transformPoint(cd.width(), cd.height());
+ const pos = cd.dxf().inverse().transformPoint(-2 * this.gridGap, -2 * this.gridGap);
+ const pos1 = cd.dxf().inverse().transformPoint(cd.width(), cd.height());
if (where[0] > pos[0] && where[0] < pos1[0] && where[1] > pos[1] && where[1] < pos1[1]) {
targInd = i;
- plusOne = (where[1] > (pos[1] + pos1[1]) / 2 ? 1 : 0) ? true : false;
+ const axis = this.Document._viewType === CollectionViewType.Masonry ? 0 : 1;
+ plusOne = where[axis] > (pos[axis] + pos1[axis]) / 2 ? 1 : 0;
}
});
- }
- if (super.drop(e, de)) {
- let newDoc = de.data.droppedDocuments[0];
- let docs = this.childDocList;
- if (docs) {
- if (targInd === -1) targInd = docs.length;
- else targInd = docs.indexOf(this.filteredChildren[targInd]);
- let srcInd = docs.indexOf(newDoc);
- docs.splice(srcInd, 1);
- docs.splice((targInd > srcInd ? targInd - 1 : targInd) + (plusOne ? 1 : 0), 0, newDoc);
+ if (super.drop(e, de)) {
+ const newDoc = de.complete.docDragData.droppedDocuments[0];
+ const docs = this.childDocList;
+ if (docs) {
+ if (targInd === -1) targInd = docs.length;
+ else targInd = docs.indexOf(this.filteredChildren[targInd]);
+ const srcInd = docs.indexOf(newDoc);
+ docs.splice(srcInd, 1);
+ docs.splice((targInd > srcInd ? targInd - 1 : targInd) + plusOne, 0, newDoc);
+ }
}
}
return false;
@@ -266,19 +257,19 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
@undoBatch
@action
onDrop = async (e: React.DragEvent): Promise<void> => {
- let where = [e.clientX, e.clientY];
+ const where = [e.clientX, e.clientY];
let targInd = -1;
this._docXfs.map((cd, i) => {
- let pos = cd.dxf().inverse().transformPoint(-2 * this.gridGap, -2 * this.gridGap);
- let pos1 = cd.dxf().inverse().transformPoint(cd.width(), cd.height());
+ const pos = cd.dxf().inverse().transformPoint(-2 * this.gridGap, -2 * this.gridGap);
+ const pos1 = cd.dxf().inverse().transformPoint(cd.width(), cd.height());
if (where[0] > pos[0] && where[0] < pos1[0] && where[1] > pos[1] && where[1] < pos1[1]) {
targInd = i;
}
});
super.onDrop(e, {}, () => {
if (targInd !== -1) {
- let newDoc = this.childDocs[this.childDocs.length - 1];
- let docs = this.childDocList;
+ const newDoc = this.childDocs[this.childDocs.length - 1];
+ const docs = this.childDocList;
if (docs) {
docs.splice(docs.length - 1, 1);
docs.splice(targInd, 0, newDoc);
@@ -288,13 +279,13 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
}
headings = () => Array.from(this.Sections.keys());
sectionStacking = (heading: SchemaHeaderField | undefined, docList: Doc[]) => {
- let key = this.sectionFilter;
+ const key = this.sectionFilter;
let type: "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" | undefined = undefined;
- let types = docList.length ? docList.map(d => typeof d[key]) : this.childDocs.map(d => typeof d[key]);
+ const types = docList.length ? docList.map(d => typeof d[key]) : this.filteredChildren.map(d => typeof d[key]);
if (types.map((i, idx) => types.indexOf(i) === idx).length === 1) {
type = types[0];
}
- let cols = () => this.isStackingView ? 1 : Math.max(1, Math.min(this.filteredChildren.length,
+ const cols = () => this.isStackingView ? 1 : Math.max(1, Math.min(this.filteredChildren.length,
Math.floor((this.props.PanelWidth() - 2 * this.xMargin) / (this.columnWidth + this.gridGap))));
return <CollectionStackingViewFieldColumn
key={heading ? heading.heading : ""}
@@ -305,30 +296,31 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
docList={docList}
parent={this}
type={type}
- createDropTarget={this.createDropTarget}
+ createDropTarget={this.createDashEventsTarget}
screenToLocalTransform={this.props.ScreenToLocalTransform}
/>;
}
getDocTransform(doc: Doc, dref: HTMLDivElement) {
if (!dref) return Transform.Identity();
- let y = this._scroll; // required for document decorations to update when the text box container is scrolled
- let { scale, translateX, translateY } = Utils.GetScreenTransform(dref);
- let outerXf = Utils.GetScreenTransform(this._masonryGridRef!);
- let offset = this.props.ScreenToLocalTransform().transformDirection(outerXf.translateX - translateX, outerXf.translateY - translateY);
- return this.props.ScreenToLocalTransform().
- translate(offset[0], offset[1] + (this.props.ChromeHeight ? this.props.ChromeHeight() : 0)).
- scale(NumCast(doc.width, 1) / this.columnWidth);
+ const y = this._scroll; // required for document decorations to update when the text box container is scrolled
+ const { scale, translateX, translateY } = Utils.GetScreenTransform(dref);
+ const outerXf = Utils.GetScreenTransform(this._masonryGridRef!);
+ const scaling = 1 / Math.min(1, this.props.PanelHeight() / this.layoutDoc[HeightSym]());
+ const offset = this.props.ScreenToLocalTransform().transformDirection(outerXf.translateX - translateX, outerXf.translateY - translateY);
+ const offsetx = (doc[WidthSym]() - doc[WidthSym]() / scaling) / 2;
+ const offsety = (this.props.ChromeHeight && this.props.ChromeHeight() < 0 ? this.props.ChromeHeight() : 0);
+ return this.props.ScreenToLocalTransform().translate(offset[0] - offsetx, offset[1] + offsety).scale(scaling);
}
sectionMasonry = (heading: SchemaHeaderField | undefined, docList: Doc[]) => {
- let key = this.sectionFilter;
+ const key = this.sectionFilter;
let type: "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" | undefined = undefined;
- let types = docList.length ? docList.map(d => typeof d[key]) : this.childDocs.map(d => typeof d[key]);
+ const types = docList.length ? docList.map(d => typeof d[key]) : this.filteredChildren.map(d => typeof d[key]);
if (types.map((i, idx) => types.indexOf(i) === idx).length === 1) {
type = types[0];
}
- let rows = () => !this.isStackingView ? 1 : Math.max(1, Math.min(docList.length,
+ const rows = () => !this.isStackingView ? 1 : Math.max(1, Math.min(docList.length,
Math.floor((this.props.PanelWidth() - 2 * this.xMargin) / (this.columnWidth + this.gridGap))));
return <CollectionMasonryViewFieldRow
key={heading ? heading.heading : ""}
@@ -339,7 +331,7 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
docList={docList}
parent={this}
type={type}
- createDropTarget={this.createDropTarget}
+ createDropTarget={this.createDashEventsTarget}
screenToLocalTransform={this.props.ScreenToLocalTransform}
setDocHeight={this.setDocHeight}
/>;
@@ -355,61 +347,67 @@ export class CollectionStackingView extends CollectionSubView(doc => doc) {
}
sortFunc = (a: [SchemaHeaderField, Doc[]], b: [SchemaHeaderField, Doc[]]): 1 | -1 => {
- let descending = BoolCast(this.props.Document.stackingHeadersSortDescending);
- let firstEntry = descending ? b : a;
- let secondEntry = descending ? a : b;
+ const descending = BoolCast(this.props.Document.stackingHeadersSortDescending);
+ const firstEntry = descending ? b : a;
+ const secondEntry = descending ? a : b;
return firstEntry[0].heading > secondEntry[0].heading ? 1 : -1;
}
onToggle = (checked: Boolean) => {
- this.props.Document.chromeStatus = checked ? "collapsed" : "view-mode";
+ this.props.Document._chromeStatus = checked ? "collapsed" : "view-mode";
}
onContextMenu = (e: React.MouseEvent): void => {
// need to test if propagation has stopped because GoldenLayout forces a parallel react hierarchy to be created for its top-level layout
if (!e.isPropagationStopped()) {
- let subItems: ContextMenuProps[] = [];
+ const subItems: ContextMenuProps[] = [];
subItems.push({ description: `${this.props.Document.fillColumn ? "Variable Size" : "Autosize"} Column`, event: () => this.props.Document.fillColumn = !this.props.Document.fillColumn, icon: "plus" });
subItems.push({ description: `${this.props.Document.showTitles ? "Hide Titles" : "Show Titles"}`, event: () => this.props.Document.showTitles = !this.props.Document.showTitles ? "title" : "", icon: "plus" });
subItems.push({ description: `${this.props.Document.showCaptions ? "Hide Captions" : "Show Captions"}`, event: () => this.props.Document.showCaptions = !this.props.Document.showCaptions ? "caption" : "", icon: "plus" });
ContextMenu.Instance.addItem({ description: "Stacking Options ...", subitems: subItems, icon: "eye" });
-
- let existingOnClick = ContextMenu.Instance.findByDescription("OnClick...");
- let onClicks: ContextMenuProps[] = existingOnClick && "subitems" in existingOnClick ? existingOnClick.subitems : [];
- onClicks.push({ description: "Edit onChildClick script", icon: "edit", event: (obj: any) => ScriptBox.EditButtonScript("On Child Clicked...", this.props.Document, "onChildClick", obj.x, obj.y) });
- !existingOnClick && ContextMenu.Instance.addItem({ description: "OnClick...", subitems: onClicks, icon: "hand-point-right" });
}
}
+ @computed get renderedSections() {
+ TraceMobx();
+ let sections = [[undefined, this.filteredChildren] as [SchemaHeaderField | undefined, Doc[]]];
+ if (this.sectionFilter) {
+ const entries = Array.from(this.Sections.entries());
+ sections = entries.sort(this.sortFunc);
+ }
+ return sections.map(section => this.isStackingView ? this.sectionStacking(section[0], section[1]) : this.sectionMasonry(section[0], section[1]));
+ }
render() {
- let editableViewProps = {
+ TraceMobx();
+ const editableViewProps = {
GetValue: () => "",
SetValue: this.addGroup,
contents: "+ ADD A GROUP"
};
- let sections = [[undefined, this.filteredChildren] as [SchemaHeaderField | undefined, Doc[]]];
- if (this.sectionFilter) {
- let entries = Array.from(this.Sections.entries());
- sections = entries.sort(this.sortFunc);
- }
return (
<div className="collectionStackingMasonry-cont" >
<div className={this.isStackingView ? "collectionStackingView" : "collectionMasonryView"}
ref={this.createRef}
+ style={{
+ overflowY: this.props.active() ? "auto" : "hidden",
+ transform: `scale(${Math.min(1, this.props.PanelHeight() / this.layoutDoc[HeightSym]())})`,
+ height: `${Math.max(100, 100 * 1 / Math.min(this.props.PanelWidth() / this.layoutDoc[WidthSym](), this.props.PanelHeight() / this.layoutDoc[HeightSym]()))}%`,
+ transformOrigin: "top"
+ }}
onScroll={action((e: React.UIEvent<HTMLDivElement>) => this._scroll = e.currentTarget.scrollTop)}
onDrop={this.onDrop.bind(this)}
onContextMenu={this.onContextMenu}
- onWheel={(e: React.WheelEvent) => e.stopPropagation()} >
- {sections.map(section => this.isStackingView ? this.sectionStacking(section[0], section[1]) : this.sectionMasonry(section[0], section[1]))}
+ onWheel={e => this.props.active() && e.stopPropagation()} >
+ {this.renderedSections}
{!this.showAddAGroup ? (null) :
<div key={`${this.props.Document[Id]}-addGroup`} className="collectionStackingView-addGroupButton"
style={{ width: !this.isStackingView ? "100%" : this.columnWidth / this.numGroupColumns - 10, marginTop: 10 }}>
<EditableView {...editableViewProps} />
</div>}
- {this.props.Document.chromeStatus !== 'disabled' ? <Switch
+ {this.props.Document._chromeStatus !== 'disabled' ? <Switch
onChange={this.onToggle}
onClick={this.onToggle}
- defaultChecked={this.props.Document.chromeStatus !== 'view-mode'}
+ defaultChecked={this.props.Document._chromeStatus !== 'view-mode'}
checkedChildren="edit"
unCheckedChildren="view"
/> : null}
diff --git a/src/client/views/collections/CollectionStackingViewFieldColumn.tsx b/src/client/views/collections/CollectionStackingViewFieldColumn.tsx
index b9d334b10..2a9f903bb 100644
--- a/src/client/views/collections/CollectionStackingViewFieldColumn.tsx
+++ b/src/client/views/collections/CollectionStackingViewFieldColumn.tsx
@@ -2,17 +2,14 @@ import React = require("react");
import { library } from '@fortawesome/fontawesome-svg-core';
import { faPalette } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { action, observable, trace, runInAction } from "mobx";
+import { action, observable, runInAction } from "mobx";
import { observer } from "mobx-react";
-import { Doc, WidthSym } from "../../../new_fields/Doc";
-import { Id } from "../../../new_fields/FieldSymbols";
+import { Doc, DocListCast } from "../../../new_fields/Doc";
import { PastelSchemaPalette, SchemaHeaderField } from "../../../new_fields/SchemaHeaderField";
import { ScriptField } from "../../../new_fields/ScriptField";
import { NumCast, StrCast } from "../../../new_fields/Types";
-import { Utils } from "../../../Utils";
import { Docs } from "../../documents/Documents";
import { DragManager } from "../../util/DragManager";
-import { CompileScript } from "../../util/Scripting";
import { SelectionManager } from "../../util/SelectionManager";
import { Transform } from "../../util/Transform";
import { undoBatch } from "../../util/UndoManager";
@@ -20,6 +17,13 @@ import { anchorPoints, Flyout } from "../DocumentDecorations";
import { EditableView } from "../EditableView";
import { CollectionStackingView } from "./CollectionStackingView";
import "./CollectionStackingView.scss";
+import { TraceMobx } from "../../../new_fields/util";
+import { FormattedTextBox } from "../nodes/FormattedTextBox";
+import { ImageField } from "../../../new_fields/URLField";
+import { ImageBox } from "../nodes/ImageBox";
+import { ContextMenu } from "../ContextMenu";
+import { ContextMenuProps } from "../ContextMenuItem";
+import { RichTextField } from "../../../new_fields/RichTextField";
library.add(faPalette);
@@ -53,28 +57,28 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
this._dropRef = ele;
this.dropDisposer && this.dropDisposer();
if (ele) {
- this.dropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.columnDrop.bind(this) } });
+ this.dropDisposer = DragManager.MakeDropTarget(ele, this.columnDrop.bind(this));
}
}
@undoBatch
columnDrop = action((e: Event, de: DragManager.DropEvent) => {
this._createAliasSelected = false;
- if (de.data instanceof DragManager.DocumentDragData) {
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
- let castedValue = this.getValue(this._heading);
+ if (de.complete.docDragData) {
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const castedValue = this.getValue(this._heading);
if (castedValue) {
- de.data.droppedDocuments.forEach(d => d[key] = castedValue);
+ de.complete.docDragData.droppedDocuments.forEach(d => d[key] = castedValue);
}
else {
- de.data.droppedDocuments.forEach(d => d[key] = undefined);
+ de.complete.docDragData.droppedDocuments.forEach(d => d[key] = undefined);
}
this.props.parent.drop(e, de);
e.stopPropagation();
}
});
getValue = (value: string): any => {
- let parsed = parseInt(value);
+ const parsed = parseInt(value);
if (!isNaN(parsed)) {
return parsed;
}
@@ -90,8 +94,8 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
@action
headingChanged = (value: string, shiftDown?: boolean) => {
this._createAliasSelected = false;
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
- let castedValue = this.getValue(value);
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const castedValue = this.getValue(value);
if (castedValue) {
if (this.props.parent.sectionHeaders) {
if (this.props.parent.sectionHeaders.map(i => i.heading).indexOf(castedValue.toString()) > -1) {
@@ -134,12 +138,13 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
@action
addDocument = (value: string, shiftDown?: boolean) => {
+ if (!value) return false;
this._createAliasSelected = false;
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
- let newDoc = Docs.Create.TextDocument({ height: 18, width: 200, documentText: "@@@" + value, title: value, autoHeight: true });
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const newDoc = Docs.Create.TextDocument(value, { _height: 18, _width: 200, title: value, _autoHeight: true });
newDoc[key] = this.getValue(this.props.heading);
- let maxHeading = this.props.docList.reduce((maxHeading, doc) => NumCast(doc.heading) > maxHeading ? NumCast(doc.heading) : maxHeading, 0);
- let heading = maxHeading === 0 || this.props.docList.length === 0 ? 1 : maxHeading === 1 ? 2 : 3;
+ const maxHeading = this.props.docList.reduce((maxHeading, doc) => NumCast(doc.heading) > maxHeading ? NumCast(doc.heading) : maxHeading, 0);
+ const heading = maxHeading === 0 || this.props.docList.length === 0 ? 1 : maxHeading === 1 ? 2 : 3;
newDoc.heading = heading;
return this.props.parent.props.addDocument(newDoc);
}
@@ -147,10 +152,10 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
@action
deleteColumn = () => {
this._createAliasSelected = false;
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
this.props.docList.forEach(d => d[key] = undefined);
if (this.props.parent.sectionHeaders && this.props.headingObject) {
- let index = this.props.parent.sectionHeaders.indexOf(this.props.headingObject);
+ const index = this.props.parent.sectionHeaders.indexOf(this.props.headingObject);
this.props.parent.sectionHeaders.splice(index, 1);
}
}
@@ -166,10 +171,10 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
}
startDrag = (e: PointerEvent) => {
- let [dx, dy] = this.props.screenToLocalTransform().transformDirection(e.clientX - this._startDragPosition.x, e.clientY - this._startDragPosition.y);
+ const [dx, dy] = this.props.screenToLocalTransform().transformDirection(e.clientX - this._startDragPosition.x, e.clientY - this._startDragPosition.y);
if (Math.abs(dx) + Math.abs(dy) > this._sensitivity) {
- let alias = Doc.MakeAlias(this.props.parent.props.Document);
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
+ const alias = Doc.MakeAlias(this.props.parent.props.Document);
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
let value = this.getValue(this._heading);
value = typeof value === "string" ? `"${value}"` : value;
alias.viewSpecScript = ScriptField.MakeFunction(`doc.${key} === ${value}`, { doc: Doc.name });
@@ -195,7 +200,7 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
e.stopPropagation();
e.preventDefault();
- let [dx, dy] = this.props.screenToLocalTransform().transformDirection(e.clientX, e.clientY);
+ const [dx, dy] = this.props.screenToLocalTransform().transformDirection(e.clientX, e.clientY);
this._startDragPosition = { x: dx, y: dy };
if (this._createAliasSelected) {
@@ -208,17 +213,17 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
}
renderColorPicker = () => {
- let selected = this.props.headingObject ? this.props.headingObject.color : "#f1efeb";
-
- let pink = PastelSchemaPalette.get("pink2");
- let purple = PastelSchemaPalette.get("purple4");
- let blue = PastelSchemaPalette.get("bluegreen1");
- let yellow = PastelSchemaPalette.get("yellow4");
- let red = PastelSchemaPalette.get("red2");
- let green = PastelSchemaPalette.get("bluegreen7");
- let cyan = PastelSchemaPalette.get("bluegreen5");
- let orange = PastelSchemaPalette.get("orange1");
- let gray = "#f1efeb";
+ const selected = this.props.headingObject ? this.props.headingObject.color : "#f1efeb";
+
+ const pink = PastelSchemaPalette.get("pink2");
+ const purple = PastelSchemaPalette.get("purple4");
+ const blue = PastelSchemaPalette.get("bluegreen1");
+ const yellow = PastelSchemaPalette.get("yellow4");
+ const red = PastelSchemaPalette.get("red2");
+ const green = PastelSchemaPalette.get("bluegreen7");
+ const cyan = PastelSchemaPalette.get("bluegreen5");
+ const orange = PastelSchemaPalette.get("orange1");
+ const gray = "#f1efeb";
return (
<div className="collectionStackingView-colorPicker">
@@ -243,7 +248,7 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
}
renderMenu = () => {
- let selected = this._createAliasSelected;
+ const selected = this._createAliasSelected;
return (
<div className="collectionStackingView-optionPicker">
<div className="optionOptions">
@@ -255,23 +260,73 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
@observable private collapsed: boolean = false;
- private toggleVisibility = action(() => {
- this.collapsed = !this.collapsed;
- });
+ private toggleVisibility = action(() => this.collapsed = !this.collapsed);
@observable _headingsHack: number = 1;
+ menuCallback = (x: number, y: number) => {
+ ContextMenu.Instance.clearItems();
+ const layoutItems: ContextMenuProps[] = [];
+ const docItems: ContextMenuProps[] = [];
+
+ const dataDoc = this.props.parent.props.DataDoc || this.props.parent.Document;
+ Array.from(Object.keys(Doc.GetProto(dataDoc))).filter(fieldKey => dataDoc[fieldKey] instanceof RichTextField || dataDoc[fieldKey] instanceof ImageField || typeof (dataDoc[fieldKey]) === "string").map(fieldKey =>
+ docItems.push({
+ description: ":" + fieldKey, event: () => {
+ const created = Docs.Get.DocumentFromField(dataDoc, fieldKey, Doc.GetProto(this.props.parent.props.Document));
+ if (created) {
+ if (this.props.parent.Document.isTemplateDoc) {
+ Doc.MakeMetadataFieldTemplate(created, this.props.parent.props.Document);
+ }
+ return this.props.parent.props.addDocument(created);
+ }
+ }, icon: "compress-arrows-alt"
+ }));
+ Array.from(Object.keys(Doc.GetProto(dataDoc))).filter(fieldKey => DocListCast(dataDoc[fieldKey]).length).map(fieldKey =>
+ docItems.push({
+ description: ":" + fieldKey, event: () => {
+ const created = Docs.Create.CarouselDocument([], { _width: 400, _height: 200, title: fieldKey });
+ if (created) {
+ if (this.props.parent.Document.isTemplateDoc) {
+ Doc.MakeMetadataFieldTemplate(created, this.props.parent.props.Document);
+ }
+ return this.props.parent.props.addDocument(created);
+ }
+ }, icon: "compress-arrows-alt"
+ }));
+ layoutItems.push({ description: ":freeform", event: () => this.props.parent.props.addDocument(Docs.Create.FreeformDocument([], { _width: 200, _height: 200, _LODdisable: true })), icon: "compress-arrows-alt" });
+ layoutItems.push({ description: ":carousel", event: () => this.props.parent.props.addDocument(Docs.Create.CarouselDocument([], { _width: 400, _height: 200, _LODdisable: true })), icon: "compress-arrows-alt" });
+ layoutItems.push({ description: ":columns", event: () => this.props.parent.props.addDocument(Docs.Create.MulticolumnDocument([], { _width: 200, _height: 200 })), icon: "compress-arrows-alt" });
+ layoutItems.push({ description: ":image", event: () => this.props.parent.props.addDocument(Docs.Create.ImageDocument("http://www.cs.brown.edu/~bcz/face.gif", { _width: 200, _height: 200 })), icon: "compress-arrows-alt" });
+
+ ContextMenu.Instance.addItem({ description: "Doc Fields ...", subitems: docItems, icon: "eye" });
+ ContextMenu.Instance.addItem({ description: "Containers ...", subitems: layoutItems, icon: "eye" });
+ ContextMenu.Instance.setDefaultItem("::", (name: string): void => {
+ Doc.GetProto(this.props.parent.props.Document)[name] = "";
+ const created = Docs.Create.TextDocument("", { title: name, _width: 250, _autoHeight: true });
+ if (created) {
+ if (this.props.parent.Document.isTemplateDoc) {
+ Doc.MakeMetadataFieldTemplate(created, this.props.parent.props.Document);
+ }
+ this.props.parent.props.addDocument(created);
+ }
+ });
+ const pt = this.props.screenToLocalTransform().inverse().transformPoint(x, y);
+ ContextMenu.Instance.displayMenu(pt[0], pt[1]);
+ }
+
render() {
- let cols = this.props.cols();
- let key = StrCast(this.props.parent.props.Document.sectionFilter);
+ TraceMobx();
+ const cols = this.props.cols();
+ const key = StrCast(this.props.parent.props.Document.sectionFilter);
let templatecols = "";
- let headings = this.props.headings();
- let heading = this._heading;
- let style = this.props.parent;
- let singleColumn = style.isStackingView;
- let uniqueHeadings = headings.map((i, idx) => headings.indexOf(i) === idx);
- let evContents = heading ? heading : this.props.type && this.props.type === "number" ? "0" : `NO ${key.toUpperCase()} VALUE`;
- let headerEditableViewProps = {
+ const headings = this.props.headings();
+ const heading = this._heading;
+ const style = this.props.parent;
+ const singleColumn = style.isStackingView;
+ const uniqueHeadings = headings.map((i, idx) => headings.indexOf(i) === idx);
+ const evContents = heading ? heading : this.props.type && this.props.type === "number" ? "0" : `NO ${key.toUpperCase()} VALUE`;
+ const headerEditableViewProps = {
GetValue: () => evContents,
SetValue: this.headingChanged,
contents: evContents,
@@ -281,7 +336,7 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
toggle: this.toggleVisibility,
color: this._color
};
- let newEditableViewProps = {
+ const newEditableViewProps = {
GetValue: () => "",
SetValue: this.addDocument,
contents: "+ NEW",
@@ -290,12 +345,12 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
toggle: this.toggleVisibility,
color: this._color
};
- let headingView = this.props.headingObject ?
+ const headingView = this.props.headingObject ?
<div key={heading} className="collectionStackingView-sectionHeader" ref={this._headerRef}
style={{
width: (style.columnWidth) /
((uniqueHeadings.length +
- ((this.props.parent.props.Document.chromeStatus !== 'view-mode' && this.props.parent.props.Document.chromeStatus !== 'disabled') ? 1 : 0)) || 1)
+ ((this.props.parent.props.Document._chromeStatus !== 'view-mode' && this.props.parent.props.Document._chromeStatus !== 'disabled') ? 1 : 0)) || 1)
}}>
<div className={"collectionStackingView-collapseBar" + (this.props.headingObject.collapsed === true ? " active" : "")} onClick={this.collapseSection}></div>
{/* the default bucket (no key value) has a tooltip that describes what it is.
@@ -335,7 +390,7 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
</div>
</div> : (null);
for (let i = 0; i < cols; i++) templatecols += `${style.columnWidth / style.numGroupColumns}px `;
- let chromeStatus = this.props.parent.props.Document.chromeStatus;
+ const chromeStatus = this.props.parent.props.Document._chromeStatus;
return (
<div className="collectionStackingViewFieldColumn" key={heading} style={{ width: `${100 / ((uniqueHeadings.length + ((chromeStatus !== 'view-mode' && chromeStatus !== 'disabled') ? 1 : 0)) || 1)}%`, background: this._background }}
ref={this.createColumnDropRef} onPointerEnter={this.pointerEntered} onPointerLeave={this.pointerLeave}>
@@ -360,7 +415,7 @@ export class CollectionStackingViewFieldColumn extends React.Component<CSVFieldC
{(chromeStatus !== 'view-mode' && chromeStatus !== 'disabled') ?
<div key={`${heading}-add-document`} className="collectionStackingView-addDocumentButton"
style={{ width: style.columnWidth / style.numGroupColumns }}>
- <EditableView {...newEditableViewProps} />
+ <EditableView {...newEditableViewProps} menuCallback={this.menuCallback} />
</div> : null}
</div>
}
diff --git a/src/client/views/collections/CollectionStaffView.scss b/src/client/views/collections/CollectionStaffView.scss
new file mode 100644
index 000000000..493a5f670
--- /dev/null
+++ b/src/client/views/collections/CollectionStaffView.scss
@@ -0,0 +1,13 @@
+.collectionStaffView {
+ .collectionStaffView-staff {
+ width: 100%;
+ margin-top: 100px;
+ margin-bottom: 100px;
+ }
+
+ .collectionStaffView-line {
+ margin: 10px;
+ height: 2px;
+ background: black;
+ }
+} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionStaffView.tsx b/src/client/views/collections/CollectionStaffView.tsx
new file mode 100644
index 000000000..8c7e113b2
--- /dev/null
+++ b/src/client/views/collections/CollectionStaffView.tsx
@@ -0,0 +1,55 @@
+import { CollectionSubView } from "./CollectionSubView";
+import { Transform } from "../../util/Transform";
+import React = require("react");
+import { computed, action, IReactionDisposer, reaction, runInAction, observable } from "mobx";
+import { Doc } from "../../../new_fields/Doc";
+import { NumCast } from "../../../new_fields/Types";
+import "./CollectionStaffView.scss";
+import { observer } from "mobx-react";
+
+@observer
+export class CollectionStaffView extends CollectionSubView(doc => doc) {
+ private getTransform = (): Transform => this.props.ScreenToLocalTransform().translate(0, -this._mainCont.current!.scrollTop);
+ private _mainCont = React.createRef<HTMLDivElement>();
+ private _reactionDisposer: IReactionDisposer | undefined;
+ @observable private _staves = NumCast(this.props.Document.staves);
+
+ componentDidMount = () => {
+ this._reactionDisposer = reaction(
+ () => NumCast(this.props.Document.staves),
+ (staves) => runInAction(() => this._staves = staves)
+ );
+
+ this.props.Document.staves = 5;
+ }
+
+ @computed get addStaffButton() {
+ return <div onPointerDown={this.addStaff}>+</div>;
+ }
+
+ @computed get staves() {
+ const staves = [];
+ for (let i = 0; i < this._staves; i++) {
+ const rows = [];
+ for (let j = 0; j < 5; j++) {
+ rows.push(<div key={`staff-${i}-${j}`} className="collectionStaffView-line"></div>);
+ }
+ staves.push(<div key={`staff-${i}`} className="collectionStaffView-staff">
+ {rows}
+ </div>);
+ }
+ return staves;
+ }
+
+ @action
+ addStaff = (e: React.PointerEvent) => {
+ this.props.Document.staves = this._staves + 1;
+ }
+
+ render() {
+ return <div className="collectionStaffView" ref={this._mainCont}>
+ {this.staves}
+ {this.addStaffButton}
+ </div>;
+ }
+} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionSubView.tsx b/src/client/views/collections/CollectionSubView.tsx
index d7e9494a3..8679c8bd1 100644
--- a/src/client/views/collections/CollectionSubView.tsx
+++ b/src/client/views/collections/CollectionSubView.tsx
@@ -1,4 +1,4 @@
-import { action, computed, IReactionDisposer, reaction } from "mobx";
+import { action, computed, IReactionDisposer, reaction, trace } from "mobx";
import * as rp from 'request-promise';
import CursorField from "../../../new_fields/CursorField";
import { Doc, DocListCast, Opt } from "../../../new_fields/Doc";
@@ -6,9 +6,8 @@ import { Id } from "../../../new_fields/FieldSymbols";
import { List } from "../../../new_fields/List";
import { listSpec } from "../../../new_fields/Schema";
import { ScriptField } from "../../../new_fields/ScriptField";
-import { Cast, StrCast } from "../../../new_fields/Types";
+import { Cast } from "../../../new_fields/Types";
import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils";
-import { RouteStore } from "../../../server/RouteStore";
import { Utils } from "../../../Utils";
import { DocServer } from "../../DocServer";
import { DocumentType } from "../../documents/DocumentTypes";
@@ -20,14 +19,17 @@ import { FieldViewProps } from "../nodes/FieldView";
import { FormattedTextBox, GoogleRef } from "../nodes/FormattedTextBox";
import { CollectionView } from "./CollectionView";
import React = require("react");
-var path = require('path');
+import { basename } from 'path';
import { GooglePhotos } from "../../apis/google_docs/GooglePhotosClientUtils";
import { ImageUtils } from "../../util/Import & Export/ImageUtils";
+import { Networking } from "../../Network";
+import { GestureUtils } from "../../../pen-gestures/GestureUtils";
+import { InteractionUtils } from "../../util/InteractionUtils";
export interface CollectionViewProps extends FieldViewProps {
addDocument: (document: Doc) => boolean;
removeDocument: (document: Doc) => boolean;
- moveDocument: (document: Doc, targetCollection: Doc, addDocument: (document: Doc) => boolean) => boolean;
+ moveDocument: (document: Doc, targetCollection: Doc | undefined, addDocument: (document: Doc) => boolean) => boolean;
PanelWidth: () => number;
PanelHeight: () => number;
VisibleHeight?: () => number;
@@ -38,7 +40,6 @@ export interface CollectionViewProps extends FieldViewProps {
export interface SubCollectionViewProps extends CollectionViewProps {
CollectionView: Opt<CollectionView>;
- ruleProvider: Doc | undefined;
children?: never | (() => JSX.Element[]) | React.ReactNode;
isAnnotationOverlay?: boolean;
annotationsKey: string;
@@ -47,63 +48,102 @@ export interface SubCollectionViewProps extends CollectionViewProps {
export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
class CollectionSubView extends DocComponent<SubCollectionViewProps, T>(schemaCtor) {
private dropDisposer?: DragManager.DragDropDisposer;
+ private gestureDisposer?: GestureUtils.GestureEventDisposer;
+ protected multiTouchDisposer?: InteractionUtils.MultiTouchEventDisposer;
private _childLayoutDisposer?: IReactionDisposer;
- protected createDropTarget = (ele: HTMLDivElement) => { //used for stacking and masonry view
- this.dropDisposer && this.dropDisposer();
+ protected createDashEventsTarget = (ele: HTMLDivElement) => { //used for stacking and masonry view
+ this.dropDisposer?.();
+ this.gestureDisposer?.();
+ this.multiTouchDisposer?.();
if (ele) {
- this.dropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.drop.bind(this) } });
+ this.dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this));
+ this.gestureDisposer = GestureUtils.MakeGestureTarget(ele, this.onGesture.bind(this));
+ this.multiTouchDisposer = InteractionUtils.MakeMultiTouchTarget(ele, this.onTouchStart.bind(this));
}
}
protected CreateDropTarget(ele: HTMLDivElement) { //used in schema view
- this.createDropTarget(ele);
+ this.createDashEventsTarget(ele);
}
componentDidMount() {
- this._childLayoutDisposer = reaction(() => [this.childDocs, Cast(this.props.Document.childLayout, Doc)],
- async (args) => {
- if (args[1] instanceof Doc) {
- this.childDocs.map(async doc => !Doc.AreProtosEqual(args[1] as Doc, (await doc).layout as Doc) && Doc.ApplyTemplateTo(args[1] as Doc, (await doc), "layoutFromParent"));
+ this._childLayoutDisposer = reaction(() => [this.childDocs, (Cast(this.props.Document.childLayout, Doc) as Doc)?.[Id]],
+ (args) => {
+ const childLayout = Cast(this.props.Document.childLayout, Doc);
+ if (childLayout instanceof Doc) {
+ this.childDocs.map(doc => Doc.ApplyTemplateTo(childLayout, doc, "layout_fromParent"));
}
- else if (!(args[1] instanceof Promise)) {
- this.childDocs.filter(d => !d.isTemplateField).map(async doc => doc.layoutKey === "layoutFromParent" && (doc.layoutKey = "layout"));
+ else if (!(childLayout instanceof Promise)) {
+ this.childDocs.filter(d => !d.isTemplateForField).map(doc => doc.layoutKey === "layout_fromParent" && (doc.layoutKey = "layout"));
}
- });
+ }, { fireImmediately: true });
}
componentWillUnmount() {
this._childLayoutDisposer && this._childLayoutDisposer();
}
- @computed get dataDoc() { return this.props.DataDoc && this.props.Document.isTemplateField ? Doc.GetProto(this.props.DataDoc) : Doc.GetProto(this.props.Document); }
- @computed get extensionDoc() { return Doc.fieldExtensionDoc(this.dataDoc, this.props.fieldKey); }
+ @computed get dataDoc() { return this.props.DataDoc && this.props.Document.isTemplateForField ? Doc.GetProto(this.props.DataDoc) : Doc.GetProto(this.props.Document); }
// The data field for rendering this collection will be on the this.props.Document unless we're rendering a template in which case we try to use props.DataDoc.
// When a document has a DataDoc but it's not a template, then it contains its own rendering data, but needs to pass the DataDoc through
// to its children which may be templates.
// If 'annotationField' is specified, then all children exist on that field of the extension document, otherwise, they exist directly on the data document under 'fieldKey'
@computed get dataField() {
- return this.props.annotationsKey ? (this.extensionDoc ? this.extensionDoc[this.props.annotationsKey] : undefined) : this.dataDoc[this.props.fieldKey];
+ const { annotationsKey, fieldKey } = this.props;
+ if (annotationsKey) {
+ return this.dataDoc[fieldKey + "-" + annotationsKey];
+ }
+ return this.dataDoc[fieldKey];
}
- get childLayoutPairs() {
- return this.childDocs.map(cd => Doc.GetLayoutDataDocPair(this.props.Document, this.props.DataDoc, this.props.fieldKey, cd)).filter(pair => pair.layout).map(pair => ({ layout: pair.layout!, data: pair.data! }));
+ get childLayoutPairs(): { layout: Doc; data: Doc; }[] {
+ const { Document, DataDoc } = this.props;
+ const validPairs = this.childDocs.map(doc => Doc.GetLayoutDataDocPair(Document, DataDoc, doc)).filter(pair => pair.layout);
+ return validPairs.map(({ data, layout }) => ({ data: data!, layout: layout! })); // this mapping is a bit of a hack to coerce types
}
get childDocList() {
return Cast(this.dataField, listSpec(Doc));
}
get childDocs() {
- let docs = DocListCast(this.dataField);
+ const docs = DocListCast(this.dataField);
const viewSpecScript = Cast(this.props.Document.viewSpecScript, ScriptField);
- return viewSpecScript ? docs.filter(d => viewSpecScript.script.run({ doc: d }, console.log).result) : docs;
+ const viewedDocs = viewSpecScript ? docs.filter(d => viewSpecScript.script.run({ doc: d }, console.log).result) : docs;
+ const docFilters = Cast(this.props.Document._docFilter, listSpec("string"), []);
+ const clusters: { [key: string]: { [value: string]: string } } = {};
+ for (let i = 0; i < docFilters.length; i += 3) {
+ const [key, value, modifiers] = docFilters.slice(i, i + 3);
+ const cluster = clusters[key];
+ if (!cluster) {
+ const child: { [value: string]: string } = {};
+ child[value] = modifiers;
+ clusters[key] = child;
+ } else {
+ cluster[value] = modifiers;
+ }
+ }
+ const filteredDocs = docFilters.length ? viewedDocs.filter(d => {
+ for (const key of Object.keys(clusters)) {
+ const cluster = clusters[key];
+ const satisfiesFacet = Object.keys(cluster).some(inner => {
+ const modifier = cluster[inner];
+ return (modifier === "x") !== Doc.matchFieldValue(d, key, inner);
+ });
+ if (!satisfiesFacet) {
+ return false;
+ }
+ }
+ return true;
+ }) : viewedDocs;
+ return filteredDocs;
}
@action
protected async setCursorPosition(position: [number, number]) {
let ind;
- let doc = this.props.Document;
- let id = CurrentUserUtils.id;
- let email = Doc.CurrentUserEmail;
- let pos = { x: position[0], y: position[1] };
+ const doc = this.props.Document;
+ const id = CurrentUserUtils.id;
+ const email = Doc.CurrentUserEmail;
+ const pos = { x: position[0], y: position[1] };
if (id && email) {
const proto = Doc.GetProto(doc);
if (!proto) {
@@ -123,41 +163,47 @@ export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
if (cursors.length > 0 && (ind = cursors.findIndex(entry => entry.data.metadata.id === id)) > -1) {
cursors[ind].setPosition(pos);
} else {
- let entry = new CursorField({ metadata: { id: id, identifier: email, timestamp: Date.now() }, position: pos });
+ const entry = new CursorField({ metadata: { id: id, identifier: email, timestamp: Date.now() }, position: pos });
cursors.push(entry);
}
}
}
@undoBatch
+ protected onGesture(e: Event, ge: GestureUtils.GestureEvent) {
+
+ }
+
+ @undoBatch
@action
protected drop(e: Event, de: DragManager.DropEvent): boolean {
+ const docDragData = de.complete.docDragData;
(this.props.Document.dropConverter instanceof ScriptField) &&
- this.props.Document.dropConverter.script.run({ dragData: de.data });
- if (de.data instanceof DragManager.DocumentDragData && !de.data.applyAsTemplate) {
- if (de.mods === "AltKey" && de.data.draggedDocuments.length) {
+ this.props.Document.dropConverter.script.run({ dragData: docDragData }); /// bcz: check this
+ if (docDragData && !docDragData.applyAsTemplate) {
+ if (de.altKey && docDragData.draggedDocuments.length) {
this.childDocs.map(doc =>
- Doc.ApplyTemplateTo(de.data.draggedDocuments[0], doc, "layoutFromParent"));
+ Doc.ApplyTemplateTo(docDragData.draggedDocuments[0], doc, "layout_fromParent"));
e.stopPropagation();
return true;
}
let added = false;
- if (de.data.dropAction || de.data.userDropAction) {
- added = de.data.droppedDocuments.reduce((added: boolean, d) => this.props.addDocument(d) || added, false);
- } else if (de.data.moveDocument) {
- let movedDocs = de.data.draggedDocuments;
+ if (docDragData.dropAction || docDragData.userDropAction) {
+ added = docDragData.droppedDocuments.reduce((added: boolean, d) => this.props.addDocument(d) || added, false);
+ } else if (docDragData.moveDocument) {
+ const movedDocs = docDragData.draggedDocuments;
added = movedDocs.reduce((added: boolean, d, i) =>
- de.data.droppedDocuments[i] !== d ? this.props.addDocument(de.data.droppedDocuments[i]) :
- de.data.moveDocument(d, this.props.Document, this.props.addDocument) || added, false);
+ docDragData.droppedDocuments[i] !== d ? this.props.addDocument(docDragData.droppedDocuments[i]) :
+ docDragData.moveDocument?.(d, this.props.Document, this.props.addDocument) || added, false);
} else {
- added = de.data.droppedDocuments.reduce((added: boolean, d) => this.props.addDocument(d) || added, false);
+ added = docDragData.droppedDocuments.reduce((added: boolean, d) => this.props.addDocument(d) || added, false);
}
e.stopPropagation();
return added;
}
- else if (de.data instanceof DragManager.AnnotationDragData) {
+ else if (de.complete.annoDragData) {
e.stopPropagation();
- return this.props.addDocument(de.data.dropDocument);
+ return this.props.addDocument(de.complete.annoDragData.dropDocument);
}
return false;
}
@@ -169,8 +215,8 @@ export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
e.stopPropagation(); // bcz: this is a hack to stop propagation when dropping an image on a text document with shift+ctrl
return;
}
- let html = e.dataTransfer.getData("text/html");
- let text = e.dataTransfer.getData("text/plain");
+ const html = e.dataTransfer.getData("text/html");
+ const text = e.dataTransfer.getData("text/plain");
if (text && text.startsWith("<div")) {
return;
@@ -179,9 +225,9 @@ export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
e.preventDefault();
if (html && FormattedTextBox.IsFragment(html)) {
- let href = FormattedTextBox.GetHref(html);
+ const href = FormattedTextBox.GetHref(html);
if (href) {
- let docid = FormattedTextBox.GetDocFromUrl(href);
+ const docid = FormattedTextBox.GetDocFromUrl(href);
if (docid) { // prosemirror text containing link to dash document
DocServer.GetRefField(docid).then(f => {
if (f instanceof Doc) {
@@ -190,27 +236,27 @@ export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
}
});
} else {
- this.props.addDocument && this.props.addDocument(Docs.Create.WebDocument(href, options));
+ this.props.addDocument && this.props.addDocument(Docs.Create.WebDocument(href, { ...options, title: href }));
}
} else if (text) {
- this.props.addDocument && this.props.addDocument(Docs.Create.TextDocument({ ...options, width: 100, height: 25, documentText: "@@@" + text }));
+ this.props.addDocument && this.props.addDocument(Docs.Create.TextDocument(text, { ...options, _width: 100, _height: 25 }));
}
return;
}
if (html && !html.startsWith("<a")) {
- let tags = html.split("<");
+ const tags = html.split("<");
if (tags[0] === "") tags.splice(0, 1);
- let img = tags[0].startsWith("img") ? tags[0] : tags.length > 1 && tags[1].startsWith("img") ? tags[1] : "";
+ const img = tags[0].startsWith("img") ? tags[0] : tags.length > 1 && tags[1].startsWith("img") ? tags[1] : "";
if (img) {
- let split = img.split("src=\"")[1].split("\"")[0];
- let doc = Docs.Create.ImageDocument(split, { ...options, width: 300 });
+ const split = img.split("src=\"")[1].split("\"")[0];
+ const doc = Docs.Create.ImageDocument(split, { ...options, _width: 300 });
ImageUtils.ExtractExif(doc);
this.props.addDocument(doc);
return;
} else {
- let path = window.location.origin + "/doc/";
+ const path = window.location.origin + "/doc/";
if (text.startsWith(path)) {
- let docid = text.replace(Utils.prepend("/doc/"), "").split("?")[0];
+ const docid = text.replace(Utils.prepend("/doc/"), "").split("?")[0];
DocServer.GetRefField(docid).then(f => {
if (f instanceof Doc) {
if (options.x || options.y) { f.x = options.x; f.y = options.y; } // should be in CollectionFreeFormView
@@ -218,7 +264,7 @@ export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
}
});
} else {
- let htmlDoc = Docs.Create.HtmlDocument(html, { ...options, width: 300, height: 300, documentText: text });
+ const htmlDoc = Docs.Create.HtmlDocument(html, { ...options, title: "-web page-", _width: 300, _height: 300, documentText: text });
this.props.addDocument(htmlDoc);
}
return;
@@ -226,13 +272,13 @@ export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
}
if (text && text.indexOf("www.youtube.com/watch") !== -1) {
const url = text.replace("youtube.com/watch?v=", "youtube.com/embed/");
- this.props.addDocument(Docs.Create.VideoDocument(url, { ...options, title: url, width: 400, height: 315, nativeWidth: 600, nativeHeight: 472.5 }));
+ this.props.addDocument(Docs.Create.VideoDocument(url, { ...options, title: url, _width: 400, _height: 315, _nativeWidth: 600, _nativeHeight: 472.5 }));
return;
}
let matches: RegExpExecArray | null;
if ((matches = /(https:\/\/)?docs\.google\.com\/document\/d\/([^\\]+)\/edit/g.exec(text)) !== null) {
- let newBox = Docs.Create.TextDocument({ ...options, width: 400, height: 200, title: "Awaiting title from Google Docs..." });
- let proto = newBox.proto!;
+ const newBox = Docs.Create.TextDocument("", { ...options, _width: 400, _height: 200, title: "Awaiting title from Google Docs..." });
+ const proto = newBox.proto!;
const documentId = matches[2];
proto[GoogleRef] = documentId;
proto.data = "Please select this document and then click on its pull button to load its contents from from Google Docs...";
@@ -249,59 +295,61 @@ export function CollectionSubView<T>(schemaCtor: (doc: Doc) => T) {
const mediaItems = await GooglePhotos.Query.AlbumSearch(albumId);
console.log(mediaItems);
}
- let batch = UndoManager.StartBatch("collection view drop");
- let promises: Promise<void>[] = [];
+ const batch = UndoManager.StartBatch("collection view drop");
+ const promises: Promise<void>[] = [];
// tslint:disable-next-line:prefer-for-of
for (let i = 0; i < e.dataTransfer.items.length; i++) {
- const upload = window.location.origin + RouteStore.upload;
- let item = e.dataTransfer.items[i];
+ const item = e.dataTransfer.items[i];
if (item.kind === "string" && item.type.indexOf("uri") !== -1) {
let str: string;
- let prom = new Promise<string>(resolve => e.dataTransfer.items[i].getAsString(resolve))
+ const prom = new Promise<string>(resolve => e.dataTransfer.items[i].getAsString(resolve))
.then(action((s: string) => rp.head(Utils.CorsProxy(str = s))))
.then(result => {
- let type = result["content-type"];
+ const type = result["content-type"];
if (type) {
- Docs.Get.DocumentFromType(type, str, { ...options, width: 300, nativeWidth: type.indexOf("video") !== -1 ? 600 : 300 })
+ Docs.Get.DocumentFromType(type, str, options)
.then(doc => doc && this.props.addDocument(doc));
}
});
promises.push(prom);
}
- let type = item.type;
+ const type = item.type;
if (item.kind === "file") {
- let file = item.getAsFile();
- let formData = new FormData();
+ const file = item.getAsFile();
+ const formData = new FormData();
- if (file) {
- formData.append('file', file);
+ if (!file || !file.type) {
+ continue;
}
- let dropFileName = file ? file.name : "-empty-";
- let prom = fetch(upload, {
- method: 'POST',
- body: formData
- }).then(async (res: Response) => {
- (await res.json()).map(action((file: any) => {
- let full = { ...options, nativeWidth: type.indexOf("video") !== -1 ? 600 : 300, width: 300, title: dropFileName };
- let pathname = Utils.prepend(file.path);
+ formData.append('file', file);
+ const dropFileName = file ? file.name : "-empty-";
+ promises.push(Networking.PostFormDataToServer("/uploadFormData", formData).then(results => {
+ results.map(action((result: any) => {
+ const { clientAccessPath, nativeWidth, nativeHeight, contentSize } = result;
+ const full = { ...options, _width: 300, title: dropFileName };
+ const pathname = Utils.prepend(clientAccessPath);
Docs.Get.DocumentFromType(type, pathname, full).then(doc => {
- doc && (Doc.GetProto(doc).fileUpload = path.basename(pathname).replace("upload_", "").replace(/\.[a-z0-9]*$/, ""));
- doc && this.props.addDocument(doc);
+ if (doc) {
+ const proto = Doc.GetProto(doc);
+ proto.fileUpload = basename(pathname).replace("upload_", "").replace(/\.[a-z0-9]*$/, "");
+ nativeWidth && (proto["data-nativeWidth"] = nativeWidth);
+ nativeHeight && (proto["data-nativeHeight"] = nativeHeight);
+ contentSize && (proto.contentSize = contentSize);
+ this.props.addDocument(doc);
+ }
});
}));
- });
- promises.push(prom);
+ }));
}
}
- if (text) {
- this.props.addDocument(Docs.Create.TextDocument({ ...options, documentText: "@@@" + text, width: 400, height: 315 }));
- return;
- }
if (promises.length) {
Promise.all(promises).finally(() => { completed && completed(); batch.end(); });
} else {
+ if (text && !text.includes("https://")) {
+ this.props.addDocument(Docs.Create.TextDocument(text, { ...options, _width: 400, _height: 315 }));
+ }
batch.end();
}
}
diff --git a/src/client/views/collections/CollectionTreeView.scss b/src/client/views/collections/CollectionTreeView.scss
index 7d0c900a6..2fa6813d7 100644
--- a/src/client/views/collections/CollectionTreeView.scss
+++ b/src/client/views/collections/CollectionTreeView.scss
@@ -7,15 +7,17 @@
border-radius: inherit;
box-sizing: border-box;
height: 100%;
- width:100%;
+ width: 100%;
position: relative;
- top:0;
+ top: 0;
padding-left: 10px;
padding-right: 10px;
background: $light-color-secondary;
font-size: 13px;
overflow: auto;
+ user-select: none;
cursor: default;
+ touch-action: pan-y;
ul {
list-style: none;
@@ -114,6 +116,10 @@
.treeViewItem-header {
border: transparent 1px solid;
display: flex;
+
+ .editableView-container-editing-oneLine {
+ min-width: 15px;
+ }
}
.treeViewItem-header-above {
diff --git a/src/client/views/collections/CollectionTreeView.tsx b/src/client/views/collections/CollectionTreeView.tsx
index 0e3f0d1a9..a7733ab5f 100644
--- a/src/client/views/collections/CollectionTreeView.tsx
+++ b/src/client/views/collections/CollectionTreeView.tsx
@@ -1,19 +1,22 @@
import { library } from '@fortawesome/fontawesome-svg-core';
import { faAngleRight, faArrowsAltH, faBell, faCamera, faCaretDown, faCaretRight, faCaretSquareDown, faCaretSquareRight, faExpand, faMinus, faPlus, faTrash, faTrashAlt } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
-import { action, computed, observable } from "mobx";
+import { action, computed, observable, runInAction, untracked } from "mobx";
import { observer } from "mobx-react";
-import { Doc, DocListCast, Field, HeightSym, Opt, WidthSym } from '../../../new_fields/Doc';
+import { Doc, DocListCast, Field, HeightSym, WidthSym } from '../../../new_fields/Doc';
import { Id } from '../../../new_fields/FieldSymbols';
import { List } from '../../../new_fields/List';
import { Document, listSpec } from '../../../new_fields/Schema';
import { ComputedField, ScriptField } from '../../../new_fields/ScriptField';
-import { BoolCast, Cast, NumCast, StrCast } from '../../../new_fields/Types';
-import { emptyFunction, Utils, returnFalse } from '../../../Utils';
+import { BoolCast, Cast, NumCast, ScriptCast, StrCast } from '../../../new_fields/Types';
+import { CurrentUserUtils } from '../../../server/authentication/models/current_user_utils';
+import { emptyFunction, emptyPath, returnFalse, Utils } from '../../../Utils';
import { Docs, DocUtils } from '../../documents/Documents';
import { DocumentType } from "../../documents/DocumentTypes";
import { DocumentManager } from '../../util/DocumentManager';
import { DragManager, dropActionType, SetupDrag } from "../../util/DragManager";
+import { makeTemplate } from '../../util/DropConverter';
+import { Scripting } from '../../util/Scripting';
import { SelectionManager } from '../../util/SelectionManager';
import { Transform } from '../../util/Transform';
import { undoBatch } from '../../util/UndoManager';
@@ -21,38 +24,46 @@ import { ContextMenu } from '../ContextMenu';
import { ContextMenuProps } from '../ContextMenuItem';
import { EditableView } from "../EditableView";
import { MainView } from '../MainView';
+import { ContentFittingDocumentView } from '../nodes/ContentFittingDocumentView';
+import { ImageBox } from '../nodes/ImageBox';
import { KeyValueBox } from '../nodes/KeyValueBox';
+import { ScriptBox } from '../ScriptBox';
import { Templates } from '../Templates';
-import { ContentFittingDocumentView } from '../nodes/ContentFittingDocumentView';
import { CollectionSubView } from "./CollectionSubView";
import "./CollectionTreeView.scss";
import React = require("react");
-import { CurrentUserUtils } from '../../../server/authentication/models/current_user_utils';
+import { CollectionViewType } from './CollectionView';
+import { RichTextField } from '../../../new_fields/RichTextField';
+import { ObjectField } from '../../../new_fields/ObjectField';
export interface TreeViewProps {
document: Doc;
dataDoc?: Doc;
+ libraryPath: Doc[] | undefined;
containingCollection: Doc;
+ prevSibling?: Doc;
renderDepth: number;
deleteDoc: (doc: Doc) => boolean;
- ruleProvider: Doc | undefined;
moveDocument: DragManager.MoveFunction;
dropAction: "alias" | "copy" | undefined;
- addDocTab: (doc: Doc, dataDoc: Doc | undefined, where: string) => boolean;
+ addDocTab: (doc: Doc, dataDoc: Doc | undefined, where: string, libraryPath?: Doc[]) => boolean;
pinToPres: (document: Doc) => void;
panelWidth: () => number;
panelHeight: () => number;
+ ChromeHeight: undefined | (() => number);
addDocument: (doc: Doc, relativeTo?: Doc, before?: boolean) => boolean;
indentDocument?: () => void;
+ outdentDocument?: () => void;
ScreenToLocalTransform: () => Transform;
outerXf: () => { translateX: number, translateY: number };
- treeViewId: string;
+ treeViewId: Doc;
parentKey: string;
- active: () => boolean;
- showHeaderFields: () => boolean;
+ active: (outsideReaction?: boolean) => boolean;
+ hideHeaderFields: () => boolean;
preventTreeViewOpen: boolean;
renderedIds: string[];
+ onCheckedClick?: ScriptField;
}
library.add(faTrashAlt);
@@ -81,19 +92,22 @@ class TreeView extends React.Component<TreeViewProps> {
private _header?: React.RefObject<HTMLDivElement> = React.createRef();
private _treedropDisposer?: DragManager.DragDropDisposer;
private _dref = React.createRef<HTMLDivElement>();
+
+ get displayName() { return "TreeView(" + this.props.document.title + ")"; } // this makes mobx trace() statements more descriptive
+
get defaultExpandedView() { return this.childDocs ? this.fieldKey : StrCast(this.props.document.defaultExpandedView, "fields"); }
@observable _overrideTreeViewOpen = false; // override of the treeViewOpen field allowing the display state to be independent of the document's state
- set treeViewOpen(c: boolean) { if (this.props.preventTreeViewOpen) this._overrideTreeViewOpen = c; else this.props.document.treeViewOpen = c; }
- @computed get treeViewOpen() { return (BoolCast(this.props.document.treeViewOpen) && !this.props.preventTreeViewOpen) || this._overrideTreeViewOpen; }
+ set treeViewOpen(c: boolean) { if (this.props.preventTreeViewOpen) this._overrideTreeViewOpen = c; else this.props.document.treeViewOpen = this._overrideTreeViewOpen = c; }
+ @computed get treeViewOpen() { return (!this.props.preventTreeViewOpen && BoolCast(this.props.document.treeViewOpen)) || this._overrideTreeViewOpen; }
@computed get treeViewExpandedView() { return StrCast(this.props.document.treeViewExpandedView, this.defaultExpandedView); }
@computed get MAX_EMBED_HEIGHT() { return NumCast(this.props.document.maxEmbedHeight, 300); }
@computed get dataDoc() { return this.templateDataDoc ? this.templateDataDoc : this.props.document; }
@computed get fieldKey() {
- let splits = StrCast(Doc.LayoutField(this.props.document)).split("fieldKey={\"");
- return splits.length > 1 ? splits[1].split("\"")[0] : "data";
+ const splits = StrCast(Doc.LayoutField(this.props.document)).split("fieldKey={\'");
+ return splits.length > 1 ? splits[1].split("\'")[0] : "data";
}
childDocList(field: string) {
- let layout = Doc.LayoutField(this.props.document) instanceof Doc ? Doc.LayoutField(this.props.document) as Doc : undefined;
+ const layout = Doc.LayoutField(this.props.document) instanceof Doc ? Doc.LayoutField(this.props.document) as Doc : undefined;
return ((this.props.dataDoc ? Cast(this.props.dataDoc[field], listSpec(Doc)) : undefined) ||
(layout ? Cast(layout[field], listSpec(Doc)) : undefined) ||
Cast(this.props.document[field], listSpec(Doc))) as Doc[];
@@ -109,14 +123,14 @@ class TreeView extends React.Component<TreeViewProps> {
return this.props.dataDoc;
}
@computed get boundsOfCollectionDocument() {
- return StrCast(this.props.document.type).indexOf(DocumentType.COL) === -1 ? undefined :
+ return StrCast(this.props.document.type).indexOf(DocumentType.COL) === -1 || !DocListCast(this.props.document[this.fieldKey]).length ? undefined :
Doc.ComputeContentBounds(DocListCast(this.props.document[this.fieldKey]));
}
@undoBatch delete = () => this.props.deleteDoc(this.props.document);
- @undoBatch openRight = () => this.props.addDocTab(this.props.document, this.templateDataDoc, "onRight");
+ @undoBatch openRight = () => this.props.addDocTab(this.props.document, this.templateDataDoc, "onRight", this.props.libraryPath);
@undoBatch indent = () => this.props.addDocument(this.props.document) && this.delete();
- @undoBatch move = (doc: Doc, target: Doc, addDoc: (doc: Doc) => boolean) => {
+ @undoBatch move = (doc: Doc, target: Doc | undefined, addDoc: (doc: Doc) => boolean) => {
return this.props.document !== target && this.props.deleteDoc(doc) && addDoc(doc);
}
@undoBatch @action remove = (document: Document, key: string) => {
@@ -125,12 +139,12 @@ class TreeView extends React.Component<TreeViewProps> {
protected createTreeDropTarget = (ele: HTMLDivElement) => {
this._treedropDisposer && this._treedropDisposer();
- ele && (this._treedropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.treeDrop.bind(this) } }));
+ ele && (this._treedropDisposer = DragManager.MakeDropTarget(ele, this.treeDrop.bind(this)));
}
onPointerDown = (e: React.PointerEvent) => e.stopPropagation();
onPointerEnter = (e: React.PointerEvent): void => {
- this.props.active() && Doc.BrushDoc(this.dataDoc);
+ this.props.active(true) && Doc.BrushDoc(this.dataDoc);
if (e.buttons === 1 && SelectionManager.GetIsDragging()) {
this._header!.current!.className = "treeViewItem-header";
document.addEventListener("pointermove", this.onDragMove, true);
@@ -143,11 +157,10 @@ class TreeView extends React.Component<TreeViewProps> {
}
onDragMove = (e: PointerEvent): void => {
Doc.UnBrushDoc(this.dataDoc);
- let x = this.props.ScreenToLocalTransform().transformPoint(e.clientX, e.clientY);
- let rect = this._header!.current!.getBoundingClientRect();
- let bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left, rect.top + rect.height / 2);
- let before = x[1] < bounds[1];
- let inside = x[0] > bounds[0] + 75;
+ const pt = [e.clientX, e.clientY];
+ const rect = this._header!.current!.getBoundingClientRect();
+ const before = pt[1] < rect.top + rect.height / 2;
+ const inside = pt[0] > Math.min(rect.left + 75, rect.left + rect.width * .75) || (!before && this.treeViewOpen && DocListCast(this.dataDoc[this.fieldKey]).length);
this._header!.current!.className = "treeViewItem-header";
if (inside) this._header!.current!.className += " treeViewItem-header-inside";
else if (before) this._header!.current!.className += " treeViewItem-header-above";
@@ -157,22 +170,30 @@ class TreeView extends React.Component<TreeViewProps> {
editableView = (key: string, style?: string) => (<EditableView
oneLine={true}
- display={"inline"}
+ display={"inline-block"}
editing={this.dataDoc[Id] === TreeView.loadId}
contents={StrCast(this.props.document[key])}
- height={36}
+ height={12}
fontStyle={style}
fontSize={12}
GetValue={() => StrCast(this.props.document[key])}
SetValue={undoBatch((value: string) => Doc.SetInPlace(this.props.document, key, value, false) || true)}
OnFillDown={undoBatch((value: string) => {
Doc.SetInPlace(this.props.document, key, value, false);
- let doc = this.props.document.layoutCustom instanceof Doc ? Doc.ApplyTemplate(Doc.GetProto(this.props.document.layoutCustom)) : undefined;
- if (!doc) doc = Docs.Create.FreeformDocument([], { title: "", x: 0, y: 0, width: 100, height: 25, templates: new List<string>([Templates.Title.Layout]) });
+ const layoutDoc = this.props.document.layout_custom instanceof Doc ? Doc.ApplyTemplate(Doc.GetProto(this.props.document.layout_custom)) : undefined;
+ const doc = layoutDoc || Docs.Create.FreeformDocument([], { title: "", x: 0, y: 0, _width: 100, _height: 25, templates: new List<string>([Templates.Title.Layout]) });
TreeView.loadId = doc[Id];
return this.props.addDocument(doc);
})}
- OnTab={() => { TreeView.loadId = ""; this.props.indentDocument && this.props.indentDocument(); }}
+ OnTab={undoBatch((shift?: boolean) => {
+ TreeView.loadId = this.dataDoc[Id];
+ shift ? this.props.outdentDocument?.() : this.props.indentDocument?.();
+ setTimeout(() => { // unsetting/setting brushing for this doc will recreate & refocus this editableView after all other treeview changes have been made to the Dom (which may remove focus from this document).
+ Doc.UnBrushDoc(this.props.document);
+ Doc.BrushDoc(this.props.document);
+ TreeView.loadId = "";
+ }, 0);
+ })}
/>)
onWorkspaceContextMenu = (e: React.MouseEvent): void => {
@@ -181,18 +202,17 @@ class TreeView extends React.Component<TreeViewProps> {
ContextMenu.Instance.addItem({ description: "Clear All", event: () => Doc.GetProto(CurrentUserUtils.UserDocument.recentlyClosed as Doc).data = new List<Doc>(), icon: "plus" });
} else if (this.props.document !== CurrentUserUtils.UserDocument.workspaces) {
ContextMenu.Instance.addItem({ description: "Pin to Presentation", event: () => this.props.pinToPres(this.props.document), icon: "tv" });
- ContextMenu.Instance.addItem({ description: "Open Tab", event: () => this.props.addDocTab(this.props.document, this.templateDataDoc, "inTab"), icon: "folder" });
- ContextMenu.Instance.addItem({ description: "Open Right", event: () => this.props.addDocTab(this.props.document, this.templateDataDoc, "onRight"), icon: "caret-square-right" });
+ ContextMenu.Instance.addItem({ description: "Open Tab", event: () => this.props.addDocTab(this.props.document, this.templateDataDoc, "inTab", this.props.libraryPath), icon: "folder" });
+ ContextMenu.Instance.addItem({ description: "Open Right", event: () => this.props.addDocTab(this.props.document, this.templateDataDoc, "onRight", this.props.libraryPath), icon: "caret-square-right" });
if (DocumentManager.Instance.getDocumentViews(this.dataDoc).length) {
- ContextMenu.Instance.addItem({ description: "Focus", event: () => (view => view && view.props.focus(this.props.document, true))(DocumentManager.Instance.getFirstDocumentView(this.dataDoc)), icon: "camera" });
+ ContextMenu.Instance.addItem({ description: "Focus", event: () => (view => view && view.props.focus(this.props.document, true))(DocumentManager.Instance.getFirstDocumentView(this.props.document)), icon: "camera" });
}
ContextMenu.Instance.addItem({ description: "Delete Item", event: () => this.props.deleteDoc(this.props.document), icon: "trash-alt" });
} else {
- ContextMenu.Instance.addItem({ description: "Open as Workspace", event: () => MainView.Instance.openWorkspace(this.dataDoc), icon: "caret-square-right" });
ContextMenu.Instance.addItem({ description: "Delete Workspace", event: () => this.props.deleteDoc(this.props.document), icon: "trash-alt" });
ContextMenu.Instance.addItem({ description: "Create New Workspace", event: () => MainView.Instance.createNewWorkspace(), icon: "plus" });
}
- ContextMenu.Instance.addItem({ description: "Open Fields", event: () => { let kvp = Docs.Create.KVPDocument(this.props.document, { width: 300, height: 300 }); this.props.addDocTab(kvp, this.props.dataDoc ? this.props.dataDoc : kvp, "onRight"); }, icon: "layer-group" });
+ ContextMenu.Instance.addItem({ description: "Open Fields", event: () => { const kvp = Docs.Create.KVPDocument(this.props.document, { _width: 300, _height: 300 }); this.props.addDocTab(kvp, this.props.dataDoc ? this.props.dataDoc : kvp, "onRight"); }, icon: "layer-group" });
ContextMenu.Instance.addItem({ description: "Publish", event: () => DocUtils.Publish(this.props.document, StrCast(this.props.document.title), () => { }, () => { }), icon: "file" });
ContextMenu.Instance.displayMenu(e.pageX > 156 ? e.pageX - 156 : 0, e.pageY - 15);
e.stopPropagation();
@@ -202,78 +222,78 @@ class TreeView extends React.Component<TreeViewProps> {
@undoBatch
treeDrop = (e: Event, de: DragManager.DropEvent) => {
- let x = this.props.ScreenToLocalTransform().transformPoint(de.x, de.y);
- let rect = this._header!.current!.getBoundingClientRect();
- let bounds = this.props.ScreenToLocalTransform().transformPoint(rect.left, rect.top + rect.height / 2);
- let before = x[1] < bounds[1];
- let inside = x[0] > bounds[0] + 75 || (!before && this.treeViewOpen);
- if (de.data instanceof DragManager.LinkDragData) {
- let sourceDoc = de.data.linkSourceDocument;
- let destDoc = this.props.document;
+ const pt = [de.x, de.y];
+ const rect = this._header!.current!.getBoundingClientRect();
+ const before = pt[1] < rect.top + rect.height / 2;
+ const inside = pt[0] > Math.min(rect.left + 75, rect.left + rect.width * .75) || (!before && this.treeViewOpen && DocListCast(this.dataDoc[this.fieldKey]).length);
+ if (de.complete.linkDragData) {
+ const sourceDoc = de.complete.linkDragData.linkSourceDocument;
+ const destDoc = this.props.document;
DocUtils.MakeLink({ doc: sourceDoc }, { doc: destDoc });
e.stopPropagation();
}
- if (de.data instanceof DragManager.DocumentDragData) {
+ if (de.complete.docDragData) {
e.stopPropagation();
- if (de.data.draggedDocuments[0] === this.props.document) return true;
+ if (de.complete.docDragData.draggedDocuments[0] === this.props.document) return true;
let addDoc = (doc: Doc) => this.props.addDocument(doc, undefined, before);
if (inside) {
addDoc = (doc: Doc) => Doc.AddDocToList(this.dataDoc, this.fieldKey, doc) || addDoc(doc);
}
- let movedDocs = (de.data.options === this.props.treeViewId ? de.data.draggedDocuments : de.data.droppedDocuments);
- return (de.data.dropAction || de.data.userDropAction) ?
- de.data.droppedDocuments.reduce((added, d) => addDoc(d) || added, false)
- : de.data.moveDocument ?
- movedDocs.reduce((added, d) => de.data.moveDocument(d, undefined, addDoc) || added, false)
- : de.data.droppedDocuments.reduce((added, d) => addDoc(d), false);
+ const movedDocs = (de.complete.docDragData.treeViewId === this.props.treeViewId[Id] ? de.complete.docDragData.draggedDocuments : de.complete.docDragData.droppedDocuments);
+ return ((de.complete.docDragData.dropAction && (de.complete.docDragData.treeViewId !== this.props.treeViewId[Id])) || de.complete.docDragData.userDropAction) ?
+ de.complete.docDragData.droppedDocuments.reduce((added, d) => addDoc(d) || added, false)
+ : de.complete.docDragData.moveDocument ?
+ movedDocs.reduce((added, d) => de.complete.docDragData?.moveDocument?.(d, undefined, addDoc) || added, false)
+ : de.complete.docDragData.droppedDocuments.reduce((added, d) => addDoc(d), false);
}
return false;
}
docTransform = () => {
- let { scale, translateX, translateY } = Utils.GetScreenTransform(this._dref.current!);
- let outerXf = this.props.outerXf();
- let offset = this.props.ScreenToLocalTransform().transformDirection(outerXf.translateX - translateX, outerXf.translateY - translateY);
- let finalXf = this.props.ScreenToLocalTransform().translate(offset[0], offset[1]);
+ const { scale, translateX, translateY } = Utils.GetScreenTransform(this._dref.current!);
+ const outerXf = this.props.outerXf();
+ const offset = this.props.ScreenToLocalTransform().transformDirection(outerXf.translateX - translateX, outerXf.translateY - translateY);
+ const finalXf = this.props.ScreenToLocalTransform().translate(offset[0], offset[1] + (this.props.ChromeHeight && this.props.ChromeHeight() < 0 ? this.props.ChromeHeight() : 0));
return finalXf;
}
docWidth = () => {
- let layoutDoc = Doc.Layout(this.props.document);
- let aspect = NumCast(layoutDoc.nativeHeight) / NumCast(layoutDoc.nativeWidth);
+ const layoutDoc = Doc.Layout(this.props.document);
+ const aspect = NumCast(layoutDoc._nativeHeight) / NumCast(layoutDoc._nativeWidth);
if (aspect) return Math.min(layoutDoc[WidthSym](), Math.min(this.MAX_EMBED_HEIGHT / aspect, this.props.panelWidth() - 20));
- return NumCast(layoutDoc.nativeWidth) ? Math.min(layoutDoc[WidthSym](), this.props.panelWidth() - 20) : this.props.panelWidth() - 20;
+ return NumCast(layoutDoc._nativeWidth) ? Math.min(layoutDoc[WidthSym](), this.props.panelWidth() - 20) : this.props.panelWidth() - 20;
}
docHeight = () => {
- let layoutDoc = Doc.Layout(this.props.document);
- let bounds = this.boundsOfCollectionDocument;
+ const layoutDoc = Doc.Layout(this.props.document);
+ const bounds = this.boundsOfCollectionDocument;
return Math.min(this.MAX_EMBED_HEIGHT, (() => {
- let aspect = NumCast(layoutDoc.nativeHeight) / NumCast(layoutDoc.nativeWidth, 1);
+ const aspect = NumCast(layoutDoc._nativeHeight) / NumCast(layoutDoc._nativeWidth, 1);
if (aspect) return this.docWidth() * aspect;
if (bounds) return this.docWidth() * (bounds.b - bounds.y) / (bounds.r - bounds.x);
- return layoutDoc.fitWidth ? (!this.props.document.nativeHeight ? NumCast(this.props.containingCollection.height) :
- Math.min(this.docWidth() * NumCast(layoutDoc.scrollHeight, NumCast(layoutDoc.nativeHeight)) / NumCast(layoutDoc.nativeWidth,
- NumCast(this.props.containingCollection.height)))) :
- NumCast(layoutDoc.height) ? NumCast(layoutDoc.height) : 50;
+ return layoutDoc._fitWidth ? (!this.props.document.nativeHeight ? NumCast(this.props.containingCollection._height) :
+ Math.min(this.docWidth() * NumCast(layoutDoc.scrollHeight, NumCast(layoutDoc._nativeHeight)) / NumCast(layoutDoc._nativeWidth,
+ NumCast(this.props.containingCollection._height)))) :
+ NumCast(layoutDoc._height) ? NumCast(layoutDoc._height) : 50;
})());
}
- expandedField = (doc: Doc) => {
- let ids: { [key: string]: string } = {};
+ @computed get expandedField() {
+ const ids: { [key: string]: string } = {};
+ const doc = this.props.document;
doc && Object.keys(doc).forEach(key => !(key in ids) && doc[key] !== ComputedField.undefined && (ids[key] = key));
- let rows: JSX.Element[] = [];
- for (let key of Object.keys(ids).slice().sort()) {
- let contents = doc[key];
+ const rows: JSX.Element[] = [];
+ for (const key of Object.keys(ids).slice().sort()) {
+ const contents = doc[key];
let contentElement: (JSX.Element | null)[] | JSX.Element = [];
- if (contents instanceof Doc || Cast(contents, listSpec(Doc))) {
- let remDoc = (doc: Doc) => this.remove(doc, key);
- let addDoc = (doc: Doc, addBefore?: Doc, before?: boolean) => Doc.AddDocToList(this.dataDoc, key, doc, addBefore, before, false, true);
+ if (contents instanceof Doc || (Cast(contents, listSpec(Doc)) && (Cast(contents, listSpec(Doc))!.length && Cast(contents, listSpec(Doc))![0] instanceof Doc))) {
+ const remDoc = (doc: Doc) => this.remove(doc, key);
+ const addDoc = (doc: Doc, addBefore?: Doc, before?: boolean) => Doc.AddDocToList(this.dataDoc, key, doc, addBefore, before, false, true);
contentElement = TreeView.GetChildElements(contents instanceof Doc ? [contents] :
- DocListCast(contents), this.props.treeViewId, doc, undefined, key, addDoc, remDoc, this.move,
+ DocListCast(contents), this.props.treeViewId, doc, undefined, key, this.props.containingCollection, this.props.prevSibling, addDoc, remDoc, this.move,
this.props.dropAction, this.props.addDocTab, this.props.pinToPres, this.props.ScreenToLocalTransform, this.props.outerXf, this.props.active,
- this.props.panelWidth, this.props.renderDepth, this.props.showHeaderFields, this.props.preventTreeViewOpen,
- [...this.props.renderedIds, doc[Id]]);
+ this.props.panelWidth, this.props.ChromeHeight, this.props.renderDepth, this.props.hideHeaderFields, this.props.preventTreeViewOpen,
+ [...this.props.renderedIds, doc[Id]], this.props.libraryPath, this.props.onCheckedClick);
} else {
contentElement = <EditableView
key="editableView"
@@ -281,7 +301,7 @@ class TreeView extends React.Component<TreeViewProps> {
height={13}
fontSize={12}
GetValue={() => Field.toKeyValueString(doc, key)}
- SetValue={(value: string) => KeyValueBox.SetField(doc, key, value)} />;
+ SetValue={(value: string) => KeyValueBox.SetField(doc, key, value, true)} />;
}
rows.push(<div style={{ display: "flex" }} key={key}>
<span style={{ fontWeight: "bold" }}>{key + ":"}</span>
@@ -289,38 +309,47 @@ class TreeView extends React.Component<TreeViewProps> {
{contentElement}
</div>);
}
+ rows.push(<div style={{ display: "flex" }} key={"newKeyValue"}>
+ <EditableView
+ key="editableView"
+ contents={"+key:value"}
+ height={13}
+ fontSize={12}
+ GetValue={() => ""}
+ SetValue={(value: string) => {
+ value.indexOf(":") !== -1 && KeyValueBox.SetField(doc, value.substring(0, value.indexOf(":")), value.substring(value.indexOf(":") + 1, value.length), true);
+ return true;
+ }} />
+ </div>);
return rows;
}
- noOverlays = (doc: Doc) => ({ title: "", caption: "" });
-
@computed get renderContent() {
const expandKey = this.treeViewExpandedView === this.fieldKey ? this.fieldKey : this.treeViewExpandedView === "links" ? "links" : undefined;
if (expandKey !== undefined) {
- let remDoc = (doc: Doc) => this.remove(doc, expandKey);
- let addDoc = (doc: Doc, addBefore?: Doc, before?: boolean) => Doc.AddDocToList(this.dataDoc, expandKey, doc, addBefore, before, false, true);
- let docs = expandKey === "links" ? this.childLinks : this.childDocs;
+ const remDoc = (doc: Doc) => this.remove(doc, expandKey);
+ const addDoc = (doc: Doc, addBefore?: Doc, before?: boolean) => Doc.AddDocToList(this.dataDoc, expandKey, doc, addBefore, before, false, true);
+ const docs = expandKey === "links" ? this.childLinks : this.childDocs;
return <ul key={expandKey + "more"}>
{!docs ? (null) :
TreeView.GetChildElements(docs, this.props.treeViewId, Doc.Layout(this.props.document),
- this.templateDataDoc, expandKey, addDoc, remDoc, this.move,
+ this.templateDataDoc, expandKey, this.props.containingCollection, this.props.prevSibling, addDoc, remDoc, this.move,
this.props.dropAction, this.props.addDocTab, this.props.pinToPres, this.props.ScreenToLocalTransform,
- this.props.outerXf, this.props.active, this.props.panelWidth, this.props.renderDepth, this.props.showHeaderFields, this.props.preventTreeViewOpen,
- [...this.props.renderedIds, this.props.document[Id]])}
+ this.props.outerXf, this.props.active, this.props.panelWidth, this.props.ChromeHeight, this.props.renderDepth, this.props.hideHeaderFields, this.props.preventTreeViewOpen,
+ [...this.props.renderedIds, this.props.document[Id]], this.props.libraryPath, this.props.onCheckedClick)}
</ul >;
} else if (this.treeViewExpandedView === "fields") {
return <ul><div ref={this._dref} style={{ display: "inline-block" }} key={this.props.document[Id] + this.props.document.title}>
- {this.expandedField(this.props.document)}
+ {this.expandedField}
</div></ul>;
} else {
- let layoutDoc = Doc.Layout(this.props.document);
+ const layoutDoc = Doc.Layout(this.props.document);
return <div ref={this._dref} style={{ display: "inline-block", height: this.docHeight() }} key={this.props.document[Id] + this.props.document.title}>
<ContentFittingDocumentView
Document={layoutDoc}
DataDocument={this.templateDataDoc}
- renderDepth={this.props.renderDepth}
- showOverlays={this.noOverlays}
- ruleProvider={this.props.document.isRuleProvider && layoutDoc.type !== DocumentType.TEXT ? this.props.document : this.props.ruleProvider}
+ LibraryPath={emptyPath}
+ renderDepth={this.props.renderDepth + 1}
fitToBox={this.boundsOfCollectionDocument !== undefined}
PanelWidth={this.docWidth}
PanelHeight={this.docHeight}
@@ -333,16 +362,32 @@ class TreeView extends React.Component<TreeViewProps> {
active={this.props.active}
whenActiveChanged={emptyFunction}
addDocTab={this.props.addDocTab}
- pinToPres={this.props.pinToPres}
- setPreviewScript={emptyFunction} />
+ pinToPres={this.props.pinToPres} />
</div>;
}
}
+ @action
+ bulletClick = (e: React.MouseEvent) => {
+ if (this.props.onCheckedClick && this.props.document.type !== DocumentType.COL) {
+ // this.props.document.treeViewChecked = this.props.document.treeViewChecked === "check" ? "x" : this.props.document.treeViewChecked === "x" ? undefined : "check";
+ ScriptCast(this.props.onCheckedClick).script.run({
+ this: this.props.document.isTemplateForField && this.props.dataDoc ? this.props.dataDoc : this.props.document,
+ heading: this.props.containingCollection.title,
+ checked: this.props.document.treeViewChecked === "check" ? "x" : this.props.document.treeViewChecked === "x" ? undefined : "check",
+ containingTreeView: this.props.treeViewId,
+ }, console.log);
+ } else {
+ this.treeViewOpen = !this.treeViewOpen;
+ }
+ e.stopPropagation();
+ }
+
@computed
get renderBullet() {
- return <div className="bullet" title="view inline" onClick={action((e: React.MouseEvent) => { this.treeViewOpen = !this.treeViewOpen; e.stopPropagation(); })} style={{ color: StrCast(this.props.document.color, "black"), opacity: 0.4 }}>
- {<FontAwesomeIcon icon={!this.treeViewOpen ? (this.childDocs ? "caret-square-right" : "caret-right") : (this.childDocs ? "caret-square-down" : "caret-down")} />}
+ const checked = this.props.document.type === DocumentType.COL ? undefined : this.props.onCheckedClick ? (this.props.document.treeViewChecked ? this.props.document.treeViewChecked : "unchecked") : undefined;
+ return <div className="bullet" title="view inline" onClick={this.bulletClick} style={{ color: StrCast(this.props.document.color, checked === "unchecked" ? "white" : "black"), opacity: 0.4 }}>
+ {<FontAwesomeIcon icon={checked === "check" ? "check" : (checked === "x" ? "times" : checked === "unchecked" ? "square" : !this.treeViewOpen ? (this.childDocs ? "caret-square-right" : "caret-right") : (this.childDocs ? "caret-square-down" : "caret-down"))} />}
</div>;
}
/**
@@ -350,10 +395,10 @@ class TreeView extends React.Component<TreeViewProps> {
*/
@computed
get renderTitle() {
- let reference = React.createRef<HTMLDivElement>();
- let onItemDown = SetupDrag(reference, () => this.dataDoc, this.move, this.props.dropAction, this.props.treeViewId, true);
+ const reference = React.createRef<HTMLDivElement>();
+ const onItemDown = SetupDrag(reference, () => this.dataDoc, this.move, this.props.dropAction, this.props.treeViewId[Id], true);
- let headerElements = (
+ const headerElements = (
<span className="collectionTreeView-keyHeader" key={this.treeViewExpandedView}
onPointerDown={action(() => {
if (this.treeViewOpen) {
@@ -366,26 +411,27 @@ class TreeView extends React.Component<TreeViewProps> {
})}>
{this.treeViewExpandedView}
</span>);
- let openRight = (<div className="treeViewItem-openRight" onPointerDown={this.onPointerDown} onClick={this.openRight}>
+ const openRight = (<div className="treeViewItem-openRight" onPointerDown={this.onPointerDown} onClick={this.openRight}>
<FontAwesomeIcon title="open in pane on right" icon="angle-right" size="lg" />
</div>);
return <>
<div className="docContainer" title="click to edit title" id={`docContainer-${this.props.parentKey}`} ref={reference} onPointerDown={onItemDown}
style={{
color: this.props.document.isMinimized ? "red" : "black",
- background: Doc.IsBrushed(this.props.document) ? "#06121212" : "0",
- fontWeight: this.props.document.search_string ? "bold" : undefined,
+ background: Doc.IsHighlighted(this.props.document) ? "orange" : Doc.IsBrushed(this.props.document) ? "#06121212" : "0",
+ fontWeight: this.props.document.searchMatch ? "bold" : undefined,
outline: BoolCast(this.props.document.workspaceBrush) ? "dashed 1px #06123232" : undefined,
pointerEvents: this.props.active() || SelectionManager.GetIsDragging() ? "all" : "none"
}} >
{this.editableView("title")}
</div >
- {this.props.showHeaderFields() ? headerElements : (null)}
+ {this.props.hideHeaderFields() ? (null) : headerElements}
{openRight}
</>;
}
render() {
+ setTimeout(() => runInAction(() => untracked(() => this._overrideTreeViewOpen = this.treeViewOpen)), 0);
return <div className="treeViewItem-container" ref={this.createTreeDropTarget} onContextMenu={this.onWorkspaceContextMenu}>
<li className="collection-child">
<div className="treeViewItem-header" ref={this._header} onPointerEnter={this.onPointerEnter} onPointerLeave={this.onPointerLeave}>
@@ -399,11 +445,13 @@ class TreeView extends React.Component<TreeViewProps> {
</div>;
}
public static GetChildElements(
- docs: Doc[],
- treeViewId: string,
+ childDocs: Doc[],
+ treeViewId: Doc,
containingCollection: Doc,
dataDoc: Doc | undefined,
key: string,
+ parentCollectionDoc: Doc | undefined,
+ parentPrevSibling: Doc | undefined,
add: (doc: Doc, relativeTo?: Doc, before?: boolean) => boolean,
remove: ((doc: Doc) => boolean),
move: DragManager.MoveFunction,
@@ -412,31 +460,49 @@ class TreeView extends React.Component<TreeViewProps> {
pinToPres: (document: Doc) => void,
screenToLocalXf: () => Transform,
outerXf: () => { translateX: number, translateY: number },
- active: () => boolean,
+ active: (outsideReaction?: boolean) => boolean,
panelWidth: () => number,
+ ChromeHeight: undefined | (() => number),
renderDepth: number,
- showHeaderFields: () => boolean,
+ hideHeaderFields: () => boolean,
preventTreeViewOpen: boolean,
- renderedIds: string[]
+ renderedIds: string[],
+ libraryPath: Doc[] | undefined,
+ onCheckedClick: ScriptField | undefined
) {
const viewSpecScript = Cast(containingCollection.viewSpecScript, ScriptField);
if (viewSpecScript) {
- docs = docs.filter(d => viewSpecScript.script.run({ doc: d }, console.log).result);
+ childDocs = childDocs.filter(d => viewSpecScript.script.run({ doc: d }, console.log).result);
}
- let ascending = Cast(containingCollection.sortAscending, "boolean", null);
+ const docs = childDocs.slice();
+ const dataExtension = containingCollection[key + "_ext"] as Doc;
+ const ascending = dataExtension && BoolCast(dataExtension.sortAscending, null);
if (ascending !== undefined) {
- docs.sort(function (a, b): 1 | -1 {
- let descA = ascending ? b : a;
- let descB = ascending ? a : b;
- let first = descA.title;
- let second = descB.title;
+
+ const sortAlphaNum = (a: string, b: string): 0 | 1 | -1 => {
+ const reN = /[0-9]*$/;
+ const aA = a.replace(reN, ""); // get rid of trailing numbers
+ const bA = b.replace(reN, "");
+ if (aA === bA) { // if header string matches, then compare numbers numerically
+ const aN = parseInt(a.match(reN)![0], 10);
+ const bN = parseInt(b.match(reN)![0], 10);
+ return aN === bN ? 0 : aN > bN ? 1 : -1;
+ } else {
+ return aA > bA ? 1 : -1;
+ }
+ };
+ docs.sort(function (a, b): 0 | 1 | -1 {
+ const descA = ascending ? b : a;
+ const descB = ascending ? a : b;
+ const first = descA.title;
+ const second = descB.title;
// TODO find better way to sort how to sort..................
if (typeof first === 'number' && typeof second === 'number') {
return (first - second) > 0 ? 1 : -1;
}
if (typeof first === 'string' && typeof second === 'string') {
- return first > second ? 1 : -1;
+ return sortAlphaNum(first, second);
}
if (typeof first === 'boolean' && typeof second === 'boolean') {
// if (first === second) { // bugfixing?: otherwise, the list "flickers" because the list is resorted during every load
@@ -448,17 +514,17 @@ class TreeView extends React.Component<TreeViewProps> {
});
}
- let rowWidth = () => panelWidth() - 20;
+ const rowWidth = () => panelWidth() - 20;
return docs.map((child, i) => {
- const pair = Doc.GetLayoutDataDocPair(containingCollection, dataDoc, key, child);
+ const pair = Doc.GetLayoutDataDocPair(containingCollection, dataDoc, child);
if (!pair.layout || pair.data instanceof Promise) {
return (null);
}
- let indent = i === 0 ? undefined : () => {
- if (StrCast(docs[i - 1].layout).indexOf("fieldKey") !== -1) {
- let fieldKeysub = StrCast(docs[i - 1].layout).split("fieldKey")[1];
- let fieldKey = fieldKeysub.split("\"")[1];
+ const indent = i === 0 ? undefined : () => {
+ if (StrCast(docs[i - 1].layout).indexOf('fieldKey') !== -1) {
+ const fieldKeysub = StrCast(docs[i - 1].layout).split('fieldKey')[1];
+ const fieldKey = fieldKeysub.split("\'")[1];
if (fieldKey && Cast(docs[i - 1][fieldKey], listSpec(Doc)) !== undefined) {
Doc.AddDocToList(docs[i - 1], fieldKey, child);
docs[i - 1].treeViewOpen = true;
@@ -466,27 +532,40 @@ class TreeView extends React.Component<TreeViewProps> {
}
}
};
- let addDocument = (doc: Doc, relativeTo?: Doc, before?: boolean) => {
+ const outdent = !parentCollectionDoc ? undefined : () => {
+ if (StrCast(parentCollectionDoc.layout).indexOf('fieldKey') !== -1) {
+ const fieldKeysub = StrCast(parentCollectionDoc.layout).split('fieldKey')[1];
+ const fieldKey = fieldKeysub.split("\'")[1];
+ Doc.AddDocToList(parentCollectionDoc, fieldKey, child, parentPrevSibling, false);
+ parentCollectionDoc.treeViewOpen = true;
+ remove(child);
+ }
+ };
+ const addDocument = (doc: Doc, relativeTo?: Doc, before?: boolean) => {
return add(doc, relativeTo ? relativeTo : docs[i], before !== undefined ? before : false);
};
const childLayout = Doc.Layout(pair.layout);
- let rowHeight = () => {
- let aspect = NumCast(childLayout.nativeWidth, 0) / NumCast(childLayout.nativeHeight, 0);
+ const rowHeight = () => {
+ const aspect = NumCast(childLayout._nativeWidth, 0) / NumCast(childLayout._nativeHeight, 0);
return aspect ? Math.min(childLayout[WidthSym](), rowWidth()) / aspect : childLayout[HeightSym]();
};
return !(child instanceof Doc) ? (null) : <TreeView
document={pair.layout}
dataDoc={pair.data}
+ libraryPath={libraryPath ? [...libraryPath, containingCollection] : undefined}
containingCollection={containingCollection}
+ prevSibling={docs[i]}
treeViewId={treeViewId}
- ruleProvider={containingCollection.isRuleProvider && pair.layout.type !== DocumentType.TEXT ? containingCollection : containingCollection.ruleProvider as Doc}
key={child[Id]}
indentDocument={indent}
+ outdentDocument={outdent}
+ onCheckedClick={onCheckedClick}
renderDepth={renderDepth}
deleteDoc={remove}
addDocument={addDocument}
panelWidth={rowWidth}
panelHeight={rowHeight}
+ ChromeHeight={ChromeHeight}
moveDocument={move}
dropAction={dropAction}
addDocTab={addDocTab}
@@ -495,7 +574,7 @@ class TreeView extends React.Component<TreeViewProps> {
outerXf={outerXf}
parentKey={key}
active={active}
- showHeaderFields={showHeaderFields}
+ hideHeaderFields={hideHeaderFields}
preventTreeViewOpen={preventTreeViewOpen}
renderedIds={renderedIds} />;
});
@@ -512,7 +591,7 @@ export class CollectionTreeView extends CollectionSubView(Document) {
protected createTreeDropTarget = (ele: HTMLDivElement) => {
this.treedropDisposer && this.treedropDisposer();
if (this._mainEle = ele) {
- this.treedropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.drop.bind(this) } });
+ this.treedropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this));
}
}
@@ -523,7 +602,7 @@ export class CollectionTreeView extends CollectionSubView(Document) {
@action
remove = (document: Document): boolean => {
- let children = Cast(this.props.Document[this.props.fieldKey], listSpec(Doc), []);
+ const children = Cast(this.props.Document[this.props.fieldKey], listSpec(Doc), []);
if (children.indexOf(document) !== -1) {
children.splice(children.indexOf(document), 1);
return true;
@@ -544,10 +623,54 @@ export class CollectionTreeView extends CollectionSubView(Document) {
e.preventDefault();
ContextMenu.Instance.displayMenu(e.pageX - 15, e.pageY - 15);
} else {
- let layoutItems: ContextMenuProps[] = [];
- layoutItems.push({ description: this.props.Document.preventTreeViewOpen ? "Persist Treeview State" : "Abandon Treeview State", event: () => this.props.Document.preventTreeViewOpen = !this.props.Document.preventTreeViewOpen, icon: "paint-brush" });
+ const layoutItems: ContextMenuProps[] = [];
+ layoutItems.push({ description: (this.props.Document.preventTreeViewOpen ? "Persist" : "Abandon") + "Treeview State", event: () => this.props.Document.preventTreeViewOpen = !this.props.Document.preventTreeViewOpen, icon: "paint-brush" });
+ layoutItems.push({ description: (this.props.Document.hideHeaderFields ? "Show" : "Hide") + " Header Fields", event: () => this.props.Document.hideHeaderFields = !this.props.Document.hideHeaderFields, icon: "paint-brush" });
ContextMenu.Instance.addItem({ description: "Treeview Options ...", subitems: layoutItems, icon: "eye" });
}
+ ContextMenu.Instance.addItem({
+ description: "Buxton Layout", icon: "eye", event: () => {
+ DocListCast(this.dataDoc[this.props.fieldKey]).map(d => {
+ DocListCast(d.data).map((img, i) => {
+ const caption = (d.captions as any)[i]?.data;
+ if (caption instanceof ObjectField) {
+ Doc.GetProto(img).caption = ObjectField.MakeCopy(caption as ObjectField);
+ }
+ img._hideSidebar = true;
+ d.captions = undefined;
+ });
+ });
+ const { TextDocument, ImageDocument, CarouselDocument } = Docs.Create;
+ const { Document } = this.props;
+ const fallbackImg = "http://www.cs.brown.edu/~bcz/face.gif";
+ const detailedTemplate = `{ "doc": { "type": "doc", "content": [ { "type": "paragraph", "content": [ { "type": "dashField", "attrs": { "fieldKey": "short_description" } } ] }, { "type": "paragraph", "content": [ { "type": "dashField", "attrs": { "fieldKey": "year" } } ] }, { "type": "paragraph", "content": [ { "type": "dashField", "attrs": { "fieldKey": "company" } } ] } ] }, "selection":{"type":"text","anchor":1,"head":1},"storedMarks":[] }`;
+
+ const textDoc = TextDocument("", { title: "details", _autoHeight: true });
+ const detailedLayout = Docs.Create.StackingDocument([
+ CarouselDocument([], { title: "data", _height: 350, _itemIndex: 0, backgroundColor: "#9b9b9b3F" }),
+ textDoc,
+ ], { _chromeStatus: "disabled", title: "detailed layout stack" });
+ textDoc.data = new RichTextField(detailedTemplate, "short_description year company");
+ detailedLayout.isTemplateDoc = makeTemplate(detailedLayout);
+
+ const cardLayout = ImageDocument(fallbackImg, { title: "cardLayout", isTemplateDoc: true, isTemplateForField: "hero", }); // this acts like a template doc and a template field ... a little weird, but seems to work?
+ cardLayout.proto!.layout = ImageBox.LayoutString("hero");
+ cardLayout.showTitle = "title";
+ cardLayout.showTitleHover = "titlehover";
+
+ Document.childLayout = cardLayout;
+ Document.childDetailed = detailedLayout;
+ Document._viewType = CollectionViewType.Pivot;
+ Document.pivotField = "company";
+ }
+ });
+ const existingOnClick = ContextMenu.Instance.findByDescription("OnClick...");
+ const onClicks: ContextMenuProps[] = existingOnClick && "subitems" in existingOnClick ? existingOnClick.subitems : [];
+ onClicks.push({
+ description: "Edit onChecked Script", icon: "edit", event: (obj: any) => ScriptBox.EditButtonScript("On Checked Changed ...", this.props.Document,
+ "onCheckedClick", obj.x, obj.y, { heading: "boolean", checked: "boolean", treeViewContainer: Doc.name })
+ });
+ !existingOnClick && ContextMenu.Instance.addItem({ description: "OnClick...", subitems: onClicks, icon: "hand-point-right" });
}
outerXf = () => Utils.GetScreenTransform(this._mainEle!);
onTreeDrop = (e: React.DragEvent) => this.onDrop(e, {});
@@ -562,17 +685,17 @@ export class CollectionTreeView extends CollectionSubView(Document) {
}
render() {
- let dropAction = StrCast(this.props.Document.dropAction) as dropActionType;
- let addDoc = (doc: Doc, relativeTo?: Doc, before?: boolean) => Doc.AddDocToList(this.props.Document, this.props.fieldKey, doc, relativeTo, before, false, false, false);
- let moveDoc = (d: Doc, target: Doc, addDoc: (doc: Doc) => boolean) => this.props.moveDocument(d, target, addDoc);
+ const dropAction = StrCast(this.props.Document._dropAction) as dropActionType;
+ const addDoc = (doc: Doc, relativeTo?: Doc, before?: boolean) => Doc.AddDocToList(this.props.Document, this.props.fieldKey, doc, relativeTo, before, false, false, false);
+ const moveDoc = (d: Doc, target: Doc | undefined, addDoc: (doc: Doc) => boolean) => this.props.moveDocument(d, target, addDoc);
return !this.childDocs ? (null) : (
- <div id="body" className="collectionTreeView-dropTarget"
- style={{ overflow: "auto", background: StrCast(this.props.Document.backgroundColor, "lightgray"), paddingTop: `${NumCast(this.props.Document.yMargin, 20)}px` }}
+ <div className="collectionTreeView-dropTarget" id="body"
+ style={{ background: StrCast(this.props.Document.backgroundColor, "lightgray"), paddingTop: `${NumCast(this.props.Document._yMargin, 20)}px` }}
onContextMenu={this.onContextMenu}
onWheel={(e: React.WheelEvent) => this._mainEle && this._mainEle.scrollHeight > this._mainEle.clientHeight && e.stopPropagation()}
onDrop={this.onTreeDrop}
ref={this.createTreeDropTarget}>
- <EditableView
+ {(this.props.Document.treeViewHideTitle ? (null) : <EditableView
contents={this.dataDoc.title}
display={"block"}
maxHeight={72}
@@ -581,21 +704,47 @@ export class CollectionTreeView extends CollectionSubView(Document) {
SetValue={undoBatch((value: string) => Doc.SetInPlace(this.dataDoc, "title", value, false) || true)}
OnFillDown={undoBatch((value: string) => {
Doc.SetInPlace(this.dataDoc, "title", value, false);
- let doc = this.props.Document.layoutCustom instanceof Doc ? Doc.ApplyTemplate(Doc.GetProto(this.props.Document.layoutCustom)) : undefined;
- if (!doc) doc = Docs.Create.FreeformDocument([], { title: "", x: 0, y: 0, width: 100, height: 25, templates: new List<string>([Templates.Title.Layout]) });
+ const layoutDoc = this.props.Document.layout_custom instanceof Doc ? Doc.ApplyTemplate(Doc.GetProto(this.props.Document.layout_custom)) : undefined;
+ const doc = layoutDoc || Docs.Create.FreeformDocument([], { title: "", x: 0, y: 0, _width: 100, _height: 25, templates: new List<string>([Templates.Title.Layout]) });
TreeView.loadId = doc[Id];
Doc.AddDocToList(this.props.Document, this.props.fieldKey, doc, this.childDocs.length ? this.childDocs[0] : undefined, true, false, false, false);
- })} />
+ })} />)}
{this.props.Document.allowClear ? this.renderClearButton : (null)}
<ul className="no-indent" style={{ width: "max-content" }} >
{
- TreeView.GetChildElements(this.childDocs, this.props.Document[Id], this.props.Document, this.props.DataDoc, this.props.fieldKey, addDoc, this.remove,
+ TreeView.GetChildElements(this.childDocs, this.props.Document, this.props.Document, this.props.DataDoc, this.props.fieldKey, this.props.ContainingCollectionDoc, undefined, addDoc, this.remove,
moveDoc, dropAction, this.props.addDocTab, this.props.pinToPres, this.props.ScreenToLocalTransform,
- this.outerXf, this.props.active, this.props.PanelWidth, this.props.renderDepth, () => !this.props.Document.hideHeaderFields,
- BoolCast(this.props.Document.preventTreeViewOpen), [])
+ this.outerXf, this.props.active, this.props.PanelWidth, this.props.ChromeHeight, this.props.renderDepth, () => BoolCast(this.props.Document.hideHeaderFields),
+ BoolCast(this.props.Document.preventTreeViewOpen), [], this.props.LibraryPath, ScriptCast(this.props.Document.onCheckedClick))
}
</ul>
</div >
);
}
-} \ No newline at end of file
+}
+
+Scripting.addGlobal(function readFacetData(layoutDoc: Doc, dataDoc: Doc, dataKey: string, facetHeader: string) {
+ const allCollectionDocs = DocListCast(dataDoc[dataKey]);
+ const facetValues = Array.from(allCollectionDocs.reduce((set, child) =>
+ set.add(Field.toString(child[facetHeader] as Field)), new Set<string>()));
+
+ const facetValueDocSet = facetValues.sort().map(facetValue =>
+ Docs.Create.TextDocument("", {
+ title: facetValue.toString(),
+ treeViewChecked: ComputedField.MakeFunction("determineCheckedState(layoutDoc, facetHeader, facetValue)",
+ { layoutDoc: Doc.name, facetHeader: "string", facetValue: "string" },
+ { layoutDoc, facetHeader, facetValue })
+ }));
+ return new List<Doc>(facetValueDocSet);
+});
+
+Scripting.addGlobal(function determineCheckedState(layoutDoc: Doc, facetHeader: string, facetValue: string) {
+ const docFilters = Cast(layoutDoc._docFilter, listSpec("string"), []);
+ for (let i = 0; i < docFilters.length; i += 3) {
+ const [header, value, state] = docFilters.slice(i, i + 3);
+ if (header === facetHeader && value === facetValue) {
+ return state;
+ }
+ }
+ return undefined;
+}); \ No newline at end of file
diff --git a/src/client/views/collections/CollectionView.scss b/src/client/views/collections/CollectionView.scss
index e4187e4d6..1c46081a1 100644
--- a/src/client/views/collections/CollectionView.scss
+++ b/src/client/views/collections/CollectionView.scss
@@ -9,7 +9,7 @@
border-radius: inherit;
width: 100%;
height: 100%;
- overflow: auto;
+ overflow: hidden; // bcz: used to be 'auto' which would create scrollbars when there's a floating doc that's not visible. not sure if that's better, but the scrollbars are annoying...
}
#google-tags {
diff --git a/src/client/views/collections/CollectionView.tsx b/src/client/views/collections/CollectionView.tsx
index 8d5694bf0..dab0ce08e 100644
--- a/src/client/views/collections/CollectionView.tsx
+++ b/src/client/views/collections/CollectionView.tsx
@@ -1,35 +1,43 @@
import { library } from '@fortawesome/fontawesome-svg-core';
import { faEye } from '@fortawesome/free-regular-svg-icons';
import { faColumns, faCopy, faEllipsisV, faFingerprint, faImage, faProjectDiagram, faSignature, faSquare, faTh, faThList, faTree } from '@fortawesome/free-solid-svg-icons';
-import { action, IReactionDisposer, observable, reaction, runInAction } from 'mobx';
+import { action, IReactionDisposer, observable, reaction, runInAction, computed } from 'mobx';
import { observer } from "mobx-react";
import * as React from 'react';
+import Lightbox from 'react-image-lightbox-with-rotate';
+import 'react-image-lightbox-with-rotate/style.css'; // This only needs to be imported once in your app
+import { DateField } from '../../../new_fields/DateField';
+import { Doc, DocListCast } from '../../../new_fields/Doc';
import { Id } from '../../../new_fields/FieldSymbols';
-import { StrCast, BoolCast, Cast } from '../../../new_fields/Types';
+import { listSpec } from '../../../new_fields/Schema';
+import { BoolCast, Cast, StrCast, NumCast } from '../../../new_fields/Types';
+import { ImageField } from '../../../new_fields/URLField';
+import { TraceMobx } from '../../../new_fields/util';
import { CurrentUserUtils } from '../../../server/authentication/models/current_user_utils';
+import { Utils } from '../../../Utils';
+import { DocumentType } from '../../documents/DocumentTypes';
+import { DocumentManager } from '../../util/DocumentManager';
+import { ImageUtils } from '../../util/Import & Export/ImageUtils';
+import { SelectionManager } from '../../util/SelectionManager';
import { ContextMenu } from "../ContextMenu";
+import { FieldView, FieldViewProps } from '../nodes/FieldView';
+import { ScriptBox } from '../ScriptBox';
+import { Touchable } from '../Touchable';
import { CollectionDockingView } from "./CollectionDockingView";
import { AddCustomFreeFormLayout } from './collectionFreeForm/CollectionFreeFormLayoutEngines';
import { CollectionFreeFormView } from './collectionFreeForm/CollectionFreeFormView';
+import { CollectionCarouselView } from './CollectionCarouselView';
+import { CollectionLinearView } from './CollectionLinearView';
+import { CollectionMulticolumnView } from './collectionMulticolumn/CollectionMulticolumnView';
+import { CollectionPivotView } from './CollectionPivotView';
import { CollectionSchemaView } from "./CollectionSchemaView";
import { CollectionStackingView } from './CollectionStackingView';
+import { CollectionStaffView } from './CollectionStaffView';
import { CollectionTreeView } from "./CollectionTreeView";
+import './CollectionView.scss';
import { CollectionViewBaseChrome } from './CollectionViewChromes';
-import { ImageUtils } from '../../util/Import & Export/ImageUtils';
-import { CollectionLinearView } from '../CollectionLinearView';
-import { DocumentType } from '../../documents/DocumentTypes';
-import { ImageField } from '../../../new_fields/URLField';
-import { DocListCast } from '../../../new_fields/Doc';
-import Lightbox from 'react-image-lightbox-with-rotate';
-import 'react-image-lightbox-with-rotate/style.css'; // This only needs to be imported once in your app
export const COLLECTION_BORDER_WIDTH = 2;
-import { DateField } from '../../../new_fields/DateField';
-import { Doc, } from '../../../new_fields/Doc';
-import { listSpec } from '../../../new_fields/Schema';
-import { DocumentManager } from '../../util/DocumentManager';
-import { SelectionManager } from '../../util/SelectionManager';
-import './CollectionView.scss';
-import { FieldViewProps, FieldView } from '../nodes/FieldView';
+const path = require('path');
library.add(faTh, faTree, faSquare, faProjectDiagram, faSignature, faThList, faFingerprint, faColumns, faEllipsisV, faImage, faEye as any, faCopy);
export enum CollectionViewType {
@@ -40,8 +48,12 @@ export enum CollectionViewType {
Tree,
Stacking,
Masonry,
+ Multicolumn,
Pivot,
+ Carousel,
Linear,
+ Staff,
+ Timeline
}
export namespace CollectionViewType {
@@ -53,8 +65,10 @@ export namespace CollectionViewType {
["tree", CollectionViewType.Tree],
["stacking", CollectionViewType.Stacking],
["masonry", CollectionViewType.Masonry],
+ ["multicolumn", CollectionViewType.Multicolumn],
["pivot", CollectionViewType.Pivot],
- ["linear", CollectionViewType.Linear]
+ ["carousel", CollectionViewType.Carousel],
+ ["linear", CollectionViewType.Linear],
]);
export const valueOf = (value: string) => stringMapping.get(value.toLowerCase());
@@ -63,13 +77,13 @@ export namespace CollectionViewType {
export interface CollectionRenderProps {
addDocument: (document: Doc) => boolean;
removeDocument: (document: Doc) => boolean;
- moveDocument: (document: Doc, targetCollection: Doc, addDocument: (document: Doc) => boolean) => boolean;
+ moveDocument: (document: Doc, targetCollection: Doc | undefined, addDocument: (document: Doc) => boolean) => boolean;
active: () => boolean;
whenActiveChanged: (isActive: boolean) => void;
}
@observer
-export class CollectionView extends React.Component<FieldViewProps> {
+export class CollectionView extends Touchable<FieldViewProps> {
public static LayoutString(fieldStr: string) { return FieldView.LayoutString(CollectionView, fieldStr); }
private _reactionDisposer: IReactionDisposer | undefined;
@@ -81,7 +95,7 @@ export class CollectionView extends React.Component<FieldViewProps> {
public static SetSafeMode(safeMode: boolean) { this._safeMode = safeMode; }
get collectionViewType(): CollectionViewType | undefined {
- let viewField = Cast(this.props.Document.viewType, "number");
+ const viewField = NumCast(this.props.Document._viewType);
if (CollectionView._safeMode) {
if (viewField === CollectionViewType.Freeform) {
return CollectionViewType.Tree;
@@ -90,15 +104,15 @@ export class CollectionView extends React.Component<FieldViewProps> {
return CollectionViewType.Freeform;
}
}
- return viewField === undefined ? CollectionViewType.Invalid : viewField;
+ return viewField;
}
componentDidMount = () => {
- this._reactionDisposer = reaction(() => StrCast(this.props.Document.chromeStatus),
+ this._reactionDisposer = reaction(() => StrCast(this.props.Document._chromeStatus),
() => {
// chrome status is one of disabled, collapsed, or visible. this determines initial state from document
// chrome status may also be view-mode, in reference to stacking view's toggle mode. it is essentially disabled mode, but prevents the toggle button from showing up on the left sidebar.
- let chromeStatus = this.props.Document.chromeStatus;
+ const chromeStatus = this.props.Document._chromeStatus;
if (chromeStatus && (chromeStatus === "disabled" || chromeStatus === "collapsed")) {
runInAction(() => this._collapsed = true);
}
@@ -108,27 +122,26 @@ export class CollectionView extends React.Component<FieldViewProps> {
componentWillUnmount = () => this._reactionDisposer && this._reactionDisposer();
// bcz: Argh? What's the height of the collection chromes??
- chromeHeight = () => (this.props.ChromeHeight ? this.props.ChromeHeight() : 0) + (this.props.Document.chromeStatus === "enabled" ? -60 : 0);
+ chromeHeight = () => (this.props.Document._chromeStatus === "enabled" ? -60 : 0);
- active = () => this.props.isSelected() || BoolCast(this.props.Document.forceActive) || this._isChildActive || this.props.renderDepth === 0;
+ active = (outsideReaction?: boolean) => this.props.isSelected(outsideReaction) || BoolCast(this.props.Document.forceActive) || this._isChildActive || this.props.renderDepth === 0;
whenActiveChanged = (isActive: boolean) => { this.props.whenActiveChanged(this._isChildActive = isActive); };
@action.bound
addDocument(doc: Doc): boolean {
- let targetDataDoc = Doc.GetProto(this.props.Document);
+ const targetDataDoc = Doc.GetProto(this.props.Document);
Doc.AddDocToList(targetDataDoc, this.props.fieldKey, doc);
- let extension = Doc.fieldExtensionDoc(targetDataDoc, this.props.fieldKey); // set metadata about the field being rendered (ie, the set of documents) on an extension field for that field
- extension && (extension.lastModified = new DateField(new Date(Date.now())));
+ targetDataDoc[this.props.fieldKey + "-lastModified"] = new DateField(new Date(Date.now()));
Doc.GetProto(doc).lastOpened = new DateField;
return true;
}
@action.bound
removeDocument(doc: Doc): boolean {
- let docView = DocumentManager.Instance.getDocumentView(doc, this.props.ContainingCollectionView);
+ const docView = DocumentManager.Instance.getDocumentView(doc, this.props.ContainingCollectionView);
docView && SelectionManager.DeselectDoc(docView);
- let value = Cast(this.props.Document[this.props.fieldKey], listSpec(Doc), []);
+ const value = Cast(this.props.Document[this.props.fieldKey], listSpec(Doc), []);
let index = value.reduce((p, v, i) => (v instanceof Doc && v === doc) ? i : p, -1);
index = index !== -1 ? index : value.reduce((p, v, i) => (v instanceof Doc && Doc.AreProtosEqual(v, doc)) ? i : p, -1);
@@ -145,7 +158,7 @@ export class CollectionView extends React.Component<FieldViewProps> {
// otherwise, the document being moved must be able to be removed from its container before
// moving it into the target.
@action.bound
- moveDocument(doc: Doc, targetCollection: Doc, addDocument: (doc: Doc) => boolean): boolean {
+ moveDocument(doc: Doc, targetCollection: Doc | undefined, addDocument: (doc: Doc) => boolean): boolean {
if (Doc.AreProtosEqual(this.props.Document, targetCollection)) {
return true;
}
@@ -160,29 +173,32 @@ export class CollectionView extends React.Component<FieldViewProps> {
}
private SubViewHelper = (type: CollectionViewType, renderProps: CollectionRenderProps) => {
- let props = { ...this.props, ...renderProps, chromeCollapsed: this._collapsed, ChromeHeight: this.chromeHeight, CollectionView: this, annotationsKey: "" };
+ const props = { ...this.props, ...renderProps, chromeCollapsed: this._collapsed, ChromeHeight: this.chromeHeight, CollectionView: this, annotationsKey: "" };
switch (type) {
case CollectionViewType.Schema: return (<CollectionSchemaView key="collview" {...props} />);
case CollectionViewType.Docking: return (<CollectionDockingView key="collview" {...props} />);
case CollectionViewType.Tree: return (<CollectionTreeView key="collview" {...props} />);
+ case CollectionViewType.Staff: return (<CollectionStaffView chromeCollapsed={true} key="collview" {...props} ChromeHeight={this.chromeHeight} CollectionView={this} />);
+ case CollectionViewType.Multicolumn: return (<CollectionMulticolumnView chromeCollapsed={true} key="collview" {...props} ChromeHeight={this.chromeHeight} CollectionView={this} />);
case CollectionViewType.Linear: { return (<CollectionLinearView key="collview" {...props} />); }
+ case CollectionViewType.Carousel: { return (<CollectionCarouselView key="collview" {...props} />); }
case CollectionViewType.Stacking: { this.props.Document.singleColumn = true; return (<CollectionStackingView key="collview" {...props} />); }
case CollectionViewType.Masonry: { this.props.Document.singleColumn = false; return (<CollectionStackingView key="collview" {...props} />); }
- case CollectionViewType.Pivot: { this.props.Document.freeformLayoutEngine = "pivot"; return (<CollectionFreeFormView key="collview" {...props} />); }
+ case CollectionViewType.Pivot: { return (<CollectionPivotView key="collview" {...props} />); }
case CollectionViewType.Freeform:
- default: { this.props.Document.freeformLayoutEngine = undefined; return (<CollectionFreeFormView key="collview" {...props} />); }
+ default: { this.props.Document._freeformLayoutEngine = undefined; return (<CollectionFreeFormView key="collview" {...props} />); }
}
}
@action
private collapse = (value: boolean) => {
this._collapsed = value;
- this.props.Document.chromeStatus = value ? "collapsed" : "enabled";
+ this.props.Document._chromeStatus = value ? "collapsed" : "enabled";
}
private SubView = (type: CollectionViewType, renderProps: CollectionRenderProps) => {
// currently cant think of a reason for collection docking view to have a chrome. mind may change if we ever have nested docking views -syip
- let chrome = this.props.Document.chromeStatus === "disabled" || type === CollectionViewType.Docking ? (null) :
+ const chrome = this.props.Document._chromeStatus === "disabled" || type === CollectionViewType.Docking ? (null) :
<CollectionViewBaseChrome CollectionView={this} key="chrome" type={type} collapse={this.collapse} />;
return [chrome, this.SubViewHelper(type, renderProps)];
}
@@ -190,24 +206,27 @@ export class CollectionView extends React.Component<FieldViewProps> {
onContextMenu = (e: React.MouseEvent): void => {
if (!e.isPropagationStopped() && this.props.Document[Id] !== CurrentUserUtils.MainDocId) { // need to test this because GoldenLayout causes a parallel hierarchy in the React DOM for its children and the main document view7
- let existingVm = ContextMenu.Instance.findByDescription("View Modes...");
- let subItems = existingVm && "subitems" in existingVm ? existingVm.subitems : [];
- subItems.push({ description: "Freeform", event: () => { this.props.Document.viewType = CollectionViewType.Freeform; }, icon: "signature" });
+ const existingVm = ContextMenu.Instance.findByDescription("View Modes...");
+ const subItems = existingVm && "subitems" in existingVm ? existingVm.subitems : [];
+ subItems.push({ description: "Freeform", event: () => { this.props.Document._viewType = CollectionViewType.Freeform; }, icon: "signature" });
if (CollectionView._safeMode) {
- ContextMenu.Instance.addItem({ description: "Test Freeform", event: () => this.props.Document.viewType = CollectionViewType.Invalid, icon: "project-diagram" });
+ ContextMenu.Instance.addItem({ description: "Test Freeform", event: () => this.props.Document._viewType = CollectionViewType.Invalid, icon: "project-diagram" });
}
- subItems.push({ description: "Schema", event: () => this.props.Document.viewType = CollectionViewType.Schema, icon: "th-list" });
- subItems.push({ description: "Treeview", event: () => this.props.Document.viewType = CollectionViewType.Tree, icon: "tree" });
- subItems.push({ description: "Stacking", event: () => this.props.Document.viewType = CollectionViewType.Stacking, icon: "ellipsis-v" });
+ subItems.push({ description: "Schema", event: () => this.props.Document._viewType = CollectionViewType.Schema, icon: "th-list" });
+ subItems.push({ description: "Treeview", event: () => this.props.Document._viewType = CollectionViewType.Tree, icon: "tree" });
+ subItems.push({ description: "Stacking", event: () => this.props.Document._viewType = CollectionViewType.Stacking, icon: "ellipsis-v" });
subItems.push({
description: "Stacking (AutoHeight)", event: () => {
- this.props.Document.viewType = CollectionViewType.Stacking;
- this.props.Document.autoHeight = true;
+ this.props.Document._viewType = CollectionViewType.Stacking;
+ this.props.Document._autoHeight = true;
}, icon: "ellipsis-v"
});
- subItems.push({ description: "Masonry", event: () => this.props.Document.viewType = CollectionViewType.Masonry, icon: "columns" });
- subItems.push({ description: "Pivot", event: () => this.props.Document.viewType = CollectionViewType.Pivot, icon: "columns" });
- switch (this.props.Document.viewType) {
+ subItems.push({ description: "Staff", event: () => this.props.Document._viewType = CollectionViewType.Staff, icon: "music" });
+ subItems.push({ description: "Multicolumn", event: () => this.props.Document._viewType = CollectionViewType.Multicolumn, icon: "columns" });
+ subItems.push({ description: "Masonry", event: () => this.props.Document._viewType = CollectionViewType.Masonry, icon: "columns" });
+ subItems.push({ description: "Carousel", event: () => this.props.Document._viewType = CollectionViewType.Carousel, icon: "columns" });
+ subItems.push({ description: "Pivot", event: () => this.props.Document._viewType = CollectionViewType.Pivot, icon: "columns" });
+ switch (this.props.Document._viewType) {
case CollectionViewType.Freeform: {
subItems.push({ description: "Custom", icon: "fingerprint", event: AddCustomFreeFormLayout(this.props.Document, this.props.fieldKey) });
break;
@@ -216,24 +235,47 @@ export class CollectionView extends React.Component<FieldViewProps> {
subItems.push({ description: "lightbox", event: action(() => this._isLightboxOpen = true), icon: "eye" });
!existingVm && ContextMenu.Instance.addItem({ description: "View Modes...", subitems: subItems, icon: "eye" });
- let existing = ContextMenu.Instance.findByDescription("Layout...");
- let layoutItems = existing && "subitems" in existing ? existing.subitems : [];
+ const existing = ContextMenu.Instance.findByDescription("Layout...");
+ const layoutItems = existing && "subitems" in existing ? existing.subitems : [];
layoutItems.push({ description: `${this.props.Document.forceActive ? "Select" : "Force"} Contents Active`, event: () => this.props.Document.forceActive = !this.props.Document.forceActive, icon: "project-diagram" });
+ if (this.props.Document.childLayout instanceof Doc) {
+ layoutItems.push({ description: "View Child Layout", event: () => this.props.addDocTab(this.props.Document.childLayout as Doc, undefined, "onRight"), icon: "project-diagram" });
+ }
+ if (this.props.Document.childDetailed instanceof Doc) {
+ layoutItems.push({ description: "View Child Detailed Layout", event: () => this.props.addDocTab(this.props.Document.childDetailed as Doc, undefined, "onRight"), icon: "project-diagram" });
+ }
!existing && ContextMenu.Instance.addItem({ description: "Layout...", subitems: layoutItems, icon: "hand-point-right" });
- ContextMenu.Instance.addItem({ description: "Export Image Hierarchy", icon: "columns", event: () => ImageUtils.ExportHierarchyToFileSystem(this.props.Document) });
+
+ const more = ContextMenu.Instance.findByDescription("More...");
+ const moreItems = more && "subitems" in more ? more.subitems : [];
+ moreItems.push({ description: "Export Image Hierarchy", icon: "columns", event: () => ImageUtils.ExportHierarchyToFileSystem(this.props.Document) });
+ !more && ContextMenu.Instance.addItem({ description: "More...", subitems: moreItems, icon: "hand-point-right" });
+
+ const existingOnClick = ContextMenu.Instance.findByDescription("OnClick...");
+ const onClicks = existingOnClick && "subitems" in existingOnClick ? existingOnClick.subitems : [];
+ onClicks.push({ description: "Edit onChildClick script", icon: "edit", event: (obj: any) => ScriptBox.EditButtonScript("On Child Clicked...", this.props.Document, "onChildClick", obj.x, obj.y) });
+ !existingOnClick && ContextMenu.Instance.addItem({ description: "OnClick...", subitems: onClicks, icon: "hand-point-right" });
}
}
lightbox = (images: string[]) => {
+ if (!images.length) return (null);
+ const mainPath = path.extname(images[this._curLightboxImg]);
+ const nextPath = path.extname(images[(this._curLightboxImg + 1) % images.length]);
+ const prevPath = path.extname(images[(this._curLightboxImg + images.length - 1) % images.length]);
+ const main = images[this._curLightboxImg].replace(mainPath, "_o" + mainPath);
+ const next = images[(this._curLightboxImg + 1) % images.length].replace(nextPath, "_o" + nextPath);
+ const prev = images[(this._curLightboxImg + images.length - 1) % images.length].replace(prevPath, "_o" + prevPath);
return !this._isLightboxOpen ? (null) : (<Lightbox key="lightbox"
- mainSrc={images[this._curLightboxImg]}
- nextSrc={images[(this._curLightboxImg + 1) % images.length]}
- prevSrc={images[(this._curLightboxImg + images.length - 1) % images.length]}
+ mainSrc={main}
+ nextSrc={next}
+ prevSrc={prev}
onCloseRequest={action(() => this._isLightboxOpen = false)}
onMovePrevRequest={action(() => this._curLightboxImg = (this._curLightboxImg + images.length - 1) % images.length)}
onMoveNextRequest={action(() => this._curLightboxImg = (this._curLightboxImg + 1) % images.length)} />);
}
render() {
+ TraceMobx();
const props: CollectionRenderProps = {
addDocument: this.addDocument,
removeDocument: this.removeDocument,
@@ -249,7 +291,12 @@ export class CollectionView extends React.Component<FieldViewProps> {
onContextMenu={this.onContextMenu}>
{this.showIsTagged()}
{this.collectionViewType !== undefined ? this.SubView(this.collectionViewType, props) : (null)}
- {this.lightbox(DocListCast(this.props.Document[this.props.fieldKey]).filter(d => d.type === DocumentType.IMG).map(d => Cast(d.data, ImageField) ? Cast(d.data, ImageField)!.url.href : ""))}
+ {this.lightbox(DocListCast(this.props.Document[this.props.fieldKey]).filter(d => d.type === DocumentType.IMG).map(d =>
+ Cast(d.data, ImageField) ?
+ (Cast(d.data, ImageField)!.url.href.indexOf(window.location.origin) === -1) ?
+ Utils.CorsProxy(Cast(d.data, ImageField)!.url.href) : Cast(d.data, ImageField)!.url.href
+ :
+ ""))}
</div>);
}
} \ No newline at end of file
diff --git a/src/client/views/collections/CollectionViewChromes.scss b/src/client/views/collections/CollectionViewChromes.scss
index 1889a192c..414bbfc0b 100644
--- a/src/client/views/collections/CollectionViewChromes.scss
+++ b/src/client/views/collections/CollectionViewChromes.scss
@@ -9,8 +9,7 @@
background: lightgrey;
.collectionViewChrome {
- display: grid;
- grid-template-columns: 1fr auto;
+ display: flex;
padding-bottom: 10px;
border-bottom: .5px solid rgb(180, 180, 180);
overflow: hidden;
@@ -20,7 +19,7 @@
.collectionViewBaseChrome-viewPicker {
font-size: 75%;
- text-transform: uppercase;
+ //text-transform: uppercase;
letter-spacing: 2px;
background: rgb(238, 238, 238);
color: grey;
@@ -34,6 +33,26 @@
outline-color: black;
}
+ .collectionViewBaseChrome-cmdPicker {
+ margin-left: 3px;
+ margin-right: 0px;
+ background: rgb(238, 238, 238);
+ border: none;
+ color: grey;
+ }
+ .commandEntry-outerDiv {
+ pointer-events: all;
+ background-color: gray;
+ display: flex;
+ flex-direction: row;
+ .commandEntry-drop {
+ color:white;
+ width:25px;
+ margin-top: auto;
+ margin-bottom: auto;
+ }
+ }
+
.collectionViewBaseChrome-collapse {
transition: all .5s, opacity 0.3s;
position: absolute;
@@ -53,6 +72,18 @@
.collectionViewBaseChrome-viewSpecs {
margin-left: 10px;
display: grid;
+
+ .collectionViewBaseChrome-filterIcon {
+ position: relative;
+ display: flex;
+ margin: auto;
+ background: gray;
+ color: white;
+ width: 40px;
+ height: 40px;
+ align-items: center;
+ justify-content: center;
+ }
.collectionViewBaseChrome-viewSpecsInput {
padding: 12px 10px 11px 10px;
@@ -240,7 +271,6 @@
.commandEntry-outerDiv {
display: flex;
flex-direction: column;
- width: 165px;
height: 40px;
}
.commandEntry-inputArea {
diff --git a/src/client/views/collections/CollectionViewChromes.tsx b/src/client/views/collections/CollectionViewChromes.tsx
index cfc6c2a3f..073a30330 100644
--- a/src/client/views/collections/CollectionViewChromes.tsx
+++ b/src/client/views/collections/CollectionViewChromes.tsx
@@ -13,7 +13,6 @@ import { DragManager } from "../../util/DragManager";
import { undoBatch } from "../../util/UndoManager";
import { EditableView } from "../EditableView";
import { COLLECTION_BORDER_WIDTH } from "../globalCssVariables.scss";
-import { DocLike } from "../MetadataEntryMenu";
import { CollectionViewType } from "./CollectionView";
import { CollectionView } from "./CollectionView";
import "./CollectionViewChromes.scss";
@@ -33,38 +32,46 @@ interface Filter {
contains: boolean;
}
-let stopPropagation = (e: React.SyntheticEvent) => e.stopPropagation();
+const stopPropagation = (e: React.SyntheticEvent) => e.stopPropagation();
@observer
export class CollectionViewBaseChrome extends React.Component<CollectionViewChromeProps> {
//(!)?\(\(\(doc.(\w+) && \(doc.\w+ as \w+\).includes\(\"(\w+)\"\)
_templateCommand = {
- title: "set template", script: "setChildLayout(this.target, this.source && this.source.length ? this.source[0]:undefined)", params: ["target", "source"],
+ title: "=> item view", script: "setChildLayout(this.target, this.source?.[0])", params: ["target", "source"],
initialize: emptyFunction,
immediate: (draggedDocs: Doc[]) => Doc.setChildLayout(this.props.CollectionView.props.Document, draggedDocs.length ? draggedDocs[0] : undefined)
};
+ _narrativeCommand = {
+ title: "=> click item view", script: "setChildDetailedLayout(this.target, this.source?.[0])", params: ["target", "source"],
+ initialize: emptyFunction,
+ immediate: (draggedDocs: Doc[]) => Doc.setChildDetailedLayout(this.props.CollectionView.props.Document, draggedDocs.length ? draggedDocs[0] : undefined)
+ };
_contentCommand = {
- // title: "set content", script: "getProto(this.target).data = aliasDocs(this.source.map(async p => await p));", params: ["target", "source"], // bcz: doesn't look like we can do async stuff in scripting...
- title: "set content", script: "getProto(this.target).data = aliasDocs(this.source);", params: ["target", "source"],
+ title: "=> content", script: "getProto(this.target).data = aliasDocs(this.source);", params: ["target", "source"],
initialize: emptyFunction,
immediate: (draggedDocs: Doc[]) => Doc.GetProto(this.props.CollectionView.props.Document).data = new List<Doc>(draggedDocs.map((d: any) => Doc.MakeAlias(d)))
};
_viewCommand = {
- title: "restore view", script: "this.target.panX = this.restoredPanX; this.target.panY = this.restoredPanY; this.target.scale = this.restoredScale;", params: ["target"],
- immediate: (draggedDocs: Doc[]) => { this.props.CollectionView.props.Document.panX = 0; this.props.CollectionView.props.Document.panY = 0; this.props.CollectionView.props.Document.scale = 1; },
- initialize: (button: Doc) => { button.restoredPanX = this.props.CollectionView.props.Document.panX; button.restoredPanY = this.props.CollectionView.props.Document.panY; button.restoredScale = this.props.CollectionView.props.Document.scale; }
+ title: "=> saved view", script: "this.target._panX = this.restoredPanX; this.target._panY = this.restoredPanY; this.target.scale = this.restoredScale;", params: ["target"],
+ initialize: (button: Doc) => { button.restoredPanX = this.props.CollectionView.props.Document._panX; button.restoredPanY = this.props.CollectionView.props.Document._panY; button.restoredScale = this.props.CollectionView.props.Document.scale; },
+ immediate: (draggedDocs: Doc[]) => { this.props.CollectionView.props.Document._panX = 0; this.props.CollectionView.props.Document._panY = 0; this.props.CollectionView.props.Document.scale = 1; },
};
- _freeform_commands = [this._contentCommand, this._templateCommand, this._viewCommand];
+ _freeform_commands = [this._contentCommand, this._templateCommand, this._narrativeCommand, this._viewCommand];
_stacking_commands = [this._contentCommand, this._templateCommand];
_masonry_commands = [this._contentCommand, this._templateCommand];
+ _schema_commands = [this._templateCommand, this._narrativeCommand];
_tree_commands = [];
private get _buttonizableCommands() {
switch (this.props.type) {
case CollectionViewType.Tree: return this._tree_commands;
+ case CollectionViewType.Schema: return this._schema_commands;
case CollectionViewType.Stacking: return this._stacking_commands;
case CollectionViewType.Masonry: return this._stacking_commands;
case CollectionViewType.Freeform: return this._freeform_commands;
+ case CollectionViewType.Pivot: return this._freeform_commands;
+ case CollectionViewType.Carousel: return this._freeform_commands;
}
return [];
}
@@ -80,11 +87,11 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
@computed private get filterValue() { return Cast(this.props.CollectionView.props.Document.viewSpecScript, ScriptField); }
getFilters = (script: string) => {
- let re: any = /(!)?\(\(\(doc\.(\w+)\s+&&\s+\(doc\.\w+\s+as\s+\w+\)\.includes\(\"(\w+)\"\)/g;
- let arr: any[] = re.exec(script);
- let toReturn: Filter[] = [];
+ const re: any = /(!)?\(\(\(doc\.(\w+)\s+&&\s+\(doc\.\w+\s+as\s+\w+\)\.includes\(\"(\w+)\"\)/g;
+ const arr: any[] = re.exec(script);
+ const toReturn: Filter[] = [];
if (arr !== null) {
- let filter: Filter = {
+ const filter: Filter = {
key: arr[2],
value: arr[3],
contains: (arr[1] === "!") ? false : true,
@@ -120,14 +127,14 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
let fields: Filter[] = [];
if (this.filterValue) {
- let string = this.filterValue.script.originalScript;
+ const string = this.filterValue.script.originalScript;
fields = this.getFilters(string);
}
runInAction(() => {
this.addKeyRestrictions(fields);
// chrome status is one of disabled, collapsed, or visible. this determines initial state from document
- let chromeStatus = this.props.CollectionView.props.Document.chromeStatus;
+ const chromeStatus = this.props.CollectionView.props.Document._chromeStatus;
if (chromeStatus) {
if (chromeStatus === "disabled") {
throw new Error("how did you get here, if chrome status is 'disabled' on a collection, a chrome shouldn't even be instantiated!");
@@ -144,24 +151,35 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
@undoBatch
viewChanged = (e: React.ChangeEvent) => {
//@ts-ignore
- this.props.CollectionView.props.Document.viewType = parseInt(e.target.selectedOptions[0].value);
+ this.props.CollectionView.props.Document._viewType = parseInt(e.target.selectedOptions[0].value);
+ }
+
+ commandChanged = (e: React.ChangeEvent) => {
+ //@ts-ignore
+ runInAction(() => this._currentKey = e.target.selectedOptions[0].value);
}
@action
openViewSpecs = (e: React.SyntheticEvent) => {
- this._viewSpecsOpen = true;
+ if (this._viewSpecsOpen) this.closeViewSpecs();
+ else {
+ this._viewSpecsOpen = true;
- //@ts-ignore
- if (!e.target.classList[0].startsWith("qs")) {
- this.closeDatePicker();
- }
+ //@ts-ignore
+ if (!e.target?.classList[0]?.startsWith("qs")) {
+ this.closeDatePicker();
+ }
- e.stopPropagation();
- document.removeEventListener("pointerdown", this.closeViewSpecs);
- document.addEventListener("pointerdown", this.closeViewSpecs);
+ e.stopPropagation();
+ document.removeEventListener("pointerdown", this.closeViewSpecs);
+ document.addEventListener("pointerdown", this.closeViewSpecs);
+ }
}
- @action closeViewSpecs = () => { this._viewSpecsOpen = false; document.removeEventListener("pointerdown", this.closeViewSpecs); };
+ @action closeViewSpecs = () => {
+ this._viewSpecsOpen = false;
+ document.removeEventListener("pointerdown", this.closeViewSpecs);
+ };
@action
openDatePicker = (e: React.PointerEvent) => {
@@ -183,7 +201,7 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
@action
addKeyRestriction = (e: React.MouseEvent) => {
- let index = this._keyRestrictions.length;
+ const index = this._keyRestrictions.length;
this._keyRestrictions.push([<KeyRestrictionRow field="" value="" key={Utils.GenerateGuid()} contains={true} script={(value: string) => runInAction(() => this._keyRestrictions[index][1] = value)} />, ""]);
this.openViewSpecs(e);
@@ -194,26 +212,26 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
this.openViewSpecs(e);
- let keyRestrictionScript = "(" + this._keyRestrictions.map(i => i[1]).filter(i => i.length > 0).join(" && ") + ")";
- let yearOffset = this._dateWithinValue[1] === 'y' ? 1 : 0;
- let monthOffset = this._dateWithinValue[1] === 'm' ? parseInt(this._dateWithinValue[0]) : 0;
- let weekOffset = this._dateWithinValue[1] === 'w' ? parseInt(this._dateWithinValue[0]) : 0;
- let dayOffset = (this._dateWithinValue[1] === 'd' ? parseInt(this._dateWithinValue[0]) : 0) + weekOffset * 7;
+ const keyRestrictionScript = "(" + this._keyRestrictions.map(i => i[1]).filter(i => i.length > 0).join(" && ") + ")";
+ const yearOffset = this._dateWithinValue[1] === 'y' ? 1 : 0;
+ const monthOffset = this._dateWithinValue[1] === 'm' ? parseInt(this._dateWithinValue[0]) : 0;
+ const weekOffset = this._dateWithinValue[1] === 'w' ? parseInt(this._dateWithinValue[0]) : 0;
+ const dayOffset = (this._dateWithinValue[1] === 'd' ? parseInt(this._dateWithinValue[0]) : 0) + weekOffset * 7;
let dateRestrictionScript = "";
if (this._dateValue instanceof Date) {
- let lowerBound = new Date(this._dateValue.getFullYear() - yearOffset, this._dateValue.getMonth() - monthOffset, this._dateValue.getDate() - dayOffset);
- let upperBound = new Date(this._dateValue.getFullYear() + yearOffset, this._dateValue.getMonth() + monthOffset, this._dateValue.getDate() + dayOffset + 1);
+ const lowerBound = new Date(this._dateValue.getFullYear() - yearOffset, this._dateValue.getMonth() - monthOffset, this._dateValue.getDate() - dayOffset);
+ const upperBound = new Date(this._dateValue.getFullYear() + yearOffset, this._dateValue.getMonth() + monthOffset, this._dateValue.getDate() + dayOffset + 1);
dateRestrictionScript = `((doc.creationDate as any).date >= ${lowerBound.valueOf()} && (doc.creationDate as any).date <= ${upperBound.valueOf()})`;
}
else {
- let createdDate = new Date(this._dateValue);
+ const createdDate = new Date(this._dateValue);
if (!isNaN(createdDate.getTime())) {
- let lowerBound = new Date(createdDate.getFullYear() - yearOffset, createdDate.getMonth() - monthOffset, createdDate.getDate() - dayOffset);
- let upperBound = new Date(createdDate.getFullYear() + yearOffset, createdDate.getMonth() + monthOffset, createdDate.getDate() + dayOffset + 1);
+ const lowerBound = new Date(createdDate.getFullYear() - yearOffset, createdDate.getMonth() - monthOffset, createdDate.getDate() - dayOffset);
+ const upperBound = new Date(createdDate.getFullYear() + yearOffset, createdDate.getMonth() + monthOffset, createdDate.getDate() + dayOffset + 1);
dateRestrictionScript = `((doc.creationDate as any).date >= ${lowerBound.valueOf()} && (doc.creationDate as any).date <= ${upperBound.valueOf()})`;
}
}
- let fullScript = dateRestrictionScript.length || keyRestrictionScript.length ? dateRestrictionScript.length ?
+ const fullScript = dateRestrictionScript.length || keyRestrictionScript.length ? dateRestrictionScript.length ?
`${dateRestrictionScript} ${keyRestrictionScript.length ? "&&" : ""} (${keyRestrictionScript})` :
`(${keyRestrictionScript}) ${dateRestrictionScript.length ? "&&" : ""} ${dateRestrictionScript}` :
"true";
@@ -232,9 +250,9 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
@action
toggleCollapse = () => {
- this.props.CollectionView.props.Document.chromeStatus = this.props.CollectionView.props.Document.chromeStatus === "enabled" ? "collapsed" : "enabled";
+ this.props.CollectionView.props.Document._chromeStatus = this.props.CollectionView.props.Document._chromeStatus === "enabled" ? "collapsed" : "enabled";
if (this.props.collapse) {
- this.props.collapse(this.props.CollectionView.props.Document.chromeStatus !== "enabled");
+ this.props.collapse(this.props.CollectionView.props.Document._chromeStatus !== "enabled");
}
}
@@ -262,7 +280,7 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
@observable private pivotKeyDisplay = this.pivotKey;
getPivotInput = () => {
- if (StrCast(this.document.freeformLayoutEngine) !== "pivot") {
+ if (StrCast(this.document._freeformLayoutEngine) !== "pivot") {
return (null);
}
return (<input className="collectionViewBaseChrome-viewSpecsInput"
@@ -270,7 +288,7 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
value={this.pivotKeyDisplay}
onChange={action((e: React.ChangeEvent<HTMLInputElement>) => this.pivotKeyDisplay = e.currentTarget.value)}
onKeyPress={action((e: React.KeyboardEvent<HTMLInputElement>) => {
- let value = e.currentTarget.value;
+ const value = e.currentTarget.value;
if (e.which === 13) {
this.pivotKey = value;
this.pivotKeyDisplay = "";
@@ -289,15 +307,15 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
protected createDropTarget = (ele: HTMLDivElement) => {
this.dropDisposer && this.dropDisposer();
if (ele) {
- this.dropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.drop.bind(this) } });
+ this.dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this));
}
}
@undoBatch
@action
protected drop(e: Event, de: DragManager.DropEvent): boolean {
- if (de.data instanceof DragManager.DocumentDragData && de.data.draggedDocuments.length) {
- this._buttonizableCommands.filter(c => c.title === this._currentKey).map(c => c.immediate(de.data.draggedDocuments));
+ if (de.complete.docDragData && de.complete.docDragData.draggedDocuments.length) {
+ this._buttonizableCommands.filter(c => c.title === this._currentKey).map(c => c.immediate(de.complete.docDragData?.draggedDocuments || []));
e.stopPropagation();
}
return true;
@@ -357,7 +375,7 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
dragPointerMove = (e: PointerEvent) => {
e.stopPropagation();
e.preventDefault();
- let [dx, dy] = [e.clientX - this._startDragPosition.x, e.clientY - this._startDragPosition.y];
+ const [dx, dy] = [e.clientX - this._startDragPosition.x, e.clientY - this._startDragPosition.y];
if (Math.abs(dx) + Math.abs(dy) > this._sensitivity) {
this._buttonizableCommands.filter(c => c.title === this._currentKey).map(c =>
DragManager.StartButtonDrag([this._commandRef.current!], c.script, c.title,
@@ -373,7 +391,7 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
}
render() {
- let collapsed = this.props.CollectionView.props.Document.chromeStatus !== "enabled";
+ const collapsed = this.props.CollectionView.props.Document._chromeStatus !== "enabled";
return (
<div className="collectionViewChrome-cont" style={{ top: collapsed ? -70 : 0, height: collapsed ? 0 : undefined }}>
<div className="collectionViewChrome">
@@ -392,23 +410,21 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
className="collectionViewBaseChrome-viewPicker"
onPointerDown={stopPropagation}
onChange={this.viewChanged}
- value={NumCast(this.props.CollectionView.props.Document.viewType)}>
- <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="1">Freeform View</option>
- <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="2">Schema View</option>
- <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="4">Tree View</option>
- <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="5">Stacking View</option>
- <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="6">Masonry View</option>
- <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="7">Pivot View</option>
- <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="8">Linear View</option>
+ value={NumCast(this.props.CollectionView.props.Document._viewType)}>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="1">Freeform</option>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="2">schema</option>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="4">Tree</option>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="5">Stacking</option>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="6">Masonry</option>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="7">Multicolumn</option>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="8">Pivot</option>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="9">Carousel</option>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} value="10">Linear</option>
</select>
- <div className="collectionViewBaseChrome-viewSpecs" style={{ display: collapsed ? "none" : "grid" }}>
- <input className="collectionViewBaseChrome-viewSpecsInput"
- placeholder="FILTER"
- value={this.filterValue ? this.filterValue.script.originalScript === "return true" ? "" : this.filterValue.script.originalScript : ""}
- onChange={(e) => { }}
- onPointerDown={this.openViewSpecs}
- id="viewSpecsInput" />
- {this.getPivotInput()}
+ <div className="collectionViewBaseChrome-viewSpecs" title="filter documents to show" style={{ display: collapsed ? "none" : "grid" }}>
+ <div className="collectionViewBaseChrome-filterIcon" onPointerDown={this.openViewSpecs} >
+ <FontAwesomeIcon icon="filter" size="2x" />
+ </div>
<div className="collectionViewBaseChrome-viewSpecsMenu"
onPointerDown={this.openViewSpecs}
style={{
@@ -449,17 +465,20 @@ export class CollectionViewBaseChrome extends React.Component<CollectionViewChro
</div>
</div>
<div className="collectionViewBaseChrome-template" ref={this.createDropTarget} >
- <div className="commandEntry-outerDiv" ref={this._commandRef} onPointerDown={this.dragCommandDown}>
- <div className="commandEntry-inputArea" onPointerDown={this.autoSuggestDown} >
- <Autosuggest inputProps={{ value: this._currentKey, onChange: this.onKeyChange }}
- getSuggestionValue={this.getSuggestionValue}
- suggestions={this.suggestions}
- alwaysRenderSuggestions={true}
- renderSuggestion={this.renderSuggestion}
- onSuggestionsFetchRequested={this.onSuggestionFetch}
- onSuggestionsClearRequested={this.onSuggestionClear}
- ref={this._autosuggestRef} />
+ <div className="commandEntry-outerDiv" title="drop document to apply or drag to create button" ref={this._commandRef} onPointerDown={this.dragCommandDown}>
+ <div className="commandEntry-drop">
+ <FontAwesomeIcon icon="bullseye" size="2x"></FontAwesomeIcon>
</div>
+ <select
+ className="collectionViewBaseChrome-cmdPicker"
+ onPointerDown={stopPropagation}
+ onChange={this.commandChanged}
+ value={this._currentKey}>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} key={"empty"} value={""}>{""}</option>
+ {this._buttonizableCommands.map(cmd =>
+ <option className="collectionViewBaseChrome-viewOption" onPointerDown={stopPropagation} key={cmd.title} value={cmd.title}>{cmd.title}</option>
+ )}
+ </select>
</div>
</div>
</div>
@@ -480,7 +499,7 @@ export class CollectionStackingViewChrome extends React.Component<CollectionView
getKeySuggestions = async (value: string): Promise<string[]> => {
value = value.toLowerCase();
- let docs = DocListCast(this.props.CollectionView.props.Document[this.props.CollectionView.props.fieldKey]);
+ const docs = DocListCast(this.props.CollectionView.props.Document[this.props.CollectionView.props.fieldKey]);
if (docs instanceof Doc) {
return Object.keys(docs).filter(key => key.toLowerCase().startsWith(value));
} else {
@@ -571,44 +590,35 @@ export class CollectionSchemaViewChrome extends React.Component<CollectionViewCh
@undoBatch
togglePreview = () => {
- let dividerWidth = 4;
- let borderWidth = Number(COLLECTION_BORDER_WIDTH);
- let panelWidth = this.props.CollectionView.props.PanelWidth();
- let previewWidth = NumCast(this.props.CollectionView.props.Document.schemaPreviewWidth);
- let tableWidth = panelWidth - 2 * borderWidth - dividerWidth - previewWidth;
+ const dividerWidth = 4;
+ const borderWidth = Number(COLLECTION_BORDER_WIDTH);
+ const panelWidth = this.props.CollectionView.props.PanelWidth();
+ const previewWidth = NumCast(this.props.CollectionView.props.Document.schemaPreviewWidth);
+ const tableWidth = panelWidth - 2 * borderWidth - dividerWidth - previewWidth;
this.props.CollectionView.props.Document.schemaPreviewWidth = previewWidth === 0 ? Math.min(tableWidth / 3, 200) : 0;
}
@undoBatch
@action
toggleTextwrap = async () => {
- let textwrappedRows = Cast(this.props.CollectionView.props.Document.textwrappedSchemaRows, listSpec("string"), []);
+ const textwrappedRows = Cast(this.props.CollectionView.props.Document.textwrappedSchemaRows, listSpec("string"), []);
if (textwrappedRows.length) {
this.props.CollectionView.props.Document.textwrappedSchemaRows = new List<string>([]);
} else {
- let docs = DocListCast(this.props.CollectionView.props.Document[this.props.CollectionView.props.fieldKey]);
- let allRows = docs instanceof Doc ? [docs[Id]] : docs.map(doc => doc[Id]);
+ const docs = DocListCast(this.props.CollectionView.props.Document[this.props.CollectionView.props.fieldKey]);
+ const allRows = docs instanceof Doc ? [docs[Id]] : docs.map(doc => doc[Id]);
this.props.CollectionView.props.Document.textwrappedSchemaRows = new List<string>(allRows);
}
}
render() {
- let previewWidth = NumCast(this.props.CollectionView.props.Document.schemaPreviewWidth);
- let textWrapped = Cast(this.props.CollectionView.props.Document.textwrappedSchemaRows, listSpec("string"), []).length > 0;
+ const previewWidth = NumCast(this.props.CollectionView.props.Document.schemaPreviewWidth);
+ const textWrapped = Cast(this.props.CollectionView.props.Document.textwrappedSchemaRows, listSpec("string"), []).length > 0;
return (
<div className="collectionSchemaViewChrome-cont">
<div className="collectionSchemaViewChrome-toggle">
- <div className="collectionSchemaViewChrome-label">Wrap Text: </div>
- <div className="collectionSchemaViewChrome-toggler" onClick={this.toggleTextwrap}>
- <div className={"collectionSchemaViewChrome-togglerButton" + (textWrapped ? " on" : " off")}>
- {textWrapped ? "on" : "off"}
- </div>
- </div>
- </div>
-
- <div className="collectionSchemaViewChrome-toggle">
<div className="collectionSchemaViewChrome-label">Show Preview: </div>
<div className="collectionSchemaViewChrome-toggler" onClick={this.togglePreview}>
<div className={"collectionSchemaViewChrome-togglerButton" + (previewWidth !== 0 ? " on" : " off")}>
@@ -624,12 +634,19 @@ export class CollectionSchemaViewChrome extends React.Component<CollectionViewCh
@observer
export class CollectionTreeViewChrome extends React.Component<CollectionViewChromeProps> {
- @computed private get descending() { return Cast(this.props.CollectionView.props.Document.sortAscending, "boolean", null); }
+ get dataExtension() {
+ return this.props.CollectionView.props.Document[this.props.CollectionView.props.fieldKey + "_ext"] as Doc;
+ }
+ @computed private get descending() {
+ return this.dataExtension && Cast(this.dataExtension.sortAscending, "boolean", null);
+ }
@action toggleSort = () => {
- if (this.props.CollectionView.props.Document.sortAscending) this.props.CollectionView.props.Document.sortAscending = undefined;
- else if (this.props.CollectionView.props.Document.sortAscending === undefined) this.props.CollectionView.props.Document.sortAscending = false;
- else this.props.CollectionView.props.Document.sortAscending = true;
+ if (this.dataExtension) {
+ if (this.dataExtension.sortAscending) this.dataExtension.sortAscending = undefined;
+ else if (this.dataExtension.sortAscending === undefined) this.dataExtension.sortAscending = false;
+ else this.dataExtension.sortAscending = true;
+ }
}
render() {
diff --git a/src/client/views/collections/KeyRestrictionRow.tsx b/src/client/views/collections/KeyRestrictionRow.tsx
index e35b7d7d3..f3071b316 100644
--- a/src/client/views/collections/KeyRestrictionRow.tsx
+++ b/src/client/views/collections/KeyRestrictionRow.tsx
@@ -1,8 +1,6 @@
import * as React from "react";
import { observable, runInAction } from "mobx";
import { observer } from "mobx-react";
-import { PastelSchemaPalette } from "../../../new_fields/SchemaHeaderField";
-import { Doc } from "../../../new_fields/Doc";
interface IKeyRestrictionProps {
contains: boolean;
@@ -20,13 +18,13 @@ export default class KeyRestrictionRow extends React.Component<IKeyRestrictionPr
render() {
if (this._key && this._value) {
let parsedValue: string | number = `"${this._value}"`;
- let parsed = parseInt(this._value);
+ const parsed = parseInt(this._value);
let type = "string";
if (!isNaN(parsed)) {
parsedValue = parsed;
type = "number";
}
- let scriptText = `${this._contains ? "" : "!"}(((doc.${this._key} && (doc.${this._key} as ${type})${type === "string" ? ".includes" : "<="}(${parsedValue}))) ||
+ const scriptText = `${this._contains ? "" : "!"}(((doc.${this._key} && (doc.${this._key} as ${type})${type === "string" ? ".includes" : "<="}(${parsedValue}))) ||
((doc.data_ext && doc.data_ext.${this._key}) && (doc.data_ext.${this._key} as ${type})${type === "string" ? ".includes" : "<="}(${parsedValue}))))`;
// let doc = new Doc();
// ((doc.data_ext && doc.data_ext!.text) && (doc.data_ext!.text as string).includes("hello"));
diff --git a/src/client/views/collections/ParentDocumentSelector.scss b/src/client/views/collections/ParentDocumentSelector.scss
index c186d15f8..a266861bd 100644
--- a/src/client/views/collections/ParentDocumentSelector.scss
+++ b/src/client/views/collections/ParentDocumentSelector.scss
@@ -1,14 +1,25 @@
-.PDS-flyout {
- position: absolute;
+.parentDocumentSelector-linkFlyout {
+ div {
+ overflow: visible !important;
+ }
+ .metadataEntry-outerDiv {
+ overflow: hidden !important;
+ pointer-events: all;
+ }
+}
+.parentDocumentSelector-flyout {
+ position: relative;
z-index: 9999;
background-color: #eeeeee;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
- min-width: 150px;
color: black;
- top: 12px;
padding: 10px;
border-radius: 3px;
+ display: inline-block;
+ height: 100%;
+ width: 100%;
+ border-radius: 3px;
hr {
height: 1px;
@@ -21,9 +32,20 @@
}
}
.parentDocumentSelector-button {
- pointer-events: all;
+ pointer-events: all;
+ position: relative;
+ display: inline-block;
+}
+.parentDocumentSelector-metadata {
+ pointer-events: auto;
+ padding-right: 5px;
+ width: 25px;
+ display: inline-block;
}
.buttonSelector {
+ div {
+ overflow: visible !important;
+ }
position: absolute;
display: inline-block;
padding-left: 5px;
diff --git a/src/client/views/collections/ParentDocumentSelector.tsx b/src/client/views/collections/ParentDocumentSelector.tsx
index 8b6fa330c..115f8d633 100644
--- a/src/client/views/collections/ParentDocumentSelector.tsx
+++ b/src/client/views/collections/ParentDocumentSelector.tsx
@@ -6,17 +6,28 @@ import { observable, action, runInAction } from "mobx";
import { Id } from "../../../new_fields/FieldSymbols";
import { SearchUtil } from "../../util/SearchUtil";
import { CollectionDockingView } from "./CollectionDockingView";
-import { NumCast } from "../../../new_fields/Types";
+import { NumCast, StrCast } from "../../../new_fields/Types";
import { CollectionViewType } from "./CollectionView";
import { DocumentButtonBar } from "../DocumentButtonBar";
import { DocumentManager } from "../../util/DocumentManager";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { faEdit } from "@fortawesome/free-solid-svg-icons";
+import { faEdit, faChevronCircleUp } from "@fortawesome/free-solid-svg-icons";
import { library } from "@fortawesome/fontawesome-svg-core";
+import { MetadataEntryMenu } from "../MetadataEntryMenu";
+import { DocumentView } from "../nodes/DocumentView";
+const higflyout = require("@hig/flyout");
+export const { anchorPoints } = higflyout;
+export const Flyout = higflyout.default;
library.add(faEdit);
-type SelectorProps = { Document: Doc, Stack?: any, addDocTab(doc: Doc, dataDoc: Doc | undefined, location: string): void };
+type SelectorProps = {
+ Document: Doc,
+ Views: DocumentView[],
+ Stack?: any,
+ addDocTab(doc: Doc, dataDoc: Doc | undefined, location: string): void
+};
+
@observer
export class SelectorContextMenu extends React.Component<SelectorProps> {
@observable private _docs: { col: Doc, target: Doc }[] = [];
@@ -29,7 +40,7 @@ export class SelectorContextMenu extends React.Component<SelectorProps> {
}
async fetchDocuments() {
- let aliases = (await SearchUtil.GetAliasesOfDocument(this.props.Document)).filter(doc => doc !== this.props.Document);
+ const aliases = (await SearchUtil.GetAliasesOfDocument(this.props.Document)).filter(doc => doc !== this.props.Document);
const { docs } = await SearchUtil.Search("", true, { fq: `data_l:"${this.props.Document[Id]}"` });
const map: Map<Doc, Doc> = new Map;
const allDocs = await Promise.all(aliases.map(doc => SearchUtil.Search("", true, { fq: `data_l:"${doc[Id]}"` }).then(result => result.docs)));
@@ -44,59 +55,42 @@ export class SelectorContextMenu extends React.Component<SelectorProps> {
getOnClick({ col, target }: { col: Doc, target: Doc }) {
return () => {
col = Doc.IsPrototype(col) ? Doc.MakeDelegate(col) : col;
- if (NumCast(col.viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
- const newPanX = NumCast(target.x) + NumCast(target.width) / 2;
- const newPanY = NumCast(target.y) + NumCast(target.height) / 2;
- col.panX = newPanX;
- col.panY = newPanY;
+ if (NumCast(col._viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
+ const newPanX = NumCast(target.x) + NumCast(target._width) / 2;
+ const newPanY = NumCast(target.y) + NumCast(target._height) / 2;
+ col._panX = newPanX;
+ col._panY = newPanY;
}
this.props.addDocTab(col, undefined, "inTab"); // bcz: dataDoc?
};
}
render() {
- return (
- <>
- <p key="contexts">Contexts:</p>
- {this._docs.map(doc => <p key={doc.col[Id] + doc.target[Id]}><a onClick={this.getOnClick(doc)}>{doc.col.title}</a></p>)}
- {this._otherDocs.length ? <hr key="hr" /> : null}
- {this._otherDocs.map(doc => <p key="p"><a onClick={this.getOnClick(doc)}>{doc.col.title}</a></p>)}
- </>
- );
+ return <div >
+ <p key="contexts">Contexts:</p>
+ {this._docs.map(doc => <p key={doc.col[Id] + doc.target[Id]}><a onClick={this.getOnClick(doc)}>{doc.col.title?.toString()}</a></p>)}
+ {this._otherDocs.length ? <hr key="hr" /> : null}
+ {this._otherDocs.map(doc => <p key={"p" + doc.col[Id] + doc.target[Id]}><a onClick={this.getOnClick(doc)}>{doc.col.title?.toString()}</a></p>)}
+ </div>;
}
}
@observer
export class ParentDocSelector extends React.Component<SelectorProps> {
- @observable hover = false;
-
- @action
- onMouseLeave = () => {
- this.hover = false;
- }
-
- @action
- onMouseEnter = () => {
- this.hover = true;
- }
-
render() {
- let flyout;
- if (this.hover) {
- flyout = (
- <div className="PDS-flyout" title=" ">
- <SelectorContextMenu {...this.props} />
- </div>
- );
- }
- return (
- <span className="parentDocumentSelector-button" style={{ position: "relative", display: "inline-block", paddingLeft: "5px", paddingRight: "5px" }}
- onMouseEnter={this.onMouseEnter}
- onMouseLeave={this.onMouseLeave}>
- <p>^</p>
- {flyout}
- </span>
+ const flyout = (
+ <div className="parentDocumentSelector-flyout" style={{}} title=" ">
+ <SelectorContextMenu {...this.props} />
+ </div>
);
+ return <div title="Tap to View Contexts/Metadata" onPointerDown={e => e.stopPropagation()} className="parentDocumentSelector-linkFlyout">
+ <Flyout anchorPoint={anchorPoints.LEFT_TOP}
+ content={flyout}>
+ <span className="parentDocumentSelector-button" >
+ <FontAwesomeIcon icon={faChevronCircleUp} size={"lg"} />
+ </span>
+ </Flyout>
+ </div>;
}
}
@@ -105,32 +99,31 @@ export class ButtonSelector extends React.Component<{ Document: Doc, Stack: any
@observable hover = false;
@action
- onMouseLeave = () => {
- this.hover = false;
+ onPointerDown = (e: React.PointerEvent) => {
+ this.hover = !this.hover;
+ e.stopPropagation();
}
-
- @action
- onMouseEnter = () => {
- this.hover = true;
+ customStylesheet(styles: any) {
+ return {
+ ...styles,
+ panel: {
+ ...styles.panel,
+ minWidth: "100px"
+ },
+ };
}
render() {
- let flyout;
- if (this.hover) {
- let view = DocumentManager.Instance.getDocumentView(this.props.Document);
- flyout = !view ? (null) : (
- <div className="PDS-flyout" title=" " onMouseLeave={this.onMouseLeave}>
- <DocumentButtonBar views={[view]} stack={this.props.Stack} />
- </div>
- );
- }
- return (
- <span className="buttonSelector"
- onMouseEnter={this.onMouseEnter}
- onMouseLeave={this.onMouseLeave}>
- {this.hover ? (null) : <FontAwesomeIcon icon={faEdit} size={"sm"} />}
- {flyout}
- </span>
+ const view = DocumentManager.Instance.getDocumentView(this.props.Document);
+ const flyout = (
+ <div className="ParentDocumentSelector-flyout" title=" ">
+ <DocumentButtonBar views={[view]} stack={this.props.Stack} />
+ </div>
);
+ return <span title="Tap for menu" onPointerDown={e => e.stopPropagation()} className="buttonSelector">
+ <Flyout anchorPoint={anchorPoints.LEFT_TOP} content={flyout} stylesheet={this.customStylesheet}>
+ <FontAwesomeIcon icon={faEdit} size={"sm"} />
+ </Flyout>
+ </span>;
}
}
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx
index 48d330674..be1317b25 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLayoutEngines.tsx
@@ -1,11 +1,15 @@
import { Doc, Field, FieldResult } from "../../../../new_fields/Doc";
-import { NumCast, StrCast, Cast } from "../../../../new_fields/Types";
+import { NumCast, StrCast, Cast, DateCast } from "../../../../new_fields/Types";
import { ScriptBox } from "../../ScriptBox";
import { CompileScript } from "../../../util/Scripting";
import { ScriptField } from "../../../../new_fields/ScriptField";
import { OverlayView, OverlayElementOptions } from "../../OverlayView";
import { emptyFunction } from "../../../../Utils";
import React = require("react");
+import { ObservableMap, runInAction } from "mobx";
+import { Id, ToString } from "../../../../new_fields/FieldSymbols";
+import { ObjectField } from "../../../../new_fields/ObjectField";
+import { RefField } from "../../../../new_fields/RefField";
interface PivotData {
type: string;
@@ -31,13 +35,20 @@ export interface ViewDefResult {
bounds?: ViewDefBounds;
}
-export function computePivotLayout(pivotDoc: Doc, childDocs: Doc[], childPairs: { layout: Doc, data?: Doc }[], viewDefsToJSX: (views: any) => ViewDefResult[]) {
- let layoutPoolData: Map<{ layout: Doc, data?: Doc }, any> = new Map();
+function toLabel(target: FieldResult<Field>) {
+ if (target instanceof ObjectField || target instanceof RefField) {
+ return target[ToString]();
+ }
+ return String(target);
+}
+
+export function computePivotLayout(poolData: ObservableMap<string, any>, pivotDoc: Doc, childDocs: Doc[], childPairs: { layout: Doc, data?: Doc }[], panelDim: number[], viewDefsToJSX: (views: any) => ViewDefResult[]) {
const pivotAxisWidth = NumCast(pivotDoc.pivotWidth, 200);
const pivotColumnGroups = new Map<FieldResult<Field>, Doc[]>();
+ const pivotFieldKey = toLabel(pivotDoc.pivotField);
for (const doc of childDocs) {
- const val = doc[StrCast(pivotDoc.pivotField, "title")];
+ const val = Field.toString(doc[pivotFieldKey] as Field);
if (val) {
!pivotColumnGroups.get(val) && pivotColumnGroups.set(val, []);
pivotColumnGroups.get(val)!.push(doc);
@@ -45,60 +56,72 @@ export function computePivotLayout(pivotDoc: Doc, childDocs: Doc[], childPairs:
}
const minSize = Array.from(pivotColumnGroups.entries()).reduce((min, pair) => Math.min(min, pair[1].length), Infinity);
- const numCols = NumCast(pivotDoc.pivotNumColumns, Math.ceil(Math.sqrt(minSize)));
+ let numCols = NumCast(pivotDoc.pivotNumColumns, Math.ceil(Math.sqrt(minSize)));
const docMap = new Map<Doc, ViewDefBounds>();
const groupNames: PivotData[] = [];
+ numCols = Math.min(panelDim[0] / pivotAxisWidth, numCols);
+ const expander = 1.05;
+ const gap = .15;
let x = 0;
pivotColumnGroups.forEach((val, key) => {
let y = 0;
let xCount = 0;
groupNames.push({
type: "text",
- text: String(key),
+ text: toLabel(key),
x,
y: pivotAxisWidth + 50,
- width: pivotAxisWidth * 1.25 * numCols,
- height: 100,
+ width: pivotAxisWidth * expander * numCols,
+ height: NumCast(pivotDoc.pivotFontSize, 10),
fontSize: NumCast(pivotDoc.pivotFontSize, 10)
});
for (const doc of val) {
- let layoutDoc = Doc.Layout(doc);
+ const layoutDoc = Doc.Layout(doc);
+ let wid = pivotAxisWidth;
+ let hgt = layoutDoc._nativeWidth ? (NumCast(layoutDoc._nativeHeight) / NumCast(layoutDoc._nativeWidth)) * pivotAxisWidth : pivotAxisWidth;
+ if (hgt > pivotAxisWidth) {
+ hgt = pivotAxisWidth;
+ wid = layoutDoc._nativeHeight ? (NumCast(layoutDoc._nativeWidth) / NumCast(layoutDoc._nativeHeight)) * pivotAxisWidth : pivotAxisWidth;
+ }
docMap.set(doc, {
- x: x + xCount * pivotAxisWidth * 1.25,
+ x: x + xCount * pivotAxisWidth * expander + (pivotAxisWidth - wid) / 2 + (val.length < numCols ? (numCols - val.length) * pivotAxisWidth / 2 : 0),
y: -y,
- width: pivotAxisWidth,
- height: layoutDoc.nativeWidth ? (NumCast(layoutDoc.nativeHeight) / NumCast(layoutDoc.nativeWidth)) * pivotAxisWidth : pivotAxisWidth
+ width: wid,
+ height: hgt
});
xCount++;
if (xCount >= numCols) {
xCount = 0;
- y += pivotAxisWidth * 1.25;
+ y += pivotAxisWidth * expander;
}
}
- x += pivotAxisWidth * 1.25 * (numCols + 1);
+ x += pivotAxisWidth * (numCols * expander + gap);
});
childPairs.map(pair => {
- let defaultPosition = {
+ const defaultPosition = {
x: NumCast(pair.layout.x),
y: NumCast(pair.layout.y),
z: NumCast(pair.layout.z),
- width: NumCast(pair.layout.width),
- height: NumCast(pair.layout.height)
+ width: NumCast(pair.layout._width),
+ height: NumCast(pair.layout._height)
};
const pos = docMap.get(pair.layout) || defaultPosition;
- layoutPoolData.set(pair, { transition: "transform 1s", ...pos });
+ const data = poolData.get(pair.layout[Id]);
+ if (!data || pos.x !== data.x || pos.y !== data.y || pos.z !== data.z || pos.width !== data.width || pos.height !== data.height) {
+ runInAction(() => poolData.set(pair.layout[Id], { transition: "transform 1s", ...pos }));
+ }
});
- return { map: layoutPoolData, elements: viewDefsToJSX(groupNames) };
+ return { elements: viewDefsToJSX(groupNames) };
}
export function AddCustomFreeFormLayout(doc: Doc, dataKey: string): () => void {
return () => {
- let addOverlay = (key: "arrangeScript" | "arrangeInit", options: OverlayElementOptions, params?: Record<string, string>, requiredType?: string) => {
+ const addOverlay = (key: "arrangeScript" | "arrangeInit", options: OverlayElementOptions, params?: Record<string, string>, requiredType?: string) => {
let overlayDisposer: () => void = emptyFunction; // filled in below after we have a reference to the scriptingBox
const scriptField = Cast(doc[key], ScriptField);
- let scriptingBox = <ScriptBox initialText={scriptField && scriptField.script.originalScript}
+ const scriptingBox = <ScriptBox initialText={scriptField && scriptField.script.originalScript}
// tslint:disable-next-line: no-unnecessary-callback-wrapper
onCancel={() => overlayDisposer()} // don't get rid of the function wrapper-- we don't want to use the current value of overlayDiposer, but the one set below
onSave={(text, onError) => {
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx
index 837413842..b8fbaef5c 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinkView.tsx
@@ -6,7 +6,9 @@ import "./CollectionFreeFormLinkView.scss";
import React = require("react");
import v5 = require("uuid/v5");
import { DocumentType } from "../../../documents/DocumentTypes";
-import { observable, action } from "mobx";
+import { observable, action, reaction, IReactionDisposer } from "mobx";
+import { StrCast } from "../../../../new_fields/Types";
+import { Id } from "../../../../new_fields/FieldSymbols";
export interface CollectionFreeFormLinkViewProps {
A: DocumentView;
@@ -16,36 +18,87 @@ export interface CollectionFreeFormLinkViewProps {
@observer
export class CollectionFreeFormLinkView extends React.Component<CollectionFreeFormLinkViewProps> {
- @observable _alive: number = 0;
- @observable _opacity: number = 1;
+ @observable _opacity: number = 0;
+ _anchorDisposer: IReactionDisposer | undefined;
@action
componentDidMount() {
- this._alive = 1;
- setTimeout(this.rerender, 50);
- setTimeout(action(() => this._opacity = 0.05), 50);
+ this._anchorDisposer = reaction(() => [this.props.A.props.ScreenToLocalTransform(), this.props.B.props.ScreenToLocalTransform(), this.props.A.isSelected() || Doc.IsBrushed(this.props.A.props.Document), this.props.A.isSelected() || Doc.IsBrushed(this.props.A.props.Document)],
+ action(() => {
+ setTimeout(action(() => this._opacity = 1), 0); // since the render code depends on querying the Dom through getBoudndingClientRect, we need to delay triggering render()
+ setTimeout(action(() => this._opacity = 0.05), 750); // this will unhighlight the link line.
+ const acont = this.props.A.props.Document.type === DocumentType.LINK ? this.props.A.ContentDiv!.getElementsByClassName("docuLinkBox-cont") : [];
+ const bcont = this.props.B.props.Document.type === DocumentType.LINK ? this.props.B.ContentDiv!.getElementsByClassName("docuLinkBox-cont") : [];
+ const adiv = (acont.length ? acont[0] : this.props.A.ContentDiv!);
+ const bdiv = (bcont.length ? bcont[0] : this.props.B.ContentDiv!);
+ const a = adiv.getBoundingClientRect();
+ const b = bdiv.getBoundingClientRect();
+ const abounds = adiv.parentElement!.getBoundingClientRect();
+ const bbounds = bdiv.parentElement!.getBoundingClientRect();
+ const apt = Utils.closestPtBetweenRectangles(abounds.left, abounds.top, abounds.width, abounds.height,
+ bbounds.left, bbounds.top, bbounds.width, bbounds.height,
+ a.left + a.width / 2, a.top + a.height / 2);
+ const bpt = Utils.closestPtBetweenRectangles(bbounds.left, bbounds.top, bbounds.width, bbounds.height,
+ abounds.left, abounds.top, abounds.width, abounds.height,
+ apt.point.x, apt.point.y);
+ const afield = StrCast(this.props.A.props.Document[StrCast(this.props.A.props.layoutKey, "layout")]).indexOf("anchor1") === -1 ? "anchor2" : "anchor1";
+ const bfield = afield === "anchor1" ? "anchor2" : "anchor1";
+
+ // really hacky stuff to make the DocuLinkBox display where we want it to:
+ // if there's an element in the DOM with the id of the opposite anchor, then that DOM element is a hyperlink source for the current anchor and we want to place our link box at it's top right
+ // otherwise, we just use the computed nearest point on the document boundary to the target Document
+ const targetAhyperlink = window.document.getElementById((this.props.LinkDocs[0][afield] as Doc)[Id]);
+ const targetBhyperlink = window.document.getElementById((this.props.LinkDocs[0][bfield] as Doc)[Id]);
+ if (!targetBhyperlink) {
+ this.props.A.props.Document[afield + "_x"] = (apt.point.x - abounds.left) / abounds.width * 100;
+ this.props.A.props.Document[afield + "_y"] = (apt.point.y - abounds.top) / abounds.height * 100;
+ } else {
+ setTimeout(() => {
+ (this.props.A.props.Document[(this.props.A.props as any).fieldKey] as Doc);
+ const m = targetBhyperlink.getBoundingClientRect();
+ const mp = this.props.A.props.ScreenToLocalTransform().transformPoint(m.right, m.top + 5);
+ this.props.A.props.Document[afield + "_x"] = mp[0] / this.props.A.props.PanelWidth() * 100;
+ this.props.A.props.Document[afield + "_y"] = mp[1] / this.props.A.props.PanelHeight() * 100;
+ }, 0);
+ }
+ if (!targetAhyperlink) {
+ this.props.A.props.Document[bfield + "_x"] = (bpt.point.x - bbounds.left) / bbounds.width * 100;
+ this.props.A.props.Document[bfield + "_y"] = (bpt.point.y - bbounds.top) / bbounds.height * 100;
+ } else {
+ setTimeout(() => {
+ (this.props.B.props.Document[(this.props.B.props as any).fieldKey] as Doc);
+ const m = targetAhyperlink.getBoundingClientRect();
+ const mp = this.props.B.props.ScreenToLocalTransform().transformPoint(m.right, m.top + 5);
+ this.props.B.props.Document[afield + "_x"] = mp[0] / this.props.B.props.PanelWidth() * 100;
+ this.props.B.props.Document[afield + "_y"] = mp[1] / this.props.B.props.PanelHeight() * 100;
+ }, 0);
+ }
+ })
+ , { fireImmediately: true });
}
@action
componentWillUnmount() {
- this._alive = 0;
+ this._anchorDisposer?.();
}
- rerender = action(() => {
- if (this._alive) {
- setTimeout(this.rerender, 50);
- this._alive++;
- }
- });
render() {
- let y = this._alive;
- let acont = this.props.A.props.Document.type === DocumentType.LINK ? this.props.A.ContentDiv!.getElementsByClassName("docuLinkBox-cont") : [];
- let bcont = this.props.B.props.Document.type === DocumentType.LINK ? this.props.B.ContentDiv!.getElementsByClassName("docuLinkBox-cont") : [];
- let a = (acont.length ? acont[0] : this.props.A.ContentDiv!).getBoundingClientRect();
- let b = (bcont.length ? bcont[0] : this.props.B.ContentDiv!).getBoundingClientRect();
- let pt1 = Utils.getNearestPointInPerimeter(a.left, a.top, a.width, a.height, b.left + b.width / 2, b.top + b.height / 2);
- let pt2 = Utils.getNearestPointInPerimeter(b.left, b.top, b.width, b.height, a.left + a.width / 2, a.top + a.height / 2);
- return (<line key="linkLine" className="collectionfreeformlinkview-linkLine"
- style={{ opacity: this._opacity }}
- x1={`${pt1[0]}`} y1={`${pt1[1]}`}
- x2={`${pt2[0]}`} y2={`${pt2[1]}`} />);
+ const acont = this.props.A.props.Document.type === DocumentType.LINK ? this.props.A.ContentDiv!.getElementsByClassName("docuLinkBox-cont") : [];
+ const bcont = this.props.B.props.Document.type === DocumentType.LINK ? this.props.B.ContentDiv!.getElementsByClassName("docuLinkBox-cont") : [];
+ const a = (acont.length ? acont[0] : this.props.A.ContentDiv!).getBoundingClientRect();
+ const b = (bcont.length ? bcont[0] : this.props.B.ContentDiv!).getBoundingClientRect();
+ const apt = Utils.closestPtBetweenRectangles(a.left, a.top, a.width, a.height,
+ b.left, b.top, b.width, b.height,
+ a.left + a.width / 2, a.top + a.height / 2);
+ const bpt = Utils.closestPtBetweenRectangles(b.left, b.top, b.width, b.height,
+ a.left, a.top, a.width, a.height,
+ apt.point.x, apt.point.y);
+ const pt1 = [apt.point.x, apt.point.y];
+ const pt2 = [bpt.point.x, bpt.point.y];
+ const aActive = this.props.A.isSelected() || Doc.IsBrushed(this.props.A.props.Document);
+ const bActive = this.props.A.isSelected() || Doc.IsBrushed(this.props.A.props.Document);
+ return !aActive && !bActive ? (null) :
+ <line key="linkLine" className="collectionfreeformlinkview-linkLine"
+ style={{ opacity: this._opacity, strokeDasharray: "2 2" }}
+ x1={`${pt1[0]}`} y1={`${pt1[1]}`}
+ x2={`${pt2[0]}`} y2={`${pt2[1]}`} />;
}
} \ No newline at end of file
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx
index e9191c176..044d35eca 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx
@@ -72,11 +72,11 @@ export class CollectionFreeFormLinksView extends React.Component {
}
@computed
get uniqueConnections() {
- let connections = DocumentManager.Instance.LinkedDocumentViews.reduce((drawnPairs, connection) => {
+ const connections = DocumentManager.Instance.LinkedDocumentViews.reduce((drawnPairs, connection) => {
if (!drawnPairs.reduce((found, drawnPair) => {
- let match1 = (connection.a === drawnPair.a && connection.b === drawnPair.b);
- let match2 = (connection.a === drawnPair.b && connection.b === drawnPair.a);
- let match = match1 || match2;
+ const match1 = (connection.a === drawnPair.a && connection.b === drawnPair.b);
+ const match2 = (connection.a === drawnPair.b && connection.b === drawnPair.a);
+ const match = match1 || match2;
if (match && !drawnPair.l.reduce((found, link) => found || link[Id] === connection.l[Id], false)) {
drawnPair.l.push(connection.l);
}
@@ -91,13 +91,11 @@ export class CollectionFreeFormLinksView extends React.Component {
}
render() {
- return (
- <div className="collectionfreeformlinksview-container">
- <svg className="collectionfreeformlinksview-svgCanvas">
- {SelectionManager.GetIsDragging() ? (null) : this.uniqueConnections}
- </svg>
- {this.props.children}
- </div>
- );
+ return <div className="collectionfreeformlinksview-container">
+ <svg className="collectionfreeformlinksview-svgCanvas">
+ {SelectionManager.GetIsDragging() ? (null) : this.uniqueConnections}
+ </svg>
+ {this.props.children}
+ </div>;
}
} \ No newline at end of file
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx
index b8148852d..bb9ae4326 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormRemoteCursors.tsx
@@ -13,14 +13,14 @@ import v5 = require("uuid/v5");
export class CollectionFreeFormRemoteCursors extends React.Component<CollectionViewProps> {
protected getCursors(): CursorField[] {
- let doc = this.props.Document;
+ const doc = this.props.Document;
- let id = CurrentUserUtils.id;
+ const id = CurrentUserUtils.id;
if (!id) {
return [];
}
- let cursors = Cast(doc.cursors, listSpec(CursorField));
+ const cursors = Cast(doc.cursors, listSpec(CursorField));
const now = mobxUtils.now();
// const now = Date.now();
@@ -30,7 +30,7 @@ export class CollectionFreeFormRemoteCursors extends React.Component<CollectionV
private crosshairs?: HTMLCanvasElement;
drawCrosshairs = (backgroundColor: string) => {
if (this.crosshairs) {
- let ctx = this.crosshairs.getContext('2d');
+ const ctx = this.crosshairs.getContext('2d');
if (ctx) {
ctx.fillStyle = backgroundColor;
ctx.fillRect(0, 0, 20, 20);
@@ -62,8 +62,8 @@ export class CollectionFreeFormRemoteCursors extends React.Component<CollectionV
get sharedCursors() {
return this.getCursors().map(c => {
- let m = c.data.metadata;
- let l = c.data.position;
+ const m = c.data.metadata;
+ const l = c.data.position;
this.drawCrosshairs("#" + v5(m.id, v5.URL).substring(0, 6).toUpperCase() + "22");
return (
<div key={m.id} className="collectionFreeFormRemoteCursors-cont"
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.scss b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.scss
index bb1a12f88..58fb81453 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.scss
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.scss
@@ -1,5 +1,6 @@
@import "../../globalCssVariables";
+.collectionfreeformview-none,
.collectionfreeformview-ease {
position: inherit;
top: 0;
@@ -7,16 +8,15 @@
width: 100%;
height: 100%;
transform-origin: left top;
+ border-radius: inherit;
+}
+
+.collectionfreeformview-ease {
transition: transform 1s;
}
.collectionfreeformview-none {
- position: inherit;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- transform-origin: left top;
+ touch-action: none;
}
.collectionFreeform-customText {
@@ -25,6 +25,24 @@
}
.collectionfreeformview-container {
+ // touch action none means that the browser will handle none of the touch actions. this allows us to implement our own actions.
+ touch-action: none;
+
+ .collectionfreeformview-placeholder {
+ background: gray;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ .collectionfreeformview-placeholderSpan {
+ font-size: 32;
+ display: flex;
+ text-align: center;
+ margin: auto;
+ background: #80808069;
+ }
+ }
+
.collectionfreeformview>.jsx-parser {
position: inherit;
height: 100%;
@@ -41,7 +59,6 @@
// linear-gradient(to bottom, $light-color-secondary 1px, transparent 1px);
// background-size: 30px 30px;
// }
- opacity: 0.99;
border: 0px solid $light-color-secondary;
border-radius: inherit;
box-sizing: border-box;
@@ -50,6 +67,8 @@
left: 0;
width: 100%;
height: 100%;
+ align-items: center;
+ display: flex;
}
// selection border...?
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index bfec545c6..53fe2b18c 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -1,54 +1,63 @@
import { library } from "@fortawesome/fontawesome-svg-core";
import { faEye } from "@fortawesome/free-regular-svg-icons";
import { faBraille, faChalkboard, faCompass, faCompressArrowsAlt, faExpandArrowsAlt, faFileUpload, faPaintBrush, faTable, faUpload } from "@fortawesome/free-solid-svg-icons";
-import { action, computed, observable } from "mobx";
+import { action, computed, observable, ObservableMap, reaction, runInAction, IReactionDisposer } from "mobx";
import { observer } from "mobx-react";
-import { Doc, DocListCast, HeightSym, Opt, WidthSym } from "../../../../new_fields/Doc";
+import { Doc, DocListCast, HeightSym, Opt, WidthSym, DocListCastAsync, Field } from "../../../../new_fields/Doc";
+import { documentSchema, positionSchema } from "../../../../new_fields/documentSchemas";
import { Id } from "../../../../new_fields/FieldSymbols";
-import { InkField, StrokeData } from "../../../../new_fields/InkField";
+import { InkTool, InkField, InkData } from "../../../../new_fields/InkField";
import { createSchema, makeInterface } from "../../../../new_fields/Schema";
import { ScriptField } from "../../../../new_fields/ScriptField";
-import { BoolCast, Cast, DateCast, NumCast, StrCast } from "../../../../new_fields/Types";
+import { BoolCast, Cast, DateCast, NumCast, StrCast, ScriptCast, FieldValue } from "../../../../new_fields/Types";
import { CurrentUserUtils } from "../../../../server/authentication/models/current_user_utils";
import { aggregateBounds, emptyFunction, intersectRect, returnOne, Utils } from "../../../../Utils";
-import { CognitiveServices } from "../../../cognitive_services/CognitiveServices";
-import { Docs } from "../../../documents/Documents";
+import { DocServer } from "../../../DocServer";
+import { Docs, DocUtils } from "../../../documents/Documents";
import { DocumentType } from "../../../documents/DocumentTypes";
import { DocumentManager } from "../../../util/DocumentManager";
import { DragManager } from "../../../util/DragManager";
import { HistoryUtil } from "../../../util/History";
+import { InteractionUtils } from "../../../util/InteractionUtils";
import { SelectionManager } from "../../../util/SelectionManager";
import { Transform } from "../../../util/Transform";
import { undoBatch, UndoManager } from "../../../util/UndoManager";
import { COLLECTION_BORDER_WIDTH } from "../../../views/globalCssVariables.scss";
import { ContextMenu } from "../../ContextMenu";
import { ContextMenuProps } from "../../ContextMenuItem";
-import { InkingCanvas } from "../../InkingCanvas";
+import { InkingControl } from "../../InkingControl";
import { CollectionFreeFormDocumentView } from "../../nodes/CollectionFreeFormDocumentView";
import { DocumentContentsView } from "../../nodes/DocumentContentsView";
import { FormattedTextBox } from "../../nodes/FormattedTextBox";
import { pageSchema } from "../../nodes/ImageBox";
+import PDFMenu from "../../pdf/PDFMenu";
import { CollectionSubView } from "../CollectionSubView";
import { computePivotLayout, ViewDefResult } from "./CollectionFreeFormLayoutEngines";
import { CollectionFreeFormRemoteCursors } from "./CollectionFreeFormRemoteCursors";
import "./CollectionFreeFormView.scss";
+import MarqueeOptionsMenu from "./MarqueeOptionsMenu";
import { MarqueeView } from "./MarqueeView";
import React = require("react");
-import { DocServer } from "../../../DocServer";
-import { documentSchema, positionSchema } from "../../../../new_fields/documentSchemas";
+import { computedFn } from "mobx-utils";
+import { TraceMobx } from "../../../../new_fields/util";
+import { GestureUtils } from "../../../../pen-gestures/GestureUtils";
+import { CognitiveServices } from "../../../cognitive_services/CognitiveServices";
+import { RichTextField } from "../../../../new_fields/RichTextField";
+import { List } from "../../../../new_fields/List";
import { DocumentViewProps } from "../../nodes/DocumentView";
library.add(faEye as any, faTable, faPaintBrush, faExpandArrowsAlt, faCompressArrowsAlt, faCompass, faUpload, faBraille, faChalkboard, faFileUpload);
export const panZoomSchema = createSchema({
- panX: "number",
- panY: "number",
+ _panX: "number",
+ _panY: "number",
scale: "number",
arrangeScript: ScriptField,
arrangeInit: ScriptField,
useClusters: "boolean",
- isRuleProvider: "boolean",
fitToBox: "boolean",
+ xPadding: "number", // pixels of padding on left/right of collectionfreeformview contents when fitToBox is set
+ yPadding: "number", // pixels of padding on left/right of collectionfreeformview contents when fitToBox is set
panTransformType: "string",
scrollHeight: "number",
fitX: "number",
@@ -64,20 +73,28 @@ const PanZoomDocument = makeInterface(panZoomSchema, documentSchema, positionSch
export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
private _lastX: number = 0;
private _lastY: number = 0;
+ private _inkToTextStartX: number | undefined;
+ private _inkToTextStartY: number | undefined;
+ private _wordPalette: Map<string, string> = new Map<string, string>();
private _clusterDistance: number = 75;
private _hitCluster = false;
+ private _layoutComputeReaction: IReactionDisposer | undefined;
+ private _layoutPoolData = new ObservableMap<string, any>();
+
+ public get displayName() { return "CollectionFreeFormView(" + this.props.Document.title?.toString() + ")"; } // this makes mobx trace() statements more descriptive
+ @observable.shallow _layoutElements: ViewDefResult[] = []; // shallow because some layout items (eg pivot labels) are just generated 'divs' and can't be frozen as observables
@observable _clusterSets: (Doc[])[] = [];
- @computed get fitToContent() { return (this.props.fitToBox || this.Document.fitToBox) && !this.isAnnotationOverlay; }
+ @computed get fitToContent() { return (this.props.fitToBox || this.Document._fitToBox) && !this.isAnnotationOverlay; }
@computed get parentScaling() { return this.props.ContentScaling && this.fitToContent && !this.isAnnotationOverlay ? this.props.ContentScaling() : 1; }
- @computed get contentBounds() { return aggregateBounds(this.elements.filter(e => e.bounds && !e.bounds.z).map(e => e.bounds!)); }
- @computed get nativeWidth() { return this.Document.fitToContent ? 0 : this.Document.nativeWidth || 0; }
- @computed get nativeHeight() { return this.fitToContent ? 0 : this.Document.nativeHeight || 0; }
+ @computed get contentBounds() { return aggregateBounds(this._layoutElements.filter(e => e.bounds && !e.bounds.z).map(e => e.bounds!), NumCast(this.layoutDoc.xPadding, 10), NumCast(this.layoutDoc.yPadding, 10)); }
+ @computed get nativeWidth() { return this.Document._fitToContent ? 0 : NumCast(this.Document._nativeWidth); }
+ @computed get nativeHeight() { return this.fitToContent ? 0 : NumCast(this.Document._nativeHeight); }
private get isAnnotationOverlay() { return this.props.isAnnotationOverlay; }
private get borderWidth() { return this.isAnnotationOverlay ? 0 : COLLECTION_BORDER_WIDTH; }
private easing = () => this.props.Document.panTransformType === "Ease";
- private panX = () => this.fitToContent ? (this.contentBounds.x + this.contentBounds.r) / 2 : this.Document.panX || 0;
- private panY = () => this.fitToContent ? (this.contentBounds.y + this.contentBounds.b) / 2 : this.Document.panY || 0;
+ private panX = () => this.fitToContent ? (this.contentBounds.x + this.contentBounds.r) / 2 : this.Document._panX || 0;
+ private panY = () => this.fitToContent ? (this.contentBounds.y + this.contentBounds.b) / 2 : this.Document._panY || 0;
private zoomScaling = () => (1 / this.parentScaling) * (this.fitToContent ?
Math.min(this.props.PanelHeight() / (this.contentBounds.b - this.contentBounds.y), this.props.PanelWidth() / (this.contentBounds.r - this.contentBounds.x)) :
this.Document.scale || 1)
@@ -89,18 +106,10 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
private getLocalTransform = (): Transform => Transform.Identity().scale(1 / this.zoomScaling()).translate(this.panX(), this.panY());
private addLiveTextBox = (newBox: Doc) => {
FormattedTextBox.SelectOnLoad = newBox[Id];// track the new text box so we can give it a prop that tells it to focus itself when it's displayed
- let maxHeading = this.childDocs.reduce((maxHeading, doc) => NumCast(doc.heading) > maxHeading ? NumCast(doc.heading) : maxHeading, 0);
- let heading = maxHeading === 0 || this.childDocs.length === 0 ? 1 : maxHeading === 1 ? 2 : 0;
- if (heading === 0) {
- let sorted = this.childDocs.filter(d => d.type === DocumentType.TEXT && d.data_ext instanceof Doc && d.data_ext.lastModified).sort((a, b) => DateCast((Cast(a.data_ext, Doc) as Doc).lastModified).date > DateCast((Cast(b.data_ext, Doc) as Doc).lastModified).date ? 1 :
- DateCast((Cast(a.data_ext, Doc) as Doc).lastModified).date < DateCast((Cast(b.data_ext, Doc) as Doc).lastModified).date ? -1 : 0);
- heading = !sorted.length ? Math.max(1, maxHeading) : NumCast(sorted[sorted.length - 1].heading) === 1 ? 2 : NumCast(sorted[sorted.length - 1].heading);
- }
- !this.Document.isRuleProvider && (newBox.heading = heading);
this.addDocument(newBox);
}
private addDocument = (newBox: Doc) => {
- let added = this.props.addDocument(newBox);
+ const added = this.props.addDocument(newBox);
added && this.bringToFront(newBox);
added && this.updateCluster(newBox);
return added;
@@ -117,54 +126,54 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
@action
onDrop = (e: React.DragEvent): Promise<void> => {
- var pt = this.getTransform().transformPoint(e.pageX, e.pageY);
+ const pt = this.getTransform().transformPoint(e.pageX, e.pageY);
return super.onDrop(e, { x: pt[0], y: pt[1] });
}
@undoBatch
@action
drop = (e: Event, de: DragManager.DropEvent) => {
- let xf = this.getTransform();
- let xfo = this.getTransformOverlay();
- let [xp, yp] = xf.transformPoint(de.x, de.y);
- let [xpo, ypo] = xfo.transformPoint(de.x, de.y);
+ const xf = this.getTransform();
+ const xfo = this.getTransformOverlay();
+ const [xp, yp] = xf.transformPoint(de.x, de.y);
+ const [xpo, ypo] = xfo.transformPoint(de.x, de.y);
if (super.drop(e, de)) {
- if (de.data instanceof DragManager.DocumentDragData) {
- if (de.data.droppedDocuments.length) {
- let firstDoc = de.data.droppedDocuments[0];
- let z = NumCast(firstDoc.z);
- let x = (z ? xpo : xp) - de.data.offset[0];
- let y = (z ? ypo : yp) - de.data.offset[1];
- let dropX = NumCast(firstDoc.x);
- let dropY = NumCast(firstDoc.y);
- de.data.droppedDocuments.forEach(action((d: Doc) => {
- let layoutDoc = Doc.Layout(d);
+ if (de.complete.docDragData) {
+ if (de.complete.docDragData.droppedDocuments.length) {
+ const firstDoc = de.complete.docDragData.droppedDocuments[0];
+ const z = NumCast(firstDoc.z);
+ const x = (z ? xpo : xp) - de.complete.docDragData.offset[0];
+ const y = (z ? ypo : yp) - de.complete.docDragData.offset[1];
+ const dropX = NumCast(firstDoc.x);
+ const dropY = NumCast(firstDoc.y);
+ de.complete.docDragData.droppedDocuments.forEach(action((d: Doc) => {
+ const layoutDoc = Doc.Layout(d);
d.x = x + NumCast(d.x) - dropX;
d.y = y + NumCast(d.y) - dropY;
- if (!NumCast(layoutDoc.width)) {
- layoutDoc.width = 300;
+ if (!NumCast(layoutDoc._width)) {
+ layoutDoc._width = 300;
}
- if (!NumCast(layoutDoc.height)) {
- let nw = NumCast(layoutDoc.nativeWidth);
- let nh = NumCast(layoutDoc.nativeHeight);
- layoutDoc.height = nw && nh ? nh / nw * NumCast(layoutDoc.width) : 300;
+ if (!NumCast(layoutDoc._height)) {
+ const nw = NumCast(layoutDoc._nativeWidth);
+ const nh = NumCast(layoutDoc._nativeHeight);
+ layoutDoc._height = nw && nh ? nh / nw * NumCast(layoutDoc._width) : 300;
}
this.bringToFront(d);
}));
- de.data.droppedDocuments.length === 1 && this.updateCluster(de.data.droppedDocuments[0]);
+ (de.complete.docDragData.droppedDocuments.length === 1 || de.shiftKey) && this.updateClusterDocs(de.complete.docDragData.droppedDocuments);
}
}
- else if (de.data instanceof DragManager.AnnotationDragData) {
- if (de.data.dropDocument) {
- let dragDoc = de.data.dropDocument;
- let x = xp - de.data.offset[0];
- let y = yp - de.data.offset[1];
- let dropX = NumCast(dragDoc.x);
- let dropY = NumCast(dragDoc.y);
+ else if (de.complete.annoDragData) {
+ if (de.complete.annoDragData.dropDocument) {
+ const dragDoc = de.complete.annoDragData.dropDocument;
+ const x = xp - de.complete.annoDragData.offset[0];
+ const y = yp - de.complete.annoDragData.offset[1];
+ const dropX = NumCast(dragDoc.x);
+ const dropY = NumCast(dragDoc.y);
dragDoc.x = x + NumCast(dragDoc.x) - dropX;
dragDoc.y = y + NumCast(dragDoc.y) - dropY;
- de.data.targetContext = this.props.Document; // dropped a PDF annotation, so we need to set the targetContext on the dragData which the PDF view uses at the end of the drop operation
+ de.complete.annoDragData.targetContext = this.props.Document; // dropped a PDF annotation, so we need to set the targetContext on the dragData which the PDF view uses at the end of the drop operation
this.bringToFront(dragDoc);
}
}
@@ -174,30 +183,30 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
pickCluster(probe: number[]) {
return this.childLayoutPairs.map(pair => pair.layout).reduce((cluster, cd) => {
- let layoutDoc = Doc.Layout(cd);
- let cx = NumCast(cd.x) - this._clusterDistance;
- let cy = NumCast(cd.y) - this._clusterDistance;
- let cw = NumCast(layoutDoc.width) + 2 * this._clusterDistance;
- let ch = NumCast(layoutDoc.height) + 2 * this._clusterDistance;
+ const layoutDoc = Doc.Layout(cd);
+ const cx = NumCast(cd.x) - this._clusterDistance;
+ const cy = NumCast(cd.y) - this._clusterDistance;
+ const cw = NumCast(layoutDoc._width) + 2 * this._clusterDistance;
+ const ch = NumCast(layoutDoc._height) + 2 * this._clusterDistance;
return !layoutDoc.z && intersectRect({ left: cx, top: cy, width: cw, height: ch }, { left: probe[0], top: probe[1], width: 1, height: 1 }) ?
NumCast(cd.cluster) : cluster;
}, -1);
}
- tryDragCluster(e: PointerEvent) {
- let cluster = this.pickCluster(this.getTransform().transformPoint(e.clientX, e.clientY));
- if (cluster !== -1) {
- let eles = this.childLayoutPairs.map(pair => pair.layout).filter(cd => NumCast(cd.cluster) === cluster);
- let clusterDocs = eles.map(ele => DocumentManager.Instance.getDocumentView(ele, this.props.CollectionView)!);
- let de = new DragManager.DocumentDragData(eles);
- de.moveDocument = this.props.moveDocument;
- const [left, top] = clusterDocs[0].props.ScreenToLocalTransform().scale(clusterDocs[0].props.ContentScaling()).inverse().transformPoint(0, 0);
- de.offset = this.getTransform().transformDirection(e.x - left, e.y - top);
- de.dropAction = e.ctrlKey || e.altKey ? "alias" : undefined;
- DragManager.StartDocumentDrag(clusterDocs.map(v => v.ContentDiv!), de, e.clientX, e.clientY, {
- handlers: { dragComplete: action(emptyFunction) },
- hideSource: !de.dropAction
- });
- return true;
+ tryDragCluster(e: PointerEvent | TouchEvent) {
+ const ptsParent = e instanceof PointerEvent ? e : e.targetTouches.item(0);
+ if (ptsParent) {
+ const cluster = this.pickCluster(this.getTransform().transformPoint(ptsParent.clientX, ptsParent.clientY));
+ if (cluster !== -1) {
+ const eles = this.childLayoutPairs.map(pair => pair.layout).filter(cd => NumCast(cd.cluster) === cluster);
+ const clusterDocs = eles.map(ele => DocumentManager.Instance.getDocumentView(ele, this.props.CollectionView)!);
+ const de = new DragManager.DocumentDragData(eles);
+ de.moveDocument = this.props.moveDocument;
+ const [left, top] = clusterDocs[0].props.ScreenToLocalTransform().scale(clusterDocs[0].props.ContentScaling()).inverse().transformPoint(0, 0);
+ de.offset = this.getTransform().transformDirection(ptsParent.clientX - left, ptsParent.clientY - top);
+ de.dropAction = e.ctrlKey || e.altKey ? "alias" : undefined;
+ DragManager.StartDocumentDrag(clusterDocs.map(v => v.ContentDiv!), de, ptsParent.clientX, ptsParent.clientY, { hideSource: !de.dropAction });
+ return true;
+ }
}
return false;
@@ -210,13 +219,48 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
this.childLayoutPairs.map(pair => pair.layout).map(c => this.updateCluster(c));
}
+ @action
+ updateClusterDocs(docs: Doc[]) {
+ const childLayouts = this.childLayoutPairs.map(pair => pair.layout);
+ if (this.props.Document.useClusters) {
+ const docFirst = docs[0];
+ docs.map(doc => this._clusterSets.map(set => Doc.IndexOf(doc, set) !== -1 && set.splice(Doc.IndexOf(doc, set), 1)));
+ const preferredInd = NumCast(docFirst.cluster);
+ docs.map(doc => doc.cluster = -1);
+ docs.map(doc => this._clusterSets.map((set, i) => set.map(member => {
+ if (docFirst.cluster === -1 && Doc.IndexOf(member, childLayouts) !== -1 && Doc.overlapping(doc, member, this._clusterDistance)) {
+ docFirst.cluster = i;
+ }
+ })));
+ if (docFirst.cluster === -1 && preferredInd !== -1 && (!this._clusterSets[preferredInd] || !this._clusterSets[preferredInd].filter(member => Doc.IndexOf(member, childLayouts) !== -1).length)) {
+ docFirst.cluster = preferredInd;
+ }
+ this._clusterSets.map((set, i) => {
+ if (docFirst.cluster === -1 && !set.filter(member => Doc.IndexOf(member, childLayouts) !== -1).length) {
+ docFirst.cluster = i;
+ }
+ });
+ if (docFirst.cluster === -1) {
+ docs.map(doc => {
+ doc.cluster = this._clusterSets.length;
+ this._clusterSets.push([doc]);
+ });
+ } else {
+ for (let i = this._clusterSets.length; i <= NumCast(docFirst.cluster); i++) !this._clusterSets[i] && this._clusterSets.push([]);
+ docs.map(doc => this._clusterSets[doc.cluster = NumCast(docFirst.cluster)].push(doc));
+ }
+ childLayouts.map(child => !this._clusterSets.some((set, i) => Doc.IndexOf(child, set) !== -1 && child.cluster === i) && this.updateCluster(child));
+ childLayouts.map(child => Doc.GetProto(child).clusterStr = child.cluster?.toString());
+ }
+ }
+
@undoBatch
@action
updateCluster(doc: Doc) {
- let childLayouts = this.childLayoutPairs.map(pair => pair.layout);
+ const childLayouts = this.childLayoutPairs.map(pair => pair.layout);
if (this.props.Document.useClusters) {
this._clusterSets.map(set => Doc.IndexOf(doc, set) !== -1 && set.splice(Doc.IndexOf(doc, set), 1));
- let preferredInd = NumCast(doc.cluster);
+ const preferredInd = NumCast(doc.cluster);
doc.cluster = -1;
this._clusterSets.map((set, i) => set.map(member => {
if (doc.cluster === -1 && Doc.IndexOf(member, childLayouts) !== -1 && Doc.overlapping(doc, member, this._clusterDistance)) {
@@ -243,15 +287,15 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
getClusterColor = (doc: Doc) => {
let clusterColor = "";
- let cluster = NumCast(doc.cluster);
+ const cluster = NumCast(doc.cluster);
if (this.Document.useClusters) {
if (this._clusterSets.length <= cluster) {
setTimeout(() => this.updateCluster(doc), 0);
} else {
// choose a cluster color from a palette
- let colors = ["#da42429e", "#31ea318c", "#8c4000", "#4a7ae2c4", "#d809ff", "#ff7601", "#1dffff", "yellow", "#1b8231f2", "#000000ad"];
+ const colors = ["#da42429e", "#31ea318c", "#8c4000", "#4a7ae2c4", "#d809ff", "#ff7601", "#1dffff", "yellow", "#1b8231f2", "#000000ad"];
clusterColor = colors[cluster % colors.length];
- let set = this._clusterSets[cluster] && this._clusterSets[cluster].filter(s => s.backgroundColor && (s.backgroundColor !== s.defaultBackgroundColor));
+ const set = this._clusterSets[cluster] && this._clusterSets[cluster].filter(s => s.backgroundColor && (s.backgroundColor !== s.defaultBackgroundColor));
// override the cluster color with an explicitly set color on a non-background document. then override that with an explicitly set color on a background document
set && set.filter(s => !s.isBackground).map(s => clusterColor = StrCast(s.backgroundColor));
set && set.filter(s => s.isBackground).map(s => clusterColor = StrCast(s.backgroundColor));
@@ -260,97 +304,394 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
return clusterColor;
}
+
@action
onPointerDown = (e: React.PointerEvent): void => {
- if (e.nativeEvent.cancelBubble) return;
+ if (e.nativeEvent.cancelBubble || InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE) || InteractionUtils.IsType(e, InteractionUtils.PENTYPE) || (InkingControl.Instance.selectedTool === InkTool.Highlighter || InkingControl.Instance.selectedTool === InkTool.Pen)) {
+ return;
+ }
this._hitCluster = this.props.Document.useClusters ? this.pickCluster(this.getTransform().transformPoint(e.clientX, e.clientY)) !== -1 : false;
- if (e.button === 0 && !e.shiftKey && !e.altKey && !e.ctrlKey && (!this.isAnnotationOverlay || this.zoomScaling() !== 1) && this.props.active()) {
+ if (e.button === 0 && (!e.shiftKey || this._hitCluster) && !e.altKey && !e.ctrlKey && this.props.active(true)) {
document.removeEventListener("pointermove", this.onPointerMove);
document.removeEventListener("pointerup", this.onPointerUp);
document.addEventListener("pointermove", this.onPointerMove);
document.addEventListener("pointerup", this.onPointerUp);
- this._lastX = e.pageX;
- this._lastY = e.pageY;
+ // if physically using a pen or we're in pen or highlighter mode
+ // if (InteractionUtils.IsType(e, InteractionUtils.PENTYPE) || (InkingControl.Instance.selectedTool === InkTool.Highlighter || InkingControl.Instance.selectedTool === InkTool.Pen)) {
+ // e.stopPropagation();
+ // e.preventDefault();
+ // const point = this.getTransform().transformPoint(e.pageX, e.pageY);
+ // this._points.push({ X: point[0], Y: point[1] });
+ // }
+ // if not using a pen and in no ink mode
+ if (InkingControl.Instance.selectedTool === InkTool.None) {
+ this._lastX = e.pageX;
+ this._lastY = e.pageY;
+ }
+ // eraser or scrubber plus anything else mode
+ else {
+ e.stopPropagation();
+ e.preventDefault();
+ }
+ }
+ // if (e.button === 0 && !e.shiftKey && !e.altKey && !e.ctrlKey && this.props.active(true)) {
+ // document.removeEventListener("pointermove", this.onPointerMove);
+ // document.removeEventListener("pointerup", this.onPointerUp);
+ // document.addEventListener("pointermove", this.onPointerMove);
+ // document.addEventListener("pointerup", this.onPointerUp);
+ // if (InkingControl.Instance.selectedTool === InkTool.None) {
+ // this._lastX = e.pageX;
+ // this._lastY = e.pageY;
+ // }
+ // else {
+ // e.stopPropagation();
+ // e.preventDefault();
+
+ // if (InkingControl.Instance.selectedTool !== InkTool.Eraser && InkingControl.Instance.selectedTool !== InkTool.Scrubber) {
+ // let point = this.getTransform().transformPoint(e.pageX, e.pageY);
+ // this._points.push({ x: point[0], y: point[1] });
+ // }
+ // }
+ // }
+ }
+
+ @action
+ handle1PointerDown = (e: React.TouchEvent, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>) => {
+ if (!e.nativeEvent.cancelBubble) {
+ // const myTouches = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true);
+ const pt = me.changedTouches[0];
+ if (pt) {
+ this._hitCluster = this.props.Document.useCluster ? this.pickCluster(this.getTransform().transformPoint(pt.clientX, pt.clientY)) !== -1 : false;
+ if (!e.shiftKey && !e.altKey && !e.ctrlKey && this.props.active(true)) {
+ this.removeMoveListeners();
+ this.addMoveListeners();
+ this.removeEndListeners();
+ this.addEndListeners();
+ // if (InkingControl.Instance.selectedTool === InkTool.Highlighter || InkingControl.Instance.selectedTool === InkTool.Pen) {
+ // e.stopPropagation();
+ // e.preventDefault();
+ // const point = this.getTransform().transformPoint(pt.pageX, pt.pageY);
+ // this._points.push({ X: point[0], Y: point[1] });
+ // }
+ if (InkingControl.Instance.selectedTool === InkTool.None) {
+ this._lastX = pt.pageX;
+ this._lastY = pt.pageY;
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ else {
+ e.preventDefault();
+ }
+ }
+ }
+ }
+ }
+
+ @undoBatch
+ onGesture = (e: Event, ge: GestureUtils.GestureEvent) => {
+ switch (ge.gesture) {
+ case GestureUtils.Gestures.Stroke:
+ const points = ge.points;
+ const B = this.getTransform().transformBounds(ge.bounds.left, ge.bounds.top, ge.bounds.width, ge.bounds.height);
+ const inkDoc = Docs.Create.InkDocument(InkingControl.Instance.selectedColor, InkingControl.Instance.selectedTool, parseInt(InkingControl.Instance.selectedWidth), points, { title: "ink stroke", x: B.x, y: B.y, _width: B.width, _height: B.height });
+ this.addDocument(inkDoc);
+ e.stopPropagation();
+ break;
+ case GestureUtils.Gestures.Box:
+ const lt = this.getTransform().transformPoint(Math.min(...ge.points.map(p => p.X)), Math.min(...ge.points.map(p => p.Y)));
+ const rb = this.getTransform().transformPoint(Math.max(...ge.points.map(p => p.X)), Math.max(...ge.points.map(p => p.Y)));
+ const bounds = { x: lt[0], r: rb[0], y: lt[1], b: rb[1] };
+ const bWidth = bounds.r - bounds.x;
+ const bHeight = bounds.b - bounds.y;
+ const sel = this.getActiveDocuments().filter(doc => {
+ const l = NumCast(doc.x);
+ const r = l + doc[WidthSym]();
+ const t = NumCast(doc.y);
+ const b = t + doc[HeightSym]();
+ const pass = !(bounds.x > r || bounds.r < l || bounds.y > b || bounds.b < t);
+ if (pass) {
+ doc.x = l - bounds.x - bWidth / 2;
+ doc.y = t - bounds.y - bHeight / 2;
+ }
+ return pass;
+ });
+ this.addDocument(Docs.Create.FreeformDocument(sel, { title: "nested collection", x: bounds.x, y: bounds.y, _width: bWidth, _height: bHeight, _panX: 0, _panY: 0 }));
+ sel.forEach(d => this.props.removeDocument(d));
+ e.stopPropagation();
+ break;
+ case GestureUtils.Gestures.StartBracket:
+ const start = this.getTransform().transformPoint(Math.min(...ge.points.map(p => p.X)), Math.min(...ge.points.map(p => p.Y)));
+ this._inkToTextStartX = start[0];
+ this._inkToTextStartY = start[1];
+ console.log("start");
+ break;
+ case GestureUtils.Gestures.EndBracket:
+ console.log("end");
+ if (this._inkToTextStartX && this._inkToTextStartY) {
+ const end = this.getTransform().transformPoint(Math.max(...ge.points.map(p => p.X)), Math.max(...ge.points.map(p => p.Y)));
+ const setDocs = this.getActiveDocuments().filter(s => s.proto?.type === "text" && s.color);
+ const sets = setDocs.map((sd) => {
+ return Cast(sd.data, RichTextField)?.Text as string;
+ });
+ if (sets.length && sets[0]) {
+ this._wordPalette.clear();
+ const colors = setDocs.map(sd => FieldValue(sd.color) as string);
+ sets.forEach((st: string, i: number) => {
+ const words = st.split(",");
+ words.forEach(word => {
+ this._wordPalette.set(word, colors[i]);
+ });
+ });
+ }
+ const inks = this.getActiveDocuments().filter(doc => {
+ if (doc.type === "ink") {
+ const l = NumCast(doc.x);
+ const r = l + doc[WidthSym]();
+ const t = NumCast(doc.y);
+ const b = t + doc[HeightSym]();
+ const pass = !(this._inkToTextStartX! > r || end[0] < l || this._inkToTextStartY! > b || end[1] < t);
+ return pass;
+ }
+ return false;
+ });
+ const inkFields = inks.map(i => Cast(i.data, InkField));
+ CognitiveServices.Inking.Appliers.InterpretStrokes(inkFields.filter(i => i instanceof InkField).map(i => i!.inkData)).then((results) => {
+ const wordResults = results.filter((r: any) => r.category === "inkWord");
+ console.log(wordResults);
+ for (const word of wordResults) {
+ const indices: number[] = word.strokeIds;
+ indices.forEach(i => {
+ const otherInks: Doc[] = [];
+ indices.forEach(i2 => i2 !== i && otherInks.push(inks[i2]));
+ inks[i].relatedInks = new List<Doc>(otherInks);
+ const uniqueColors: string[] = [];
+ Array.from(this._wordPalette.values()).forEach(c => uniqueColors.indexOf(c) === -1 && uniqueColors.push(c));
+ inks[i].alternativeColors = new List<string>(uniqueColors);
+ if (this._wordPalette.has(word.recognizedText)) {
+ inks[i].color = this._wordPalette.get(word.recognizedText);
+ }
+ else {
+ for (const alt of word.alternates) {
+ if (this._wordPalette.has(alt.recognizedString)) {
+ inks[i].color = this._wordPalette.get(alt.recognizedString);
+ break;
+ }
+ }
+ }
+ });
+ }
+ });
+ this._inkToTextStartX = end[0];
+ }
+ break;
+ case GestureUtils.Gestures.Text:
+ if (ge.text) {
+ const B = this.getTransform().transformPoint(ge.points[0].X, ge.points[0].Y);
+ this.addDocument(Docs.Create.TextDocument(ge.text, { title: ge.text, x: B[0], y: B[1] }));
+ e.stopPropagation();
+ }
}
}
+ @action
onPointerUp = (e: PointerEvent): void => {
+ if (InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE)) return;
+
document.removeEventListener("pointermove", this.onPointerMove);
document.removeEventListener("pointerup", this.onPointerUp);
+ this.removeMoveListeners();
+ this.removeEndListeners();
+ }
+
+ @action
+ pan = (e: PointerEvent | React.Touch | { clientX: number, clientY: number }): void => {
+ // I think it makes sense for the marquee menu to go away when panned. -syip2
+ MarqueeOptionsMenu.Instance.fadeOut(true);
+
+ let x = this.Document._panX || 0;
+ let y = this.Document._panY || 0;
+ const docs = this.childLayoutPairs.filter(pair => pair.layout instanceof Doc && !pair.layout.isMinimized).map(pair => pair.layout);
+ const [dx, dy] = this.getTransform().transformDirection(e.clientX - this._lastX, e.clientY - this._lastY);
+ if (!this.isAnnotationOverlay && docs.length) {
+ PDFMenu.Instance.fadeOut(true);
+ const minx = this.childDataProvider(docs[0]).x;//docs.length ? NumCast(docs[0].x) : 0;
+ const miny = this.childDataProvider(docs[0]).y;//docs.length ? NumCast(docs[0].y) : 0;
+ const maxx = this.childDataProvider(docs[0]).width + minx;//docs.length ? NumCast(docs[0].width) + minx : minx;
+ const maxy = this.childDataProvider(docs[0]).height + miny;//docs.length ? NumCast(docs[0].height) + miny : miny;
+ const ranges = docs.filter(doc => doc).reduce((range, doc) => {
+ const x = this.childDataProvider(doc).x;//NumCast(doc.x);
+ const y = this.childDataProvider(doc).y;//NumCast(doc.y);
+ const xe = this.childDataProvider(doc).width + x;//x + NumCast(layoutDoc.width);
+ const ye = this.childDataProvider(doc).height + y; //y + NumCast(layoutDoc.height);
+ return [[range[0][0] > x ? x : range[0][0], range[0][1] < xe ? xe : range[0][1]],
+ [range[1][0] > y ? y : range[1][0], range[1][1] < ye ? ye : range[1][1]]];
+ }, [[minx, maxx], [miny, maxy]]);
+
+ const cscale = this.props.ContainingCollectionDoc ? NumCast(this.props.ContainingCollectionDoc.scale) : 1;
+ const panelDim = this.props.ScreenToLocalTransform().transformDirection(this.props.PanelWidth() / this.zoomScaling() * cscale,
+ this.props.PanelHeight() / this.zoomScaling() * cscale);
+ if (ranges[0][0] - dx > (this.panX() + panelDim[0] / 2)) x = ranges[0][1] + panelDim[0] / 2;
+ if (ranges[0][1] - dx < (this.panX() - panelDim[0] / 2)) x = ranges[0][0] - panelDim[0] / 2;
+ if (ranges[1][0] - dy > (this.panY() + panelDim[1] / 2)) y = ranges[1][1] + panelDim[1] / 2;
+ if (ranges[1][1] - dy < (this.panY() - panelDim[1] / 2)) y = ranges[1][0] - panelDim[1] / 2;
+ }
+ this.setPan(x - dx, y - dy);
+ this._lastX = e.clientX;
+ this._lastY = e.clientY;
}
@action
onPointerMove = (e: PointerEvent): void => {
+ if (InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE)) {
+ if (this.props.active(true)) {
+ e.stopPropagation();
+ }
+ return;
+ }
+ if (InteractionUtils.IsType(e, InteractionUtils.PENTYPE)) {
+ return;
+ }
if (!e.cancelBubble) {
- if (this._hitCluster && this.tryDragCluster(e)) {
- e.stopPropagation(); // doesn't actually stop propagation since all our listeners are listening to events on 'document' however it does mark the event as cancelBubble=true which we test for in the move event handlers
- e.preventDefault();
- document.removeEventListener("pointermove", this.onPointerMove);
- document.removeEventListener("pointerup", this.onPointerUp);
- return;
+ const selectedTool = InkingControl.Instance.selectedTool;
+ if (selectedTool === InkTool.None) {
+ if (this._hitCluster && this.tryDragCluster(e)) {
+ e.stopPropagation(); // doesn't actually stop propagation since all our listeners are listening to events on 'document' however it does mark the event as cancelBubble=true which we test for in the move event handlers
+ e.preventDefault();
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ return;
+ }
+ this.pan(e);
}
- let x = this.Document.panX || 0;
- let y = this.Document.panY || 0;
- let docs = this.childLayoutPairs.map(pair => pair.layout);
- let [dx, dy] = this.getTransform().transformDirection(e.clientX - this._lastX, e.clientY - this._lastY);
- if (!this.isAnnotationOverlay) {
- let minx = docs.length ? NumCast(docs[0].x) : 0;
- let maxx = docs.length ? NumCast(Doc.Layout(docs[0]).width) + minx : minx;
- let miny = docs.length ? NumCast(docs[0].y) : 0;
- let maxy = docs.length ? NumCast(Doc.Layout(docs[0]).height) + miny : miny;
- let ranges = docs.filter(doc => doc).reduce((range, doc) => {
- let layoutDoc = Doc.Layout(doc);
- let x = NumCast(doc.x);
- let xe = x + NumCast(layoutDoc.width);
- let y = NumCast(doc.y);
- let ye = y + NumCast(layoutDoc.height);
- return [[range[0][0] > x ? x : range[0][0], range[0][1] < xe ? xe : range[0][1]],
- [range[1][0] > y ? y : range[1][0], range[1][1] < ye ? ye : range[1][1]]];
- }, [[minx, maxx], [miny, maxy]]);
- let ink = this.extensionDoc && Cast(this.extensionDoc.ink, InkField);
- if (ink && ink.inkData) {
- ink.inkData.forEach((value: StrokeData, key: string) => {
- let bounds = InkingCanvas.StrokeRect(value);
- ranges[0] = [Math.min(ranges[0][0], bounds.left), Math.max(ranges[0][1], bounds.right)];
- ranges[1] = [Math.min(ranges[1][0], bounds.top), Math.max(ranges[1][1], bounds.bottom)];
- });
+ e.stopPropagation(); // doesn't actually stop propagation since all our listeners are listening to events on 'document' however it does mark the event as cancelBubble=true which we test for in the move event handlers
+ e.preventDefault();
+ }
+ }
+
+ handle1PointerMove = (e: TouchEvent, me: InteractionUtils.MultiTouchEvent<TouchEvent>) => {
+ // panning a workspace
+ if (!e.cancelBubble) {
+ const myTouches = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true);
+ const pt = myTouches[0];
+ if (pt) {
+ if (InkingControl.Instance.selectedTool === InkTool.None) {
+ if (this._hitCluster && this.tryDragCluster(e)) {
+ e.stopPropagation(); // doesn't actually stop propagation since all our listeners are listening to events on 'document' however it does mark the event as cancelBubble=true which we test for in the move event handlers
+ e.preventDefault();
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ return;
+ }
+ this.pan(pt);
}
+ }
+ // e.stopPropagation();
+ e.preventDefault();
+ }
+ }
+
+ handle2PointersMove = (e: TouchEvent, me: InteractionUtils.MultiTouchEvent<TouchEvent>) => {
+ // pinch zooming
+ if (!e.cancelBubble) {
+ const myTouches = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true);
+ const pt1 = myTouches[0];
+ const pt2 = myTouches[1];
+ console.log(myTouches);
+
+ if (this.prevPoints.size === 2) {
+ const oldPoint1 = this.prevPoints.get(pt1.identifier);
+ const oldPoint2 = this.prevPoints.get(pt2.identifier);
+ if (oldPoint1 && oldPoint2) {
+ const dir = InteractionUtils.Pinching(pt1, pt2, oldPoint1, oldPoint2);
+
+ // if zooming, zoom
+ if (dir !== 0) {
+ const d1 = Math.sqrt(Math.pow(pt1.clientX - oldPoint1.clientX, 2) + Math.pow(pt1.clientY - oldPoint1.clientY, 2));
+ const d2 = Math.sqrt(Math.pow(pt2.clientX - oldPoint2.clientX, 2) + Math.pow(pt2.clientY - oldPoint2.clientY, 2));
+ const centerX = Math.min(pt1.clientX, pt2.clientX) + Math.abs(pt2.clientX - pt1.clientX) / 2;
+ const centerY = Math.min(pt1.clientY, pt2.clientY) + Math.abs(pt2.clientY - pt1.clientY) / 2;
+
+ // calculate the raw delta value
+ const rawDelta = (dir * (d1 + d2));
- let cscale = this.props.ContainingCollectionDoc ? NumCast(this.props.ContainingCollectionDoc.scale) : 1;
- let panelDim = this.props.ScreenToLocalTransform().transformDirection(this.props.PanelWidth() / this.zoomScaling() * cscale,
- this.props.PanelHeight() / this.zoomScaling() * cscale);
- if (ranges[0][0] - dx > (this.panX() + panelDim[0] / 2)) x = ranges[0][1] + panelDim[0] / 2;
- if (ranges[0][1] - dx < (this.panX() - panelDim[0] / 2)) x = ranges[0][0] - panelDim[0] / 2;
- if (ranges[1][0] - dy > (this.panY() + panelDim[1] / 2)) y = ranges[1][1] + panelDim[1] / 2;
- if (ranges[1][1] - dy < (this.panY() - panelDim[1] / 2)) y = ranges[1][0] - panelDim[1] / 2;
+ // this floors and ceils the delta value to prevent jitteriness
+ const delta = Math.sign(rawDelta) * Math.min(Math.abs(rawDelta), 8);
+ this.zoom(centerX, centerY, delta * window.devicePixelRatio);
+ this.prevPoints.set(pt1.identifier, pt1);
+ this.prevPoints.set(pt2.identifier, pt2);
+ }
+ // this is not zooming. derive some form of panning from it.
+ else {
+ // use the centerx and centery as the "new mouse position"
+ const centerX = Math.min(pt1.clientX, pt2.clientX) + Math.abs(pt2.clientX - pt1.clientX) / 2;
+ const centerY = Math.min(pt1.clientY, pt2.clientY) + Math.abs(pt2.clientY - pt1.clientY) / 2;
+ this.pan({ clientX: centerX, clientY: centerY });
+ this._lastX = centerX;
+ this._lastY = centerY;
+ }
+ }
}
- this.setPan(x - dx, y - dy);
- this._lastX = e.pageX;
- this._lastY = e.pageY;
- e.stopPropagation(); // doesn't actually stop propagation since all our listeners are listening to events on 'document' however it does mark the event as cancelBubble=true which we test for in the move event handlers
+ // e.stopPropagation();
e.preventDefault();
}
}
@action
+ handle2PointersDown = (e: React.TouchEvent, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>) => {
+ if (!e.nativeEvent.cancelBubble && this.props.active(true)) {
+ // const pt1: React.Touch | null = e.targetTouches.item(0);
+ // const pt2: React.Touch | null = e.targetTouches.item(1);
+ // // if (!pt1 || !pt2) return;
+ const myTouches = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true);
+ const pt1 = myTouches[0];
+ const pt2 = myTouches[1];
+ if (pt1 && pt2) {
+ const centerX = Math.min(pt1.clientX, pt2.clientX) + Math.abs(pt2.clientX - pt1.clientX) / 2;
+ const centerY = Math.min(pt1.clientY, pt2.clientY) + Math.abs(pt2.clientY - pt1.clientY) / 2;
+ this._lastX = centerX;
+ this._lastY = centerY;
+ this.removeMoveListeners();
+ this.addMoveListeners();
+ this.removeEndListeners();
+ this.addEndListeners();
+ e.stopPropagation();
+ }
+ }
+ }
+
+ cleanUpInteractions = () => {
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ this.removeMoveListeners();
+ this.removeEndListeners();
+ }
+
+ @action
+ zoom = (pointX: number, pointY: number, deltaY: number): void => {
+ let deltaScale = deltaY > 0 ? (1 / 1.1) : 1.1;
+ if (deltaScale * this.zoomScaling() < 1 && this.isAnnotationOverlay) {
+ deltaScale = 1 / this.zoomScaling();
+ }
+ if (deltaScale < 0) deltaScale = -deltaScale;
+ const [x, y] = this.getTransform().transformPoint(pointX, pointY);
+ const localTransform = this.getLocalTransform().inverse().scaleAbout(deltaScale, x, y);
+
+ if (localTransform.Scale >= 0.15) {
+ const safeScale = Math.min(Math.max(0.15, localTransform.Scale), 40);
+ this.props.Document.scale = Math.abs(safeScale);
+ this.setPan(-localTransform.TranslateX / safeScale, -localTransform.TranslateY / safeScale);
+ }
+ }
+
+ @action
onPointerWheel = (e: React.WheelEvent): void => {
if (this.props.Document.lockedTransform || this.props.Document.inOverlay) return;
if (!e.ctrlKey && this.props.Document.scrollHeight !== undefined) { // things that can scroll vertically should do that instead of zooming
e.stopPropagation();
}
- else if (this.props.active()) {
+ else if (this.props.active(true)) {
e.stopPropagation();
- let deltaScale = e.deltaY > 0 ? (1 / 1.1) : 1.1;
- if (deltaScale * this.zoomScaling() < 1 && this.isAnnotationOverlay) {
- deltaScale = 1 / this.zoomScaling();
- }
- if (deltaScale < 0) deltaScale = -deltaScale;
- let [x, y] = this.getTransform().transformPoint(e.clientX, e.clientY);
- let localTransform = this.getLocalTransform().inverse().scaleAbout(deltaScale, x, y);
-
- let safeScale = Math.min(Math.max(0.15, localTransform.Scale), 40);
- this.props.Document.scale = Math.abs(safeScale);
- this.setPan(-localTransform.TranslateX / safeScale, -localTransform.TranslateY / safeScale);
+ this.zoom(e.clientX, e.clientY, e.deltaY);
}
}
@@ -358,11 +699,11 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
setPan(panX: number, panY: number, panType: string = "None") {
if (!this.Document.lockedTransform || this.Document.inOverlay) {
this.Document.panTransformType = panType;
- var scale = this.getLocalTransform().inverse().Scale;
+ const scale = this.getLocalTransform().inverse().Scale;
const newPanX = Math.min((1 - 1 / scale) * this.nativeWidth, Math.max(0, panX));
const newPanY = Math.min((this.props.Document.scrollHeight !== undefined ? NumCast(this.Document.scrollHeight) : (1 - 1 / scale) * this.nativeHeight), Math.max(0, panY));
- this.Document.panX = this.isAnnotationOverlay ? newPanX : panX;
- this.Document.panY = this.isAnnotationOverlay ? newPanY : panY;
+ this.Document._panX = this.isAnnotationOverlay ? newPanX : panX;
+ this.Document._panY = this.isAnnotationOverlay ? newPanY : panY;
}
}
@@ -383,48 +724,50 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
focusDocument = (doc: Doc, willZoom: boolean, scale?: number, afterFocus?: () => boolean) => {
const state = HistoryUtil.getState();
+
// TODO This technically isn't correct if type !== "doc", as
// currently nothing is done, but we should probably push a new state
- if (state.type === "doc" && this.Document.panX !== undefined && this.Document.panY !== undefined) {
+ if (state.type === "doc" && this.Document._panX !== undefined && this.Document._panY !== undefined) {
const init = state.initializers![this.Document[Id]];
if (!init) {
- state.initializers![this.Document[Id]] = { panX: this.Document.panX, panY: this.Document.panY };
+ state.initializers![this.Document[Id]] = { panX: this.Document._panX, panY: this.Document._panY };
HistoryUtil.pushState(state);
- } else if (init.panX !== this.Document.panX || init.panY !== this.Document.panY) {
- init.panX = this.Document.panX;
- init.panY = this.Document.panY;
+ } else if (init.panX !== this.Document._panX || init.panY !== this.Document._panY) {
+ init.panX = this.Document._panX;
+ init.panY = this.Document._panY;
HistoryUtil.pushState(state);
}
}
SelectionManager.DeselectAll();
if (this.props.Document.scrollHeight) {
- let annotOn = Cast(doc.annotationOn, Doc) as Doc;
+ const annotOn = Cast(doc.annotationOn, Doc) as Doc;
if (!annotOn) {
this.props.focus(doc);
} else {
- let contextHgt = Doc.AreProtosEqual(annotOn, this.props.Document) && this.props.VisibleHeight ? this.props.VisibleHeight() : NumCast(annotOn.height);
- let offset = annotOn && (contextHgt / 2 * 96 / 72);
+ const contextHgt = Doc.AreProtosEqual(annotOn, this.props.Document) && this.props.VisibleHeight ? this.props.VisibleHeight() : NumCast(annotOn.height);
+ const offset = annotOn && (contextHgt / 2 * 96 / 72);
this.props.Document.scrollY = NumCast(doc.y) - offset;
}
} else {
- let layoutdoc = Doc.Layout(doc);
- const newPanX = NumCast(doc.x) + NumCast(layoutdoc.width) / 2;
- const newPanY = NumCast(doc.y) + NumCast(layoutdoc.height) / 2;
+ const layoutdoc = Doc.Layout(doc);
+ const newPanX = NumCast(doc.x) + NumCast(layoutdoc._width) / 2;
+ const newPanY = NumCast(doc.y) + NumCast(layoutdoc._height) / 2;
const newState = HistoryUtil.getState();
newState.initializers![this.Document[Id]] = { panX: newPanX, panY: newPanY };
HistoryUtil.pushState(newState);
- let savedState = { px: this.Document.panX, py: this.Document.panY, s: this.Document.scale, pt: this.Document.panTransformType };
+ const savedState = { px: this.Document._panX, py: this.Document._panY, s: this.Document.scale, pt: this.Document.panTransformType };
- this.setPan(newPanX, newPanY, "Ease");
+ if (!doc.z) this.setPan(newPanX, newPanY, "Ease"); // docs that are floating in their collection can't be panned to from their collection -- need to propagate the pan to a parent freeform somehow
Doc.BrushDoc(this.props.Document);
this.props.focus(this.props.Document);
willZoom && this.setScaleToZoom(layoutdoc, scale);
+ Doc.linkFollowHighlight(doc);
afterFocus && setTimeout(() => {
if (afterFocus && afterFocus()) {
- this.Document.panX = savedState.px;
- this.Document.panY = savedState.py;
+ this.Document._panX = savedState.px;
+ this.Document._panY = savedState.py;
this.Document.scale = savedState.s;
this.Document.panTransformType = savedState.pt;
}
@@ -434,7 +777,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
}
setScaleToZoom = (doc: Doc, scale: number = 0.5) => {
- this.Document.scale = scale * Math.min(this.props.PanelWidth() / NumCast(doc.width), this.props.PanelHeight() / NumCast(doc.height));
+ this.Document.scale = scale * Math.min(this.props.PanelWidth() / NumCast(doc._width), this.props.PanelHeight() / NumCast(doc._height));
}
zoomToScale = (scale: number) => {
@@ -443,14 +786,18 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
getScale = () => this.Document.scale || 1;
+ @computed get libraryPath() { return this.props.LibraryPath ? [...this.props.LibraryPath, this.props.Document] : []; }
+ @computed get onChildClickHandler() { return ScriptCast(this.Document.onChildClick); }
+
getChildDocumentViewProps(childLayout: Doc, childData?: Doc): DocumentViewProps {
return {
...this.props,
DataDoc: childData,
Document: childLayout,
+ LibraryPath: this.libraryPath,
layoutKey: undefined,
- ruleProvider: this.Document.isRuleProvider && childLayout.type !== DocumentType.TEXT ? this.props.Document : this.props.ruleProvider, //bcz: hack! - currently ruleProviders apply to documents in nested colleciton, not direct children of themselves
- onClick: undefined, // this.props.onClick, // bcz: check this out -- I don't think we want to inherit click handlers, or we at least need a way to ignore them
+ //onClick: undefined, // this.props.onClick, // bcz: check this out -- I don't think we want to inherit click handlers, or we at least need a way to ignore them
+ onClick: this.onChildClickHandler,
ScreenToLocalTransform: childLayout.z ? this.getTransformOverlay : this.getTransform,
renderDepth: this.props.renderDepth + 1,
PanelWidth: childLayout[WidthSym],
@@ -468,13 +815,12 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
}
getCalculatedPositions(params: { doc: Doc, index: number, collection: Doc, docs: Doc[], state: any }): { x?: number, y?: number, z?: number, width?: number, height?: number, transition?: string, state?: any } {
- const script = this.Document.arrangeScript;
- const result = script && script.script.run(params, console.log);
- const layoutDoc = Doc.Layout(params.doc);
- if (result && result.success) {
+ const result = this.Document.arrangeScript?.script.run(params, console.log);
+ if (result?.success) {
return { ...result, transition: "transform 1s" };
}
- return { x: Cast(params.doc.x, "number"), y: Cast(params.doc.y, "number"), z: Cast(params.doc.z, "number"), width: Cast(layoutDoc.width, "number"), height: Cast(layoutDoc.height, "number") };
+ const layoutDoc = Doc.Layout(params.doc);
+ return { x: Cast(params.doc.x, "number"), y: Cast(params.doc.y, "number"), z: Cast(params.doc.z, "number"), width: Cast(layoutDoc._width, "number"), height: Cast(layoutDoc._height, "number") };
}
viewDefsToJSX = (views: any[]) => {
@@ -492,7 +838,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
const fontSize = Cast(viewDef.fontSize, "number");
return [text, x, y, width, height].some(val => val === undefined) ? undefined :
{
- ele: <div className="collectionFreeform-customText" style={{ width, height, fontSize, transform: `translate(${x}px, ${y}px)` }}>
+ ele: <div className="collectionFreeform-customText" key={(text || "") + x + y + z} style={{ width, height, fontSize, transform: `translate(${x}px, ${y}px)` }}>
{text}
</div>,
bounds: { x: x!, y: y!, z: z, width: width!, height: height! }
@@ -500,64 +846,64 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
}
}
- lookupLayout = (doc: Doc, dataDoc?: Doc) => {
- let data: any = undefined;
- let computedElementData: { map: Map<{ layout: Doc, data?: Doc | undefined }, any>, elements: ViewDefResult[] };
- switch (this.Document.freeformLayoutEngine) {
- case "pivot": computedElementData = this.doPivotLayout; break;
- default: computedElementData = this.doFreeformLayout; break;
+ childDataProvider = computedFn(function childDataProvider(this: any, doc: Doc) {
+ if (!doc) {
+ console.log(doc);
}
- computedElementData.map.forEach((value: any, key: { layout: Doc, data?: Doc }) => {
- if (key.layout === doc && key.data === dataDoc) {
- data = value;
- }
- });
- return data && { x: data.x, y: data.y, z: data.z, width: data.width, height: data.height, transition: data.transition };
- }
+ return this._layoutPoolData.get(doc[Id]);
+ }.bind(this));
- @computed
- get doPivotLayout() {
- return computePivotLayout(this.props.Document, this.childDocs,
- this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)), this.viewDefsToJSX);
+ doPivotLayout(poolData: ObservableMap<string, any>) {
+ return computePivotLayout(poolData, this.props.Document, this.childDocs,
+ this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)), [this.props.PanelWidth(), this.props.PanelHeight()], this.viewDefsToJSX);
}
- @computed
- get doFreeformLayout() {
- let layoutPoolData: Map<{ layout: Doc, data?: Doc }, any> = new Map();
- let layoutDocs = this.childLayoutPairs.map(pair => pair.layout);
+ doFreeformLayout(poolData: ObservableMap<string, any>) {
+ const layoutDocs = this.childLayoutPairs.map(pair => pair.layout);
const initResult = this.Document.arrangeInit && this.Document.arrangeInit.script.run({ docs: layoutDocs, collection: this.Document }, console.log);
let state = initResult && initResult.success ? initResult.result.scriptState : undefined;
- let elements = initResult && initResult.success ? this.viewDefsToJSX(initResult.result.views) : [];
+ const elements = initResult && initResult.success ? this.viewDefsToJSX(initResult.result.views) : [];
this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)).map((pair, i) => {
+ const data = poolData.get(pair.layout[Id]);
const pos = this.getCalculatedPositions({ doc: pair.layout, index: i, collection: this.Document, docs: layoutDocs, state });
state = pos.state === undefined ? state : pos.state;
- layoutPoolData.set(pair, pos);
+ if (!data || pos.x !== data.x || pos.y !== data.y || pos.z !== data.z || pos.width !== data.width || pos.height !== data.height || pos.transition !== data.transition) {
+ runInAction(() => poolData.set(pair.layout[Id], pos));
+ }
});
- return { map: layoutPoolData, elements: elements };
+ return { elements: elements };
}
- @computed
get doLayoutComputation() {
- let computedElementData: { map: Map<{ layout: Doc, data?: Doc | undefined }, any>, elements: ViewDefResult[] };
- switch (this.Document.freeformLayoutEngine) {
- case "pivot": computedElementData = this.doPivotLayout; break;
- default: computedElementData = this.doFreeformLayout; break;
+ let computedElementData: { elements: ViewDefResult[] };
+ switch (this.Document._freeformLayoutEngine) {
+ case "pivot": computedElementData = this.doPivotLayout(this._layoutPoolData); break;
+ default: computedElementData = this.doFreeformLayout(this._layoutPoolData); break;
}
- this.childLayoutPairs.filter(pair => this.isCurrent(pair.layout)).forEach(pair =>
+ this.childLayoutPairs.filter((pair, i) => this.isCurrent(pair.layout)).forEach(pair =>
computedElementData.elements.push({
- ele: <CollectionFreeFormDocumentView key={pair.layout[Id]} dataProvider={this.lookupLayout}
- ruleProvider={this.Document.isRuleProvider ? this.props.Document : this.props.ruleProvider}
- jitterRotation={NumCast(this.props.Document.jitterRotation)} {...this.getChildDocumentViewProps(pair.layout, pair.data)} />,
- bounds: this.lookupLayout(pair.layout, pair.data)
+ ele: <CollectionFreeFormDocumentView key={pair.layout[Id]} {...this.getChildDocumentViewProps(pair.layout, pair.data)}
+ dataProvider={this.childDataProvider}
+ jitterRotation={NumCast(this.props.Document.jitterRotation)}
+ fitToBox={this.props.fitToBox || this.Document._freeformLayoutEngine === "pivot"} />,
+ bounds: this.childDataProvider(pair.layout)
}));
return computedElementData;
}
- @computed.struct get elements() { return this.doLayoutComputation.elements; }
- @computed.struct get views() { return this.elements.filter(ele => ele.bounds && !ele.bounds.z).map(ele => ele.ele); }
- @computed.struct get overlayViews() { return this.elements.filter(ele => ele.bounds && ele.bounds.z).map(ele => ele.ele); }
+ componentDidMount() {
+ super.componentDidMount();
+ this._layoutComputeReaction = reaction(() => { TraceMobx(); return this.doLayoutComputation; },
+ action((computation: { elements: ViewDefResult[] }) => computation && (this._layoutElements = computation.elements)),
+ { fireImmediately: true, name: "doLayout" });
+ }
+ componentWillUnmount() {
+ this._layoutComputeReaction && this._layoutComputeReaction();
+ }
+ @computed get views() { return this._layoutElements.filter(ele => ele.bounds && !ele.bounds.z).map(ele => ele.ele); }
+ elementFunc = () => this._layoutElements;
@action
onCursorMove = (e: React.PointerEvent) => {
@@ -567,12 +913,12 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
layoutDocsInGrid = () => {
UndoManager.RunInBatch(() => {
const docs = DocListCast(this.Document[this.props.fieldKey]);
- let startX = this.Document.panX || 0;
+ const startX = this.Document._panX || 0;
let x = startX;
- let y = this.Document.panY || 0;
+ let y = this.Document._panY || 0;
let i = 0;
- const width = Math.max(...docs.map(doc => NumCast(doc.width)));
- const height = Math.max(...docs.map(doc => NumCast(doc.height)));
+ const width = Math.max(...docs.map(doc => NumCast(doc._width)));
+ const height = Math.max(...docs.map(doc => NumCast(doc._height)));
for (const doc of docs) {
doc.x = x;
doc.y = y;
@@ -586,41 +932,58 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
}, "arrange contents");
}
- autoFormat = () => {
- this.Document.isRuleProvider = !this.Document.isRuleProvider;
- // find rule colorations when rule providing is turned on by looking at each document to see if it has a coloring -- if so, use it's color as the rule for its associated heading.
- this.Document.isRuleProvider && this.childLayoutPairs.map(pair =>
- // iterate over the children of a displayed document (or if the displayed document is a template, iterate over the children of that template)
- DocListCast(Doc.Layout(pair.layout).data).map(heading => {
- let headingPair = Doc.GetLayoutDataDocPair(this.props.Document, this.props.DataDoc, this.props.fieldKey, heading);
- let headingLayout = headingPair.layout && (pair.layout.data_ext instanceof Doc) && (pair.layout.data_ext[`Layout[${headingPair.layout[Id]}]`] as Doc) || headingPair.layout;
- if (headingLayout && NumCast(headingLayout.heading) > 0 && headingLayout.backgroundColor !== headingLayout.defaultBackgroundColor) {
- Doc.GetProto(this.props.Document)["ruleColor_" + NumCast(headingLayout.heading)] = headingLayout.backgroundColor;
- }
- })
- );
- }
+ private thumbIdentifier?: number;
- analyzeStrokes = async () => {
- const extensionDoc = this.extensionDoc;
- let data = extensionDoc && Cast(extensionDoc.ink, InkField);
- if (data && extensionDoc) {
- CognitiveServices.Inking.Appliers.ConcatenateHandwriting(extensionDoc, ["inkAnalysis", "handwriting"], data.inkData);
- }
- }
+ // @action
+ // handleHandDown = (e: React.TouchEvent) => {
+ // const fingers = InteractionUtils.GetMyTargetTouches(e, this.prevPoints, true);
+ // const thumb = fingers.reduce((a, v) => a.clientY > v.clientY ? a : v, fingers[0]);
+ // this.thumbIdentifier = thumb?.identifier;
+ // const others = fingers.filter(f => f !== thumb);
+ // const minX = Math.min(...others.map(f => f.clientX));
+ // const minY = Math.min(...others.map(f => f.clientY));
+ // const t = this.getTransform().transformPoint(minX, minY);
+ // const th = this.getTransform().transformPoint(thumb.clientX, thumb.clientY);
+
+ // const thumbDoc = FieldValue(Cast(CurrentUserUtils.setupThumbDoc(CurrentUserUtils.UserDocument), Doc));
+ // if (thumbDoc) {
+ // this._palette = <Palette x={t[0]} y={t[1]} thumb={th} thumbDoc={thumbDoc} />;
+ // }
+
+ // document.removeEventListener("touchmove", this.onTouch);
+ // document.removeEventListener("touchmove", this.handleHandMove);
+ // document.addEventListener("touchmove", this.handleHandMove);
+ // document.removeEventListener("touchend", this.handleHandUp);
+ // document.addEventListener("touchend", this.handleHandUp);
+ // }
+
+ // @action
+ // handleHandMove = (e: TouchEvent) => {
+ // for (let i = 0; i < e.changedTouches.length; i++) {
+ // const pt = e.changedTouches.item(i);
+ // if (pt?.identifier === this.thumbIdentifier) {
+ // }
+ // }
+ // }
+
+ // @action
+ // handleHandUp = (e: TouchEvent) => {
+ // this.onTouchEnd(e);
+ // if (this.prevPoints.size < 3) {
+ // this._palette = undefined;
+ // document.removeEventListener("touchend", this.handleHandUp);
+ // }
+ // }
onContextMenu = (e: React.MouseEvent) => {
- let layoutItems: ContextMenuProps[] = [];
+ const layoutItems: ContextMenuProps[] = [];
- if (this.childDocs.some(d => BoolCast(d.isTemplateDoc))) {
- layoutItems.push({ description: "Template Layout Instance", event: () => this.props.addDocTab(Doc.ApplyTemplate(this.props.Document)!, undefined, "onRight"), icon: "project-diagram" });
- }
- layoutItems.push({ description: "reset view", event: () => { this.props.Document.panX = this.props.Document.panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" });
- layoutItems.push({ description: `${this.fitToContent ? "Unset" : "Set"} Fit To Container`, event: async () => this.Document.fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" });
+ layoutItems.push({ description: "reset view", event: () => { this.props.Document._panX = this.props.Document._panY = 0; this.props.Document.scale = 1; }, icon: "compress-arrows-alt" });
+ layoutItems.push({ description: `${this.Document._LODdisable ? "Enable LOD" : "Disable LOD"}`, event: () => this.Document._LODdisable = !this.Document._LODdisable, icon: "table" });
+ layoutItems.push({ description: `${this.fitToContent ? "Unset" : "Set"} Fit To Container`, event: () => this.Document._fitToBox = !this.fitToContent, icon: !this.fitToContent ? "expand-arrows-alt" : "compress-arrows-alt" });
layoutItems.push({ description: `${this.Document.useClusters ? "Uncluster" : "Use Clusters"}`, event: () => this.updateClusters(!this.Document.useClusters), icon: "braille" });
- layoutItems.push({ description: `${this.Document.isRuleProvider ? "Stop Auto Format" : "Auto Format"}`, event: this.autoFormat, icon: "chalkboard" });
layoutItems.push({ description: "Arrange contents in grid", event: this.layoutDocsInGrid, icon: "table" });
- layoutItems.push({ description: "Analyze Strokes", event: this.analyzeStrokes, icon: "paint-brush" });
+ // layoutItems.push({ description: "Analyze Strokes", event: this.analyzeStrokes, icon: "paint-brush" });
layoutItems.push({ description: "Jitter Rotation", event: action(() => this.props.Document.jitterRotation = 10), icon: "paint-brush" });
layoutItems.push({
description: "Import document", icon: "upload", event: ({ x, y }) => {
@@ -629,7 +992,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
input.accept = ".zip";
input.onchange = async _e => {
const upload = Utils.prepend("/uploadDoc");
- let formData = new FormData();
+ const formData = new FormData();
const file = input.files && input.files[0];
if (file) {
formData.append('file', file);
@@ -654,7 +1017,7 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
description: "Add Note ...",
subitems: DocListCast((CurrentUserUtils.UserDocument.noteTypes as Doc).data).map((note, i) => ({
description: (i + 1) + ": " + StrCast(note.title),
- event: (args: { x: number, y: number }) => this.addLiveTextBox(Docs.Create.TextDocument({ width: 200, height: 100, x: this.getTransform().transformPoint(args.x, args.y)[0], y: this.getTransform().transformPoint(args.x, args.y)[1], autoHeight: true, layout: note, title: StrCast(note.title) })),
+ event: (args: { x: number, y: number }) => this.addLiveTextBox(Docs.Create.TextDocument("", { _width: 200, _height: 100, x: this.getTransform().transformPoint(args.x, args.y)[0], y: this.getTransform().transformPoint(args.x, args.y)[1], _autoHeight: true, layout: note, title: StrCast(note.title) })),
icon: "eye"
})) as ContextMenuProps[],
icon: "eye"
@@ -664,37 +1027,80 @@ export class CollectionFreeFormView extends CollectionSubView(PanZoomDocument) {
private childViews = () => {
- let children = typeof this.props.children === "function" ? (this.props.children as any)() as JSX.Element[] : [];
+ const children = typeof this.props.children === "function" ? (this.props.children as any)() as JSX.Element[] : [];
return [
...children,
...this.views,
];
}
+
+ // @observable private _palette?: JSX.Element;
+
+ children = () => {
+ const eles: JSX.Element[] = [];
+ eles.push(...this.childViews());
+ // this._palette && (eles.push(this._palette));
+ // this.currentStroke && (eles.push(this.currentStroke));
+ eles.push(<CollectionFreeFormRemoteCursors {...this.props} key="remoteCursors" />);
+ return eles;
+ }
+ @computed get placeholder() {
+ return <div className="collectionfreeformview-placeholder" style={{ background: this.Document.backgroundColor }}>
+ <span className="collectionfreeformview-placeholderSpan">{this.props.Document.title?.toString()}</span>
+ </div>;
+ }
+ @computed get marqueeView() {
+ return <MarqueeView {...this.props} activeDocuments={this.getActiveDocuments} selectDocuments={this.selectDocuments} addDocument={this.addDocument}
+ addLiveTextDocument={this.addLiveTextBox} getContainerTransform={this.getContainerTransform} getTransform={this.getTransform} isAnnotationOverlay={this.isAnnotationOverlay}>
+ <CollectionFreeFormViewPannableContents centeringShiftX={this.centeringShiftX} centeringShiftY={this.centeringShiftY}
+ easing={this.easing} zoomScaling={this.zoomScaling} panX={this.panX} panY={this.panY}>
+ {this.children}
+ </CollectionFreeFormViewPannableContents>
+ </MarqueeView>;
+ }
+
+ @computed get contentScaling() {
+ if (this.props.annotationsKey) return 0;
+ const hscale = this.nativeHeight ? this.props.PanelHeight() / this.nativeHeight : 1;
+ const wscale = this.nativeWidth ? this.props.PanelWidth() / this.nativeWidth : 1;
+ return wscale < hscale ? wscale : hscale;
+ }
render() {
+ TraceMobx();
// update the actual dimensions of the collection so that they can inquired (e.g., by a minimap)
- this.Document.fitX = this.contentBounds && this.contentBounds.x;
- this.Document.fitY = this.contentBounds && this.contentBounds.y;
- this.Document.fitW = this.contentBounds && (this.contentBounds.r - this.contentBounds.x);
- this.Document.fitH = this.contentBounds && (this.contentBounds.b - this.contentBounds.y);
+ // this.Document.fitX = this.contentBounds && this.contentBounds.x;
+ // this.Document.fitY = this.contentBounds && this.contentBounds.y;
+ // this.Document.fitW = this.contentBounds && (this.contentBounds.r - this.contentBounds.x);
+ // this.Document.fitH = this.contentBounds && (this.contentBounds.b - this.contentBounds.y);
// if isAnnotationOverlay is set, then children will be stored in the extension document for the fieldKey.
// otherwise, they are stored in fieldKey. All annotations to this document are stored in the extension document
- return !this.extensionDoc ? (null) :
- <div className={"collectionfreeformview-container"} ref={this.createDropTarget} onWheel={this.onPointerWheel}
- style={{ pointerEvents: SelectionManager.GetIsDragging() ? "all" : undefined, height: this.isAnnotationOverlay ? (this.props.Document.scrollHeight ? this.Document.scrollHeight : "100%") : this.props.PanelHeight() }}
- onPointerDown={this.onPointerDown} onPointerMove={this.onCursorMove} onDrop={this.onDrop.bind(this)} onContextMenu={this.onContextMenu}>
- <MarqueeView {...this.props} extensionDoc={this.extensionDoc} activeDocuments={this.getActiveDocuments} selectDocuments={this.selectDocuments} addDocument={this.addDocument}
- addLiveTextDocument={this.addLiveTextBox} getContainerTransform={this.getContainerTransform} getTransform={this.getTransform} isAnnotationOverlay={this.isAnnotationOverlay}>
- <CollectionFreeFormViewPannableContents centeringShiftX={this.centeringShiftX} centeringShiftY={this.centeringShiftY}
- easing={this.easing} zoomScaling={this.zoomScaling} panX={this.panX} panY={this.panY}>
- {!this.extensionDoc ? (null) :
- <InkingCanvas getScreenTransform={this.getTransform} Document={this.props.Document} AnnotationDocument={this.extensionDoc} inkFieldKey={"ink"} >
- {this.childViews}
- </InkingCanvas>}
- <CollectionFreeFormRemoteCursors {...this.props} key="remoteCursors" />
- </CollectionFreeFormViewPannableContents>
- </MarqueeView>
- {this.overlayViews}
- </div>;
+ // let lodarea = this.Document[WidthSym]() * this.Document[HeightSym]() / this.props.ScreenToLocalTransform().Scale / this.props.ScreenToLocalTransform().Scale;
+ return <div className={"collectionfreeformview-container"}
+ ref={this.createDashEventsTarget}
+ onWheel={this.onPointerWheel}//pointerEvents: SelectionManager.GetIsDragging() ? "all" : undefined,
+ onPointerDown={this.onPointerDown} onPointerMove={this.onCursorMove} onDrop={this.onDrop.bind(this)} onContextMenu={this.onContextMenu}
+ style={{
+ pointerEvents: SelectionManager.GetIsDragging() ? "all" : undefined,
+ transform: this.contentScaling ? `scale(${this.contentScaling})` : "",
+ transformOrigin: this.contentScaling ? "left top" : "",
+ width: this.contentScaling ? `${100 / this.contentScaling}%` : "",
+ height: this.contentScaling ? `${100 / this.contentScaling}%` : this.isAnnotationOverlay ? (this.props.Document.scrollHeight ? this.Document.scrollHeight : "100%") : this.props.PanelHeight()
+ }}>
+ {!this.Document._LODdisable && !this.props.active() && !this.props.isAnnotationOverlay && !this.props.annotationsKey && this.props.renderDepth > 0 ? // && this.props.CollectionView && lodarea < NumCast(this.Document.LODarea, 100000) ?
+ this.placeholder : this.marqueeView}
+ <CollectionFreeFormOverlayView elements={this.elementFunc} />
+ </div>;
+ }
+}
+
+interface CollectionFreeFormOverlayViewProps {
+ elements: () => ViewDefResult[];
+}
+
+@observer
+class CollectionFreeFormOverlayView extends React.Component<CollectionFreeFormOverlayViewProps>{
+ render() {
+ return this.props.elements().filter(ele => ele.bounds && ele.bounds.z).map(ele => ele.ele);
}
}
@@ -705,20 +1111,20 @@ interface CollectionFreeFormViewPannableContentsProps {
panY: () => number;
zoomScaling: () => number;
easing: () => boolean;
+ children: () => JSX.Element[];
}
@observer
class CollectionFreeFormViewPannableContents extends React.Component<CollectionFreeFormViewPannableContentsProps>{
render() {
- let freeformclass = "collectionfreeformview" + (this.props.easing() ? "-ease" : "-none");
+ const freeformclass = "collectionfreeformview" + (this.props.easing() ? "-ease" : "-none");
const cenx = this.props.centeringShiftX();
const ceny = this.props.centeringShiftY();
const panx = -this.props.panX();
const pany = -this.props.panY();
const zoom = this.props.zoomScaling();
- return <div className={freeformclass} style={{ borderRadius: "inherit", transform: `translate(${cenx}px, ${ceny}px) scale(${zoom}) translate(${panx}px, ${pany}px)` }}>
- {this.props.children}
- {/* <ClientRecommender title="Distance Matrix" /> */}
+ return <div className={freeformclass} style={{ touchAction: "none", borderRadius: "inherit", transform: `translate(${cenx}px, ${ceny}px) scale(${zoom}) translate(${panx}px, ${pany}px)` }}>
+ {this.props.children()}
</div>;
}
} \ No newline at end of file
diff --git a/src/client/views/collections/collectionFreeForm/MarqueeOptionsMenu.tsx b/src/client/views/collections/collectionFreeForm/MarqueeOptionsMenu.tsx
new file mode 100644
index 000000000..db4b674b5
--- /dev/null
+++ b/src/client/views/collections/collectionFreeForm/MarqueeOptionsMenu.tsx
@@ -0,0 +1,57 @@
+import React = require("react");
+import AntimodeMenu from "../../AntimodeMenu";
+import { observer } from "mobx-react";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { unimplementedFunction } from "../../../../Utils";
+
+@observer
+export default class MarqueeOptionsMenu extends AntimodeMenu {
+ static Instance: MarqueeOptionsMenu;
+
+ public createCollection: (e: KeyboardEvent | React.PointerEvent | undefined) => void = unimplementedFunction;
+ public delete: (e: KeyboardEvent | React.PointerEvent | undefined) => void = unimplementedFunction;
+ public summarize: (e: KeyboardEvent | React.PointerEvent | undefined) => void = unimplementedFunction;
+ public inkToText: (e: KeyboardEvent | React.PointerEvent | undefined) => void = unimplementedFunction;
+ public showMarquee: () => void = unimplementedFunction;
+ public hideMarquee: () => void = unimplementedFunction;
+
+ constructor(props: Readonly<{}>) {
+ super(props);
+
+ MarqueeOptionsMenu.Instance = this;
+ }
+
+ render() {
+ const buttons = [
+ <button
+ className="antimodeMenu-button"
+ title="Create a Collection"
+ key="group"
+ onPointerDown={this.createCollection}>
+ <FontAwesomeIcon icon="object-group" size="lg" />
+ </button>,
+ <button
+ className="antimodeMenu-button"
+ title="Summarize Documents"
+ key="summarize"
+ onPointerDown={this.summarize}>
+ <FontAwesomeIcon icon="compress-arrows-alt" size="lg" />
+ </button>,
+ <button
+ className="antimodeMenu-button"
+ title="Delete Documents"
+ key="delete"
+ onPointerDown={this.delete}>
+ <FontAwesomeIcon icon="trash-alt" size="lg" />
+ </button>,
+ <button
+ className="antimodeMenu-button"
+ title="Change to Text"
+ key="inkToText"
+ onPointerDown={this.inkToText}>
+ <FontAwesomeIcon icon="font" size="lg" />
+ </button>,
+ ];
+ return this.getElement(buttons);
+ }
+} \ No newline at end of file
diff --git a/src/client/views/collections/collectionFreeForm/MarqueeView.scss b/src/client/views/collections/collectionFreeForm/MarqueeView.scss
index 04f6ec2ad..18d6da0da 100644
--- a/src/client/views/collections/collectionFreeForm/MarqueeView.scss
+++ b/src/client/views/collections/collectionFreeForm/MarqueeView.scss
@@ -5,9 +5,9 @@
left:0;
width:100%;
height:100%;
-}
-.marqueeView {
overflow: hidden;
+ pointer-events: inherit;
+ border-radius: inherit;
}
.marqueeView:focus-within {
diff --git a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
index 44b6fe030..19a71012a 100644
--- a/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
+++ b/src/client/views/collections/collectionFreeForm/MarqueeView.tsx
@@ -1,36 +1,36 @@
import { action, computed, observable } from "mobx";
import { observer } from "mobx-react";
-import { Doc, DocListCast } from "../../../../new_fields/Doc";
-import { InkField, StrokeData } from "../../../../new_fields/InkField";
+import { Doc, DocListCast, DataSym, WidthSym, HeightSym } from "../../../../new_fields/Doc";
+import { InkField } from "../../../../new_fields/InkField";
import { List } from "../../../../new_fields/List";
import { listSpec } from "../../../../new_fields/Schema";
import { SchemaHeaderField } from "../../../../new_fields/SchemaHeaderField";
import { ComputedField } from "../../../../new_fields/ScriptField";
-import { Cast, NumCast, StrCast } from "../../../../new_fields/Types";
+import { Cast, NumCast, StrCast, FieldValue } from "../../../../new_fields/Types";
import { CurrentUserUtils } from "../../../../server/authentication/models/current_user_utils";
import { Utils } from "../../../../Utils";
import { Docs } from "../../../documents/Documents";
import { SelectionManager } from "../../../util/SelectionManager";
import { Transform } from "../../../util/Transform";
import { undoBatch } from "../../../util/UndoManager";
-import { InkingCanvas } from "../../InkingCanvas";
import { PreviewCursor } from "../../PreviewCursor";
import { CollectionViewType } from "../CollectionView";
-import { CollectionFreeFormView } from "./CollectionFreeFormView";
import "./MarqueeView.scss";
import React = require("react");
+import MarqueeOptionsMenu from "./MarqueeOptionsMenu";
import { SubCollectionViewProps } from "../CollectionSubView";
+import { CognitiveServices } from "../../../cognitive_services/CognitiveServices";
+import { RichTextField } from "../../../../new_fields/RichTextField";
interface MarqueeViewProps {
getContainerTransform: () => Transform;
getTransform: () => Transform;
addDocument: (doc: Doc) => boolean;
activeDocuments: () => Doc[];
- selectDocuments: (docs: Doc[]) => void;
+ selectDocuments: (docs: Doc[], ink: { Document: Doc, Ink: Map<any, any> }[]) => void;
removeDocument: (doc: Doc) => boolean;
addLiveTextDocument: (doc: Doc) => void;
isSelected: () => boolean;
- extensionDoc: Doc;
isAnnotationOverlay?: boolean;
setPreviewCursor?: (func: (x: number, y: number, drag: boolean) => void) => void;
}
@@ -51,39 +51,42 @@ export class MarqueeView extends React.Component<SubCollectionViewProps & Marque
}
@action
- cleanupInteractions = (all: boolean = false) => {
+ cleanupInteractions = (all: boolean = false, hideMarquee: boolean = true) => {
if (all) {
document.removeEventListener("pointerup", this.onPointerUp, true);
document.removeEventListener("pointermove", this.onPointerMove, true);
}
document.removeEventListener("keydown", this.marqueeCommand, true);
- this._visible = false;
+ if (hideMarquee) {
+ this._visible = false;
+ }
}
@undoBatch
@action
onKeyPress = (e: KeyboardEvent) => {
//make textbox and add it to this collection
+ // tslint:disable-next-line:prefer-const
let [x, y] = this.props.getTransform().transformPoint(this._downX, this._downY);
if (e.key === "q" && e.ctrlKey) {
e.preventDefault();
(async () => {
- let text: string = await navigator.clipboard.readText();
- let ns = text.split("\n").filter(t => t.trim() !== "\r" && t.trim() !== "");
+ const text: string = await navigator.clipboard.readText();
+ const ns = text.split("\n").filter(t => t.trim() !== "\r" && t.trim() !== "");
for (let i = 0; i < ns.length - 1; i++) {
while (!(ns[i].trim() === "" || ns[i].endsWith("-\r") || ns[i].endsWith("-") ||
ns[i].endsWith(";\r") || ns[i].endsWith(";") ||
ns[i].endsWith(".\r") || ns[i].endsWith(".") ||
ns[i].endsWith(":\r") || ns[i].endsWith(":")) && i < ns.length - 1) {
- let sub = ns[i].endsWith("\r") ? 1 : 0;
- let br = ns[i + 1].trim() === "";
+ const sub = ns[i].endsWith("\r") ? 1 : 0;
+ const br = ns[i + 1].trim() === "";
ns.splice(i, 2, ns[i].substr(0, ns[i].length - sub) + ns[i + 1].trimLeft());
if (br) break;
}
}
ns.map(line => {
- let indent = line.search(/\S|$/);
- let newBox = Docs.Create.TextDocument({ width: 200, height: 35, x: x + indent / 3 * 10, y: y, documentText: "@@@" + line, title: line });
+ const indent = line.search(/\S|$/);
+ const newBox = Docs.Create.TextDocument(line, { _width: 200, _height: 35, x: x + indent / 3 * 10, y: y, title: line });
this.props.addDocument(newBox);
y += 40 * this.props.getTransform().Scale;
});
@@ -91,19 +94,19 @@ export class MarqueeView extends React.Component<SubCollectionViewProps & Marque
} else if (e.key === "b" && e.ctrlKey) {
e.preventDefault();
navigator.clipboard.readText().then(text => {
- let ns = text.split("\n").filter(t => t.trim() !== "\r" && t.trim() !== "");
+ const ns = text.split("\n").filter(t => t.trim() !== "\r" && t.trim() !== "");
if (ns.length === 1 && text.startsWith("http")) {
- this.props.addDocument(Docs.Create.ImageDocument(text, { nativeWidth: 300, width: 300, x: x, y: y }));// paste an image from its URL in the paste buffer
+ this.props.addDocument(Docs.Create.ImageDocument(text, { _nativeWidth: 300, _width: 300, x: x, y: y }));// paste an image from its URL in the paste buffer
} else {
this.pasteTable(ns, x, y);
}
});
} else if (!e.ctrlKey) {
this.props.addLiveTextDocument(
- Docs.Create.TextDocument({ width: 200, height: 100, x: x, y: y, autoHeight: true, title: "-typed text-" }));
+ Docs.Create.TextDocument("", { _width: 200, _height: 100, x: x, y: y, _autoHeight: true, title: "-typed text-" }));
} else if (e.keyCode > 48 && e.keyCode <= 57) {
- let notes = DocListCast((CurrentUserUtils.UserDocument.noteTypes as Doc).data);
- let text = Docs.Create.TextDocument({ width: 200, height: 100, x: x, y: y, autoHeight: true, title: "-typed text-" });
+ const notes = DocListCast((CurrentUserUtils.UserDocument.noteTypes as Doc).data);
+ const text = Docs.Create.TextDocument("", { _width: 200, _height: 100, x: x, y: y, _autoHeight: true, title: "-typed text-" });
text.layout = notes[(e.keyCode - 49) % notes.length];
this.props.addLiveTextDocument(text);
}
@@ -121,31 +124,31 @@ export class MarqueeView extends React.Component<SubCollectionViewProps & Marque
ns.splice(0, 1);
}
if (ns.length > 0) {
- let columns = ns[0].split("\t");
- let docList: Doc[] = [];
+ const columns = ns[0].split("\t");
+ const docList: Doc[] = [];
let groupAttr: string | number = "";
- let rowProto = new Doc();
+ const rowProto = new Doc();
rowProto.title = rowProto.Id;
- rowProto.width = 200;
+ rowProto._width = 200;
rowProto.isPrototype = true;
for (let i = 1; i < ns.length - 1; i++) {
- let values = ns[i].split("\t");
+ const values = ns[i].split("\t");
if (values.length === 1 && columns.length > 1) {
groupAttr = values[0];
continue;
}
- let docDataProto = Doc.MakeDelegate(rowProto);
+ const docDataProto = Doc.MakeDelegate(rowProto);
docDataProto.isPrototype = true;
columns.forEach((col, i) => docDataProto[columns[i]] = (values.length > i ? ((values[i].indexOf(Number(values[i]).toString()) !== -1) ? Number(values[i]) : values[i]) : undefined));
if (groupAttr) {
docDataProto._group = groupAttr;
}
docDataProto.title = i.toString();
- let doc = Doc.MakeDelegate(docDataProto);
- doc.width = 200;
+ const doc = Doc.MakeDelegate(docDataProto);
+ doc._width = 200;
docList.push(doc);
}
- let newCol = Docs.Create.SchemaDocument([...(groupAttr ? [new SchemaHeaderField("_group", "#f1efeb")] : []), ...columns.filter(c => c).map(c => new SchemaHeaderField(c, "#f1efeb"))], docList, { x: x, y: y, title: "droppedTable", width: 300, height: 100 });
+ const newCol = Docs.Create.SchemaDocument([...(groupAttr ? [new SchemaHeaderField("_group", "#f1efeb")] : []), ...columns.filter(c => c).map(c => new SchemaHeaderField(c, "#f1efeb"))], docList, { x: x, y: y, title: "droppedTable", _width: 300, _height: 100 });
this.props.addDocument(newCol);
}
@@ -188,15 +191,34 @@ export class MarqueeView extends React.Component<SubCollectionViewProps & Marque
@action
onPointerUp = (e: PointerEvent): void => {
- if (!this.props.active()) this.props.selectDocuments([this.props.Document]);
+ if (!this.props.active(true)) this.props.selectDocuments([this.props.Document], []);
if (this._visible) {
- let mselect = this.marqueeSelect();
+ const mselect = this.marqueeSelect();
if (!e.shiftKey) {
SelectionManager.DeselectAll(mselect.length ? undefined : this.props.Document);
}
- this.props.selectDocuments(mselect.length ? mselect : [this.props.Document]);
+ // let inkselect = this.ink ? this.marqueeInkSelect(this.ink.inkData) : new Map();
+ // let inks = inkselect.size ? [{ Document: this.inkDoc, Ink: inkselect }] : [];
+ const docs = mselect.length ? mselect : [this.props.Document];
+ this.props.selectDocuments(docs, []);
}
- this.cleanupInteractions(true);
+ if (!this._commandExecuted && (Math.abs(this.Bounds.height * this.Bounds.width) > 100)) {
+ MarqueeOptionsMenu.Instance.createCollection = this.collection;
+ MarqueeOptionsMenu.Instance.delete = this.delete;
+ MarqueeOptionsMenu.Instance.summarize = this.summary;
+ MarqueeOptionsMenu.Instance.inkToText = this.syntaxHighlight;
+ MarqueeOptionsMenu.Instance.showMarquee = this.showMarquee;
+ MarqueeOptionsMenu.Instance.hideMarquee = this.hideMarquee;
+ MarqueeOptionsMenu.Instance.jumpTo(e.clientX, e.clientY);
+ }
+ this.cleanupInteractions(true, this._commandExecuted);
+
+ const hideMarquee = () => {
+ this.hideMarquee();
+ MarqueeOptionsMenu.Instance.fadeOut(true);
+ document.removeEventListener("pointerdown", hideMarquee);
+ };
+ document.addEventListener("pointerdown", hideMarquee);
if (e.altKey) {
e.preventDefault();
@@ -239,19 +261,174 @@ export class MarqueeView extends React.Component<SubCollectionViewProps & Marque
@computed
get Bounds() {
- let left = this._downX < this._lastX ? this._downX : this._lastX;
- let top = this._downY < this._lastY ? this._downY : this._lastY;
- let topLeft = this.props.getTransform().transformPoint(left, top);
- let size = this.props.getTransform().transformDirection(this._lastX - this._downX, this._lastY - this._downY);
+ const left = this._downX < this._lastX ? this._downX : this._lastX;
+ const top = this._downY < this._lastY ? this._downY : this._lastY;
+ const topLeft = this.props.getTransform().transformPoint(left, top);
+ const size = this.props.getTransform().transformDirection(this._lastX - this._downX, this._lastY - this._downY);
return { left: topLeft[0], top: topLeft[1], width: Math.abs(size[0]), height: Math.abs(size[1]) };
}
+ get inkDoc() {
+ return this.props.Document;
+ }
+
get ink() { // ink will be stored on the extension doc for the field (fieldKey) where the container's data is stored.
- return this.props.extensionDoc && Cast(this.props.extensionDoc.ink, InkField);
+ return Cast(this.props.Document.ink, InkField);
}
set ink(value: InkField | undefined) {
- this.props.extensionDoc && (this.props.extensionDoc.ink = value);
+ this.props.Document.ink = value;
+ }
+
+ @action
+ showMarquee = () => {
+ this._visible = true;
+ }
+
+ @action
+ hideMarquee = () => {
+ this._visible = false;
+ }
+
+ @action
+ delete = () => {
+ this.marqueeSelect(false).map(d => this.props.removeDocument(d));
+ if (this.ink) {
+ // this.marqueeInkDelete(this.ink.inkData);
+ }
+ SelectionManager.DeselectAll();
+ this.cleanupInteractions(false);
+ MarqueeOptionsMenu.Instance.fadeOut(true);
+ this.hideMarquee();
+ }
+
+ getCollection = (selected: Doc[], asTemplate: boolean) => {
+ const bounds = this.Bounds;
+ const defaultPalette = ["rgb(114,229,239)", "rgb(255,246,209)", "rgb(255,188,156)", "rgb(247,220,96)", "rgb(122,176,238)",
+ "rgb(209,150,226)", "rgb(127,235,144)", "rgb(252,188,189)", "rgb(247,175,81)",];
+ const colorPalette = Cast(this.props.Document.colorPalette, listSpec("string"));
+ if (!colorPalette) this.props.Document.colorPalette = new List<string>(defaultPalette);
+ const palette = Array.from(Cast(this.props.Document.colorPalette, listSpec("string")) as string[]);
+ const usedPaletted = new Map<string, number>();
+ [...this.props.activeDocuments(), this.props.Document].map(child => {
+ const bg = StrCast(Doc.Layout(child).backgroundColor);
+ if (palette.indexOf(bg) !== -1) {
+ palette.splice(palette.indexOf(bg), 1);
+ if (usedPaletted.get(bg)) usedPaletted.set(bg, usedPaletted.get(bg)! + 1);
+ else usedPaletted.set(bg, 1);
+ }
+ });
+ usedPaletted.delete("#f1efeb");
+ usedPaletted.delete("white");
+ usedPaletted.delete("rgba(255,255,255,1)");
+ const usedSequnce = Array.from(usedPaletted.keys()).sort((a, b) => usedPaletted.get(a)! < usedPaletted.get(b)! ? -1 : usedPaletted.get(a)! > usedPaletted.get(b)! ? 1 : 0);
+ const chosenColor = (usedPaletted.size === 0) ? "white" : palette.length ? palette[0] : usedSequnce[0];
+ // const inkData = this.ink ? this.ink.inkData : undefined;
+ const creator = asTemplate ? Docs.Create.StackingDocument : Docs.Create.FreeformDocument;
+ const newCollection = creator(selected, {
+ x: bounds.left,
+ y: bounds.top,
+ _panX: 0,
+ _panY: 0,
+ backgroundColor: this.props.isAnnotationOverlay ? undefined : chosenColor,
+ defaultBackgroundColor: this.props.isAnnotationOverlay ? undefined : chosenColor,
+ _width: bounds.width,
+ _height: bounds.height,
+ _LODdisable: true,
+ title: "a nested collection",
+ });
+ // const dataExtensionField = Doc.CreateDocumentExtensionForField(newCollection, "data");
+ // dataExtensionField.ink = inkData ? new InkField(this.marqueeInkSelect(inkData)) : undefined;
+ // this.marqueeInkDelete(inkData);
+ this.hideMarquee();
+ return newCollection;
+ }
+
+ @action
+ collection = (e: KeyboardEvent | React.PointerEvent | undefined) => {
+ const bounds = this.Bounds;
+ const selected = this.marqueeSelect(false);
+ if (e instanceof KeyboardEvent ? e.key === "c" : true) {
+ selected.map(d => {
+ this.props.removeDocument(d);
+ d.x = NumCast(d.x) - bounds.left - bounds.width / 2;
+ d.y = NumCast(d.y) - bounds.top - bounds.height / 2;
+ d.displayTimecode = undefined;
+ return d;
+ });
+ }
+ const newCollection = this.getCollection(selected, e.key === "t");
+ this.props.addDocument(newCollection);
+ this.props.selectDocuments([newCollection], []);
+ MarqueeOptionsMenu.Instance.fadeOut(true);
+ this.hideMarquee();
+ }
+
+ @action
+ syntaxHighlight = (e: KeyboardEvent | React.PointerEvent | undefined) => {
+ const selected = this.marqueeSelect(false);
+ if (e instanceof KeyboardEvent ? e.key === "i" : true) {
+ const inks = selected.filter(s => s.proto?.type === "ink");
+ const setDocs = selected.filter(s => s.proto?.type === "text" && s.color);
+ const sets = setDocs.map((sd) => {
+ return Cast(sd.data, RichTextField)?.Text as string;
+ });
+ const colors = setDocs.map(sd => FieldValue(sd.color) as string);
+ const wordToColor = new Map<string, string>();
+ console.log(sets);
+ sets.forEach((st: string, i: number) => {
+ const words = st.split(",");
+ words.forEach(word => {
+ wordToColor.set(word, colors[i]);
+ });
+ });
+ const inkFields = inks.map(i => Cast(i.data, InkField));
+ CognitiveServices.Inking.Appliers.InterpretStrokes(inkFields.filter(i => i instanceof InkField).map(i => i!.inkData)).then((results) => {
+ const wordResults = results.filter((r: any) => r.category === "inkWord");
+ console.log(wordResults);
+ for (const word of wordResults) {
+ const indices: number[] = word.strokeIds;
+ indices.forEach(i => {
+ if (wordToColor.has(word.recognizedText)) {
+ inks[i].color = wordToColor.get(word.recognizedText);
+ }
+ })
+ }
+ });
+ }
+ }
+
+ @action
+ summary = (e: KeyboardEvent | React.PointerEvent | undefined) => {
+ const bounds = this.Bounds;
+ const selected = this.marqueeSelect(false);
+ const newCollection = this.getCollection(selected);
+
+ selected.map(d => {
+ this.props.removeDocument(d);
+ d.x = NumCast(d.x) - bounds.left - bounds.width / 2;
+ d.y = NumCast(d.y) - bounds.top - bounds.height / 2;
+ d.page = -1;
+ return d;
+ });
+ newCollection._chromeStatus = "disabled";
+ const summary = Docs.Create.TextDocument("", { x: bounds.left, y: bounds.top, _width: 300, _height: 100, _autoHeight: true, backgroundColor: "#e2ad32" /* yellow */, title: "-summary-" });
+ Doc.GetProto(summary).summarizedDocs = new List<Doc>([newCollection]);
+ newCollection.x = bounds.left + bounds.width;
+ Doc.GetProto(newCollection).summaryDoc = summary;
+ Doc.GetProto(newCollection).title = ComputedField.MakeFunction(`summaryTitle(this);`);
+ if (e instanceof KeyboardEvent ? e.key === "s" : true) { // summary is wrapped in an expand/collapse container that also contains the summarized documents in a free form view.
+ const container = Docs.Create.FreeformDocument([summary, newCollection], {
+ x: bounds.left, y: bounds.top, _width: 300, _height: 200, _autoHeight: true,
+ _viewType: CollectionViewType.Stacking, _chromeStatus: "disabled", title: "-summary-"
+ });
+ Doc.GetProto(summary).maximizeLocation = "inPlace"; // or "onRight"
+ this.props.addLiveTextDocument(container);
+ } else if (e instanceof KeyboardEvent ? e.key === "S" : false) { // the summary stands alone, but is linked to a collection of the summarized documents - set the OnCLick behavior to link follow to access them
+ Doc.GetProto(summary).maximizeLocation = "inTab"; // or "inPlace", or "onRight"
+ this.props.addLiveTextDocument(summary);
+ }
+ MarqueeOptionsMenu.Instance.fadeOut(true);
}
@undoBatch
@@ -264,168 +441,101 @@ export class MarqueeView extends React.Component<SubCollectionViewProps & Marque
this._commandExecuted = true;
e.stopPropagation();
(e as any).propagationIsStopped = true;
- this.marqueeSelect(false).map(d => this.props.removeDocument(d));
- if (this.ink) {
- this.marqueeInkDelete(this.ink.inkData);
- }
- SelectionManager.DeselectAll();
- this.cleanupInteractions(false);
+ this.delete();
e.stopPropagation();
}
- if (e.key === "c" || e.key === "s" || e.key === "S") {
+ if (e.key === "c" || e.key === "t" || e.key === "s" || e.key === "S") {
this._commandExecuted = true;
e.stopPropagation();
e.preventDefault();
(e as any).propagationIsStopped = true;
- let bounds = this.Bounds;
- let selected = this.marqueeSelect(false);
- if (e.key === "c") {
- selected.map(d => {
- this.props.removeDocument(d);
- d.x = NumCast(d.x) - bounds.left - bounds.width / 2;
- d.y = NumCast(d.y) - bounds.top - bounds.height / 2;
- d.displayTimecode = undefined;
- return d;
- });
+ if (e.key === "c" || e.key === "t") {
+ this.collection(e);
}
- let defaultPalette = ["rgb(114,229,239)", "rgb(255,246,209)", "rgb(255,188,156)", "rgb(247,220,96)", "rgb(122,176,238)",
- "rgb(209,150,226)", "rgb(127,235,144)", "rgb(252,188,189)", "rgb(247,175,81)",];
- let colorPalette = Cast(this.props.Document.colorPalette, listSpec("string"));
- if (!colorPalette) this.props.Document.colorPalette = new List<string>(defaultPalette);
- let palette = Array.from(Cast(this.props.Document.colorPalette, listSpec("string")) as string[]);
- let usedPaletted = new Map<string, number>();
- [...this.props.activeDocuments(), this.props.Document].map(child => {
- let bg = StrCast(Doc.Layout(child).backgroundColor);
- if (palette.indexOf(bg) !== -1) {
- palette.splice(palette.indexOf(bg), 1);
- if (usedPaletted.get(bg)) usedPaletted.set(bg, usedPaletted.get(bg)! + 1);
- else usedPaletted.set(bg, 1);
- }
- });
- usedPaletted.delete("#f1efeb");
- usedPaletted.delete("white");
- usedPaletted.delete("rgba(255,255,255,1)");
- let usedSequnce = Array.from(usedPaletted.keys()).sort((a, b) => usedPaletted.get(a)! < usedPaletted.get(b)! ? -1 : usedPaletted.get(a)! > usedPaletted.get(b)! ? 1 : 0);
- let chosenColor = (usedPaletted.size === 0) ? "white" : palette.length ? palette[0] : usedSequnce[0];
- let inkData = this.ink ? this.ink.inkData : undefined;
- let newCollection = Docs.Create.FreeformDocument(selected, {
- x: bounds.left,
- y: bounds.top,
- panX: 0,
- panY: 0,
- backgroundColor: this.props.isAnnotationOverlay ? undefined : chosenColor,
- defaultBackgroundColor: this.props.isAnnotationOverlay ? undefined : chosenColor,
- width: bounds.width,
- height: bounds.height,
- title: "a nested collection",
- });
- let dataExtensionField = Doc.CreateDocumentExtensionForField(newCollection, "data");
- dataExtensionField.ink = inkData ? new InkField(this.marqueeInkSelect(inkData)) : undefined;
- this.marqueeInkDelete(inkData);
if (e.key === "s" || e.key === "S") {
- selected.map(d => {
- this.props.removeDocument(d);
- d.x = NumCast(d.x) - bounds.left - bounds.width / 2;
- d.y = NumCast(d.y) - bounds.top - bounds.height / 2;
- d.page = -1;
- return d;
- });
- newCollection.chromeStatus = "disabled";
- let summary = Docs.Create.TextDocument({ x: bounds.left, y: bounds.top, width: 300, height: 100, autoHeight: true, backgroundColor: "#e2ad32" /* yellow */, title: "-summary-" });
- Doc.GetProto(summary).summarizedDocs = new List<Doc>([newCollection]);
- newCollection.x = bounds.left + bounds.width;
- Doc.GetProto(newCollection).summaryDoc = summary;
- Doc.GetProto(newCollection).title = ComputedField.MakeFunction(`summaryTitle(this);`);
- if (e.key === "s") { // summary is wrapped in an expand/collapse container that also contains the summarized documents in a free form view.
- let container = Docs.Create.FreeformDocument([summary, newCollection], { x: bounds.left, y: bounds.top, width: 300, height: 200, chromeStatus: "disabled", title: "-summary-" });
- container.viewType = CollectionViewType.Stacking;
- container.autoHeight = true;
- Doc.GetProto(summary).maximizeLocation = "inPlace"; // or "onRight"
- this.props.addLiveTextDocument(container);
- } else if (e.key === "S") { // the summary stands alone, but is linked to a collection of the summarized documents - set the OnCLick behavior to link follow to access them
- Doc.GetProto(summary).maximizeLocation = "inTab"; // or "inPlace", or "onRight"
- this.props.addLiveTextDocument(summary);
- }
- }
- else {
- this.props.addDocument(newCollection);
- this.props.selectDocuments([newCollection]);
+ this.summary(e);
}
this.cleanupInteractions(false);
}
}
- @action
- marqueeInkSelect(ink: Map<any, any>) {
- let idata = new Map();
- let centerShiftX = 0 - (this.Bounds.left + this.Bounds.width / 2); // moves each point by the offset that shifts the selection's center to the origin.
- let centerShiftY = 0 - (this.Bounds.top + this.Bounds.height / 2);
- ink.forEach((value: StrokeData, key: string, map: any) => {
- if (InkingCanvas.IntersectStrokeRect(value, this.Bounds)) {
- idata.set(key,
- {
- pathData: value.pathData.map(val => ({ x: val.x + centerShiftX, y: val.y + centerShiftY })),
- color: value.color,
- width: value.width,
- tool: value.tool,
- page: -1
- });
- }
- });
- return idata;
- }
+ // @action
+ // marqueeInkSelect(ink: Map<any, any>) {
+ // let idata = new Map();
+ // let centerShiftX = 0 - (this.Bounds.left + this.Bounds.width / 2); // moves each point by the offset that shifts the selection's center to the origin.
+ // let centerShiftY = 0 - (this.Bounds.top + this.Bounds.height / 2);
+ // ink.forEach((value: PointData, key: string, map: any) => {
+ // if (InkingCanvas.IntersectStrokeRect(value, this.Bounds)) {
+ // // let transform = this.props.container.props.ScreenToLocalTransform().scale(this.props.container.props.ContentScaling());
+ // idata.set(key,
+ // {
+ // pathData: value.pathData.map(val => {
+ // let tVal = this.props.getTransform().inverse().transformPoint(val.x, val.y);
+ // return { x: tVal[0], y: tVal[1] };
+ // // return { x: val.x + centerShiftX, y: val.y + centerShiftY }
+ // }),
+ // color: value.color,
+ // width: value.width,
+ // tool: value.tool,
+ // page: -1
+ // });
+ // }
+ // });
+ // // InkSelectDecorations.Instance.SetSelected(idata);
+ // return idata;
+ // }
- @action
- marqueeInkDelete(ink?: Map<any, any>) {
- // bcz: this appears to work but when you restart all the deleted strokes come back -- InkField isn't observing its changes so they aren't written to the DB.
- // ink.forEach((value: StrokeData, key: string, map: any) =>
- // InkingCanvas.IntersectStrokeRect(value, this.Bounds) && ink.delete(key));
-
- if (ink) {
- let idata = new Map();
- ink.forEach((value: StrokeData, key: string, map: any) =>
- !InkingCanvas.IntersectStrokeRect(value, this.Bounds) && idata.set(key, value));
- this.ink = new InkField(idata);
- }
- }
+ // @action
+ // marqueeInkDelete(ink?: Map<any, any>) {
+ // // bcz: this appears to work but when you restart all the deleted strokes come back -- InkField isn't observing its changes so they aren't written to the DB.
+ // // ink.forEach((value: StrokeData, key: string, map: any) =>
+ // // InkingCanvas.IntersectStrokeRect(value, this.Bounds) && ink.delete(key));
+
+ // if (ink) {
+ // let idata = new Map();
+ // ink.forEach((value: PointData, key: string, map: any) =>
+ // !InkingCanvas.IntersectStrokeRect(value, this.Bounds) && idata.set(key, value));
+ // this.ink = new InkField(idata);
+ // }
+ // }
marqueeSelect(selectBackgrounds: boolean = true) {
- let selRect = this.Bounds;
- let selection: Doc[] = [];
+ const selRect = this.Bounds;
+ const selection: Doc[] = [];
this.props.activeDocuments().filter(doc => !doc.isBackground && doc.z === undefined).map(doc => {
- let layoutDoc = Doc.Layout(doc);
- var x = NumCast(doc.x);
- var y = NumCast(doc.y);
- var w = NumCast(layoutDoc.width);
- var h = NumCast(layoutDoc.height);
+ const layoutDoc = Doc.Layout(doc);
+ const x = NumCast(doc.x);
+ const y = NumCast(doc.y);
+ const w = NumCast(layoutDoc._width);
+ const h = NumCast(layoutDoc._height);
if (this.intersectRect({ left: x, top: y, width: w, height: h }, selRect)) {
selection.push(doc);
}
});
if (!selection.length && selectBackgrounds) {
this.props.activeDocuments().filter(doc => doc.z === undefined).map(doc => {
- let layoutDoc = Doc.Layout(doc);
- var x = NumCast(doc.x);
- var y = NumCast(doc.y);
- var w = NumCast(layoutDoc.width);
- var h = NumCast(layoutDoc.height);
+ const layoutDoc = Doc.Layout(doc);
+ const x = NumCast(doc.x);
+ const y = NumCast(doc.y);
+ const w = NumCast(layoutDoc._width);
+ const h = NumCast(layoutDoc._height);
if (this.intersectRect({ left: x, top: y, width: w, height: h }, selRect)) {
selection.push(doc);
}
});
}
if (!selection.length) {
- let left = this._downX < this._lastX ? this._downX : this._lastX;
- let top = this._downY < this._lastY ? this._downY : this._lastY;
- let topLeft = this.props.getContainerTransform().transformPoint(left, top);
- let size = this.props.getContainerTransform().transformDirection(this._lastX - this._downX, this._lastY - this._downY);
- let otherBounds = { left: topLeft[0], top: topLeft[1], width: Math.abs(size[0]), height: Math.abs(size[1]) };
+ const left = this._downX < this._lastX ? this._downX : this._lastX;
+ const top = this._downY < this._lastY ? this._downY : this._lastY;
+ const topLeft = this.props.getContainerTransform().transformPoint(left, top);
+ const size = this.props.getContainerTransform().transformDirection(this._lastX - this._downX, this._lastY - this._downY);
+ const otherBounds = { left: topLeft[0], top: topLeft[1], width: Math.abs(size[0]), height: Math.abs(size[1]) };
this.props.activeDocuments().filter(doc => doc.z !== undefined).map(doc => {
- let layoutDoc = Doc.Layout(doc);
- var x = NumCast(doc.x);
- var y = NumCast(doc.y);
- var w = NumCast(layoutDoc.width);
- var h = NumCast(layoutDoc.height);
+ const layoutDoc = Doc.Layout(doc);
+ const x = NumCast(doc.x);
+ const y = NumCast(doc.y);
+ const w = NumCast(layoutDoc._width);
+ const h = NumCast(layoutDoc._height);
if (this.intersectRect({ left: x, top: y, width: w, height: h }, otherBounds)) {
selection.push(doc);
}
@@ -436,15 +546,20 @@ export class MarqueeView extends React.Component<SubCollectionViewProps & Marque
@computed
get marqueeDiv() {
- let p: [number, number] = this._visible ? this.props.getContainerTransform().transformPoint(this._downX < this._lastX ? this._downX : this._lastX, this._downY < this._lastY ? this._downY : this._lastY) : [0, 0];
- let v = this.props.getContainerTransform().transformDirection(this._lastX - this._downX, this._lastY - this._downY);
+ const p: [number, number] = this._visible ? this.props.getContainerTransform().transformPoint(this._downX < this._lastX ? this._downX : this._lastX, this._downY < this._lastY ? this._downY : this._lastY) : [0, 0];
+ const v = this.props.getContainerTransform().transformDirection(this._lastX - this._downX, this._lastY - this._downY);
+ /**
+ * @RE - The commented out span below
+ * This contains the "C for collection, ..." text on marquees.
+ * Commented out by syip2 when the marquee menu was added.
+ */
return <div className="marquee" style={{ transform: `translate(${p[0]}px, ${p[1]}px)`, width: `${Math.abs(v[0])}`, height: `${Math.abs(v[1])}`, zIndex: 2000 }} >
- <span className="marquee-legend" />
+ {/* <span className="marquee-legend" /> */}
</div>;
}
render() {
- return <div className="marqueeView" onScroll={(e) => e.currentTarget.scrollTop = e.currentTarget.scrollLeft = 0} style={{ borderRadius: "inherit" }} onClick={this.onClick} onPointerDown={this.onPointerDown}>
+ return <div className="marqueeView" onScroll={(e) => e.currentTarget.scrollTop = e.currentTarget.scrollLeft = 0} onClick={this.onClick} onPointerDown={this.onPointerDown}>
{this._visible ? this.marqueeDiv : null}
{this.props.children}
</div>;
diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss
new file mode 100644
index 000000000..f57ba438a
--- /dev/null
+++ b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss
@@ -0,0 +1,33 @@
+.collectionMulticolumnView_contents {
+ display: flex;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+
+ .document-wrapper {
+ display: flex;
+ flex-direction: column;
+
+ .label-wrapper {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ height: 20px;
+ }
+
+ }
+
+ .resizer {
+ cursor: ew-resize;
+ transition: 0.5s opacity ease;
+ display: flex;
+ flex-direction: column;
+
+ .internal {
+ width: 100%;
+ height: 100%;
+ transition: 0.5s background-color ease;
+ }
+ }
+
+} \ No newline at end of file
diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx
new file mode 100644
index 000000000..041eb69da
--- /dev/null
+++ b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx
@@ -0,0 +1,258 @@
+import { observer } from 'mobx-react';
+import { makeInterface } from '../../../../new_fields/Schema';
+import { documentSchema } from '../../../../new_fields/documentSchemas';
+import { CollectionSubView, SubCollectionViewProps } from '../CollectionSubView';
+import * as React from "react";
+import { Doc } from '../../../../new_fields/Doc';
+import { NumCast, StrCast, BoolCast, ScriptCast } from '../../../../new_fields/Types';
+import { ContentFittingDocumentView } from '../../nodes/ContentFittingDocumentView';
+import { Utils } from '../../../../Utils';
+import "./collectionMulticolumnView.scss";
+import { computed, trace, observable, action } from 'mobx';
+import { Transform } from '../../../util/Transform';
+import WidthLabel from './MulticolumnWidthLabel';
+import ResizeBar from './MulticolumnResizer';
+import { undoBatch } from '../../../util/UndoManager';
+import { DragManager } from '../../../util/DragManager';
+
+type MulticolumnDocument = makeInterface<[typeof documentSchema]>;
+const MulticolumnDocument = makeInterface(documentSchema);
+
+interface WidthSpecifier {
+ magnitude: number;
+ unit: string;
+}
+
+interface LayoutData {
+ widthSpecifiers: WidthSpecifier[];
+ starSum: number;
+}
+
+export const WidthUnit = {
+ Pixel: "px",
+ Ratio: "*"
+};
+
+const resolvedUnits = Object.values(WidthUnit);
+const resizerWidth = 4;
+
+@observer
+export class CollectionMulticolumnView extends CollectionSubView(MulticolumnDocument) {
+
+ /**
+ * @returns the list of layout documents whose width unit is
+ * *, denoting that it will be displayed with a ratio, not fixed pixel, value
+ */
+ @computed
+ private get ratioDefinedDocs() {
+ return this.childLayoutPairs.map(({ layout }) => layout).filter(({ widthUnit }) => StrCast(widthUnit) === WidthUnit.Ratio);
+ }
+
+ /**
+ * This loops through all childLayoutPairs and extracts the values for widthUnit
+ * and widthMagnitude, ignoring any that are malformed. Additionally, it then
+ * normalizes the ratio values so that one * value is always 1, with the remaining
+ * values proportionate to that easily readable metric.
+ * @returns the list of the resolved width specifiers (unit and magnitude pairs)
+ * as well as the sum of the * coefficients, i.e. the ratio magnitudes
+ */
+ @computed
+ private get resolvedLayoutInformation(): LayoutData {
+ let starSum = 0;
+ const widthSpecifiers: WidthSpecifier[] = [];
+ this.childLayoutPairs.map(({ layout: { widthUnit, widthMagnitude } }) => {
+ const unit = StrCast(widthUnit);
+ const magnitude = NumCast(widthMagnitude);
+ if (unit && magnitude && magnitude > 0 && resolvedUnits.includes(unit)) {
+ (unit === WidthUnit.Ratio) && (starSum += magnitude);
+ widthSpecifiers.push({ magnitude, unit });
+ }
+ /**
+ * Otherwise, the child document is ignored and the remaining
+ * space is allocated as if the document were absent from the child list
+ */
+ });
+
+ /**
+ * Here, since these values are all relative, adjustments during resizing or
+ * manual updating can, though their ratios remain the same, cause the values
+ * themselves to drift toward zero. Thus, whenever we change any of the values,
+ * we normalize everything (dividing by the smallest magnitude).
+ */
+ setTimeout(() => {
+ const { ratioDefinedDocs } = this;
+ if (this.childLayoutPairs.length) {
+ const minimum = Math.min(...ratioDefinedDocs.map(({ widthMagnitude }) => NumCast(widthMagnitude)));
+ if (minimum !== 0) {
+ ratioDefinedDocs.forEach(layout => layout.widthMagnitude = NumCast(layout.widthMagnitude) / minimum);
+ }
+ }
+ });
+
+ return { widthSpecifiers, starSum };
+ }
+
+ /**
+ * This returns the total quantity, in pixels, that this
+ * view needs to reserve for child documents that have
+ * (with higher priority) requested a fixed pixel width.
+ *
+ * If the underlying resolvedLayoutInformation returns null
+ * because we're waiting on promises to resolve, this value will be undefined as well.
+ */
+ @computed
+ private get totalFixedAllocation(): number | undefined {
+ return this.resolvedLayoutInformation?.widthSpecifiers.reduce(
+ (sum, { magnitude, unit }) => sum + (unit === WidthUnit.Pixel ? magnitude : 0), 0);
+ }
+
+ /**
+ * @returns the total quantity, in pixels, that this
+ * view needs to reserve for child documents that have
+ * (with lower priority) requested a certain relative proportion of the
+ * remaining pixel width not allocated for fixed widths.
+ *
+ * If the underlying totalFixedAllocation returns undefined
+ * because we're waiting indirectly on promises to resolve, this value will be undefined as well.
+ */
+ @computed
+ private get totalRatioAllocation(): number | undefined {
+ const layoutInfoLen = this.resolvedLayoutInformation.widthSpecifiers.length;
+ if (layoutInfoLen > 0 && this.totalFixedAllocation !== undefined) {
+ return this.props.PanelWidth() - (this.totalFixedAllocation + resizerWidth * (layoutInfoLen - 1));
+ }
+ }
+
+ /**
+ * @returns the total quantity, in pixels, that
+ * 1* (relative / star unit) is worth. For example,
+ * if the configuration has three documents, with, respectively,
+ * widths of 2*, 2* and 1*, and the panel width returns 1000px,
+ * this accessor returns 1000 / (2 + 2 + 1), or 200px.
+ * Elsewhere, this is then multiplied by each relative-width
+ * document's (potentially decimal) * count to compute its actual width (400px, 400px and 200px).
+ *
+ * If the underlying totalRatioAllocation or this.resolveLayoutInformation return undefined
+ * because we're waiting indirectly on promises to resolve, this value will be undefined as well.
+ */
+ @computed
+ private get columnUnitLength(): number | undefined {
+ if (this.resolvedLayoutInformation && this.totalRatioAllocation !== undefined) {
+ return this.totalRatioAllocation / this.resolvedLayoutInformation.starSum;
+ }
+ }
+
+ /**
+ * This wrapper function exists to prevent mobx from
+ * needlessly rerendering the internal ContentFittingDocumentViews
+ */
+ private getColumnUnitLength = () => this.columnUnitLength;
+
+ /**
+ * @param layout the document whose transform we'd like to compute
+ * Given a layout document, this function
+ * returns the resolved width it has requested, in pixels.
+ * @returns the stored column width if already in pixels,
+ * or the ratio width evaluated to a pixel value
+ */
+ private lookupPixels = (layout: Doc): number => {
+ const columnUnitLength = this.columnUnitLength;
+ if (columnUnitLength === undefined) {
+ return 0; // we're still waiting on promises to resolve
+ }
+ let width = NumCast(layout.widthMagnitude);
+ if (StrCast(layout.widthUnit) === WidthUnit.Ratio) {
+ width *= columnUnitLength;
+ }
+ return width;
+ }
+
+ /**
+ * @returns the transform that will correctly place
+ * the document decorations box, shifted to the right by
+ * the sum of all the resolved column widths of the
+ * documents before the target.
+ */
+ private lookupIndividualTransform = (layout: Doc) => {
+ const columnUnitLength = this.columnUnitLength;
+ if (columnUnitLength === undefined) {
+ return Transform.Identity(); // we're still waiting on promises to resolve
+ }
+ let offset = 0;
+ for (const { layout: candidate } of this.childLayoutPairs) {
+ if (candidate === layout) {
+ return this.props.ScreenToLocalTransform().translate(-offset, 0);
+ }
+ offset += this.lookupPixels(candidate) + resizerWidth;
+ }
+ return Transform.Identity(); // type coersion, this case should never be hit
+ }
+
+ @undoBatch
+ @action
+ drop = (e: Event, de: DragManager.DropEvent) => {
+ if (super.drop(e, de)) {
+ de.complete.docDragData?.droppedDocuments.forEach(action((d: Doc) => {
+ d.widthUnit = "*";
+ d.widthMagnitude = 1;
+ }));
+ }
+ return false;
+ }
+
+
+ @computed get onChildClickHandler() { return ScriptCast(this.Document.onChildClick); }
+
+ /**
+ * @returns the resolved list of rendered child documents, displayed
+ * at their resolved pixel widths, each separated by a resizer.
+ */
+ @computed
+ private get contents(): JSX.Element[] | null {
+ const { childLayoutPairs } = this;
+ const { Document, PanelHeight } = this.props;
+ const collector: JSX.Element[] = [];
+ for (let i = 0; i < childLayoutPairs.length; i++) {
+ const { layout } = childLayoutPairs[i];
+ collector.push(
+ <div
+ className={"document-wrapper"}
+ key={Utils.GenerateGuid()}
+ >
+ <ContentFittingDocumentView
+ {...this.props}
+ Document={layout}
+ DataDocument={layout.resolvedDataDoc as Doc}
+ CollectionDoc={this.props.Document}
+ PanelWidth={() => this.lookupPixels(layout)}
+ PanelHeight={() => PanelHeight() - (BoolCast(Document.showWidthLabels) ? 20 : 0)}
+ getTransform={() => this.lookupIndividualTransform(layout)}
+ onClick={this.onChildClickHandler}
+ />
+ <WidthLabel
+ layout={layout}
+ collectionDoc={Document}
+ />
+ </div>,
+ <ResizeBar
+ width={resizerWidth}
+ key={Utils.GenerateGuid()}
+ columnUnitLength={this.getColumnUnitLength}
+ toLeft={layout}
+ toRight={childLayoutPairs[i + 1]?.layout}
+ />
+ );
+ }
+ collector.pop(); // removes the final extraneous resize bar
+ return collector;
+ }
+
+ render(): JSX.Element {
+ return (
+ <div className={"collectionMulticolumnView_contents"} ref={this.createDashEventsTarget}>
+ {this.contents}
+ </div>
+ );
+ }
+
+} \ No newline at end of file
diff --git a/src/client/views/collections/collectionMulticolumn/MulticolumnResizer.tsx b/src/client/views/collections/collectionMulticolumn/MulticolumnResizer.tsx
new file mode 100644
index 000000000..11e210958
--- /dev/null
+++ b/src/client/views/collections/collectionMulticolumn/MulticolumnResizer.tsx
@@ -0,0 +1,116 @@
+import * as React from "react";
+import { observer } from "mobx-react";
+import { observable, action } from "mobx";
+import { Doc } from "../../../../new_fields/Doc";
+import { NumCast, StrCast } from "../../../../new_fields/Types";
+import { WidthUnit } from "./CollectionMulticolumnView";
+
+interface ResizerProps {
+ width: number;
+ columnUnitLength(): number | undefined;
+ toLeft?: Doc;
+ toRight?: Doc;
+}
+
+enum ResizeMode {
+ Global = "blue",
+ Pinned = "red",
+ Undefined = "black"
+}
+
+const resizerOpacity = 1;
+
+@observer
+export default class ResizeBar extends React.Component<ResizerProps> {
+ @observable private isHoverActive = false;
+ @observable private isResizingActive = false;
+ @observable private resizeMode = ResizeMode.Undefined;
+
+ @action
+ private registerResizing = (e: React.PointerEvent<HTMLDivElement>, mode: ResizeMode) => {
+ e.stopPropagation();
+ e.preventDefault();
+ this.resizeMode = mode;
+ window.removeEventListener("pointermove", this.onPointerMove);
+ window.removeEventListener("pointerup", this.onPointerUp);
+ window.addEventListener("pointermove", this.onPointerMove);
+ window.addEventListener("pointerup", this.onPointerUp);
+ this.isResizingActive = true;
+ }
+
+ private onPointerMove = ({ movementX }: PointerEvent) => {
+ const { toLeft, toRight, columnUnitLength } = this.props;
+ const movingRight = movementX > 0;
+ const toNarrow = movingRight ? toRight : toLeft;
+ const toWiden = movingRight ? toLeft : toRight;
+ const unitLength = columnUnitLength();
+ if (unitLength) {
+ if (toNarrow) {
+ const { widthUnit, widthMagnitude } = toNarrow;
+ const scale = widthUnit === WidthUnit.Ratio ? unitLength : 1;
+ toNarrow.widthMagnitude = NumCast(widthMagnitude) - Math.abs(movementX) / scale;
+ }
+ if (this.resizeMode === ResizeMode.Pinned && toWiden) {
+ const { widthUnit, widthMagnitude } = toWiden;
+ const scale = widthUnit === WidthUnit.Ratio ? unitLength : 1;
+ toWiden.widthMagnitude = NumCast(widthMagnitude) + Math.abs(movementX) / scale;
+ }
+ }
+ }
+
+ private get isActivated() {
+ const { toLeft, toRight } = this.props;
+ if (toLeft && toRight) {
+ if (StrCast(toLeft.widthUnit) === WidthUnit.Pixel && StrCast(toRight.widthUnit) === WidthUnit.Pixel) {
+ return false;
+ }
+ return true;
+ } else if (toLeft) {
+ if (StrCast(toLeft.widthUnit) === WidthUnit.Pixel) {
+ return false;
+ }
+ return true;
+ } else if (toRight) {
+ if (StrCast(toRight.widthUnit) === WidthUnit.Pixel) {
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @action
+ private onPointerUp = () => {
+ this.resizeMode = ResizeMode.Undefined;
+ this.isResizingActive = false;
+ this.isHoverActive = false;
+ window.removeEventListener("pointermove", this.onPointerMove);
+ window.removeEventListener("pointerup", this.onPointerUp);
+ }
+
+ render() {
+ return (
+ <div
+ className={"resizer"}
+ style={{
+ width: this.props.width,
+ opacity: this.isActivated && this.isHoverActive ? resizerOpacity : 0
+ }}
+ onPointerEnter={action(() => this.isHoverActive = true)}
+ onPointerLeave={action(() => !this.isResizingActive && (this.isHoverActive = false))}
+ >
+ <div
+ className={"internal"}
+ onPointerDown={e => this.registerResizing(e, ResizeMode.Pinned)}
+ style={{ backgroundColor: this.resizeMode }}
+ />
+ <div
+ className={"internal"}
+ onPointerDown={e => this.registerResizing(e, ResizeMode.Global)}
+ style={{ backgroundColor: this.resizeMode }}
+ />
+ </div>
+ );
+ }
+
+} \ No newline at end of file
diff --git a/src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx b/src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx
new file mode 100644
index 000000000..b394fed62
--- /dev/null
+++ b/src/client/views/collections/collectionMulticolumn/MulticolumnWidthLabel.tsx
@@ -0,0 +1,56 @@
+import * as React from "react";
+import { observer } from "mobx-react";
+import { computed } from "mobx";
+import { Doc } from "../../../../new_fields/Doc";
+import { NumCast, StrCast, BoolCast } from "../../../../new_fields/Types";
+import { EditableView } from "../../EditableView";
+import { WidthUnit } from "./CollectionMulticolumnView";
+
+interface WidthLabelProps {
+ layout: Doc;
+ collectionDoc: Doc;
+ decimals?: number;
+}
+
+@observer
+export default class WidthLabel extends React.Component<WidthLabelProps> {
+
+ @computed
+ private get contents() {
+ const { layout, decimals } = this.props;
+ const getUnit = () => StrCast(layout.widthUnit);
+ const getMagnitude = () => String(+NumCast(layout.widthMagnitude).toFixed(decimals ?? 3));
+ return (
+ <div className={"label-wrapper"}>
+ <EditableView
+ GetValue={getMagnitude}
+ SetValue={value => {
+ const converted = Number(value);
+ if (!isNaN(converted) && converted > 0) {
+ layout.widthMagnitude = converted;
+ return true;
+ }
+ return false;
+ }}
+ contents={getMagnitude()}
+ />
+ <EditableView
+ GetValue={getUnit}
+ SetValue={value => {
+ if (Object.values(WidthUnit).includes(value)) {
+ layout.widthUnit = value;
+ return true;
+ }
+ return false;
+ }}
+ contents={getUnit()}
+ />
+ </div>
+ );
+ }
+
+ render() {
+ return BoolCast(this.props.collectionDoc.showWidthLabels) ? this.contents : (null);
+ }
+
+} \ No newline at end of file
diff --git a/src/client/views/document_templates/caption_toggle/DetailedCaptionToggle.tsx b/src/client/views/document_templates/caption_toggle/DetailedCaptionToggle.tsx
index f8104cef3..3aaf4120c 100644
--- a/src/client/views/document_templates/caption_toggle/DetailedCaptionToggle.tsx
+++ b/src/client/views/document_templates/caption_toggle/DetailedCaptionToggle.tsx
@@ -1,8 +1,8 @@
import * as React from 'react';
-import { FontWeightProperty, FontStyleProperty, FontSizeProperty, ColorProperty } from 'csstype';
+import { FontStyleProperty, ColorProperty } from 'csstype';
import { observer } from 'mobx-react';
import { observable, action, runInAction } from 'mobx';
-import { FormattedTextBox, FormattedTextBoxProps } from '../../nodes/FormattedTextBox';
+import { FormattedTextBox } from '../../nodes/FormattedTextBox';
import { FieldViewProps } from '../../nodes/FieldView';
interface DetailedCaptionDataProps {
@@ -33,7 +33,7 @@ export default class DetailedCaptionToggle extends React.Component<DetailedCapti
}
render() {
- let size = this.props.toggleSize || 20;
+ const size = this.props.toggleSize || 20;
return (
<div style={{
transition: "0.5s opacity ease",
diff --git a/src/client/views/globalCssVariables.scss b/src/client/views/globalCssVariables.scss
index 6dffee586..019f931f9 100644
--- a/src/client/views/globalCssVariables.scss
+++ b/src/client/views/globalCssVariables.scss
@@ -25,6 +25,8 @@ $search-thumnail-size: 175;
// dragged items
$contextMenu-zindex: 100000; // context menu shows up over everything
+$radialMenu-zindex: 100000; // context menu shows up over everything
+
$mainTextInput-zindex: 999; // then text input overlay so that it's context menu will appear over decorations, etc
$docDecorations-zindex: 998; // then doc decorations appear over everything else
$remoteCursors-zindex: 997; // ... not sure what level the remote cursors should go -- is this right?
diff --git a/src/client/views/linking/LinkEditor.tsx b/src/client/views/linking/LinkEditor.tsx
index ecb3e9db4..e3bf6b5f8 100644
--- a/src/client/views/linking/LinkEditor.tsx
+++ b/src/client/views/linking/LinkEditor.tsx
@@ -43,12 +43,12 @@ class GroupTypesDropdown extends React.Component<GroupTypesDropdownProps> {
@action
onKeyDown = (e: React.KeyboardEvent): void => {
if (e.key === "Enter") {
- let allGroupTypes = Array.from(LinkManager.Instance.getAllGroupTypes());
- let groupOptions = allGroupTypes.filter(groupType => groupType.toUpperCase().indexOf(this._searchTerm.toUpperCase()) > -1);
- let exactFound = groupOptions.findIndex(groupType => groupType.toUpperCase() === this._searchTerm.toUpperCase());
+ const allGroupTypes = Array.from(LinkManager.Instance.getAllGroupTypes());
+ const groupOptions = allGroupTypes.filter(groupType => groupType.toUpperCase().indexOf(this._searchTerm.toUpperCase()) > -1);
+ const exactFound = groupOptions.findIndex(groupType => groupType.toUpperCase() === this._searchTerm.toUpperCase());
if (exactFound > -1) {
- let groupType = groupOptions[exactFound];
+ const groupType = groupOptions[exactFound];
this.props.setGroupType(groupType);
this._groupType = groupType;
} else {
@@ -84,19 +84,19 @@ class GroupTypesDropdown extends React.Component<GroupTypesDropdownProps> {
renderOptions = (): JSX.Element[] | JSX.Element => {
if (this._searchTerm === "") return <></>;
- let allGroupTypes = Array.from(LinkManager.Instance.getAllGroupTypes());
- let groupOptions = allGroupTypes.filter(groupType => groupType.toUpperCase().indexOf(this._searchTerm.toUpperCase()) > -1);
- let exactFound = groupOptions.findIndex(groupType => groupType.toUpperCase() === this._searchTerm.toUpperCase()) > -1;
+ const allGroupTypes = Array.from(LinkManager.Instance.getAllGroupTypes());
+ const groupOptions = allGroupTypes.filter(groupType => groupType.toUpperCase().indexOf(this._searchTerm.toUpperCase()) > -1);
+ const exactFound = groupOptions.findIndex(groupType => groupType.toUpperCase() === this._searchTerm.toUpperCase()) > -1;
- let options = groupOptions.map(groupType => {
- let ref = React.createRef<HTMLDivElement>();
+ const options = groupOptions.map(groupType => {
+ const ref = React.createRef<HTMLDivElement>();
return <div key={groupType} ref={ref} className="linkEditor-option"
onClick={() => this.onOptionClick(groupType, false)}>{groupType}</div>;
});
// if search term does not already exist as a group type, give option to create new group type
if (!exactFound && this._searchTerm !== "") {
- let ref = React.createRef<HTMLDivElement>();
+ const ref = React.createRef<HTMLDivElement>();
options.push(<div key={""} ref={ref} className="linkEditor-option"
onClick={() => this.onOptionClick(this._searchTerm, true)}>Define new "{this._searchTerm}" relationship</div>);
}
@@ -138,10 +138,10 @@ class LinkMetadataEditor extends React.Component<LinkMetadataEditorProps> {
@action
setMetadataKey = (value: string): void => {
- let groupMdKeys = LinkManager.Instance.getMetadataKeysInGroup(this.props.groupType);
+ const groupMdKeys = LinkManager.Instance.getMetadataKeysInGroup(this.props.groupType);
// don't allow user to create existing key
- let newIndex = groupMdKeys.findIndex(key => key.toUpperCase() === value.toUpperCase());
+ const newIndex = groupMdKeys.findIndex(key => key.toUpperCase() === value.toUpperCase());
if (newIndex > -1) {
this._keyError = true;
this._key = value;
@@ -151,7 +151,7 @@ class LinkMetadataEditor extends React.Component<LinkMetadataEditorProps> {
}
// set new value for key
- let currIndex = groupMdKeys.findIndex(key => {
+ const currIndex = groupMdKeys.findIndex(key => {
return StrCast(key).toUpperCase() === this._key.toUpperCase();
});
if (currIndex === -1) console.error("LinkMetadataEditor: key was not found");
@@ -172,9 +172,9 @@ class LinkMetadataEditor extends React.Component<LinkMetadataEditorProps> {
@action
removeMetadata = (): void => {
- let groupMdKeys = LinkManager.Instance.getMetadataKeysInGroup(this.props.groupType);
+ const groupMdKeys = LinkManager.Instance.getMetadataKeysInGroup(this.props.groupType);
- let index = groupMdKeys.findIndex(key => key.toUpperCase() === this._key.toUpperCase());
+ const index = groupMdKeys.findIndex(key => key.toUpperCase() === this._key.toUpperCase());
if (index === -1) console.error("LinkMetadataEditor: key was not found");
groupMdKeys.splice(index, 1);
@@ -206,7 +206,7 @@ export class LinkGroupEditor extends React.Component<LinkGroupEditorProps> {
constructor(props: LinkGroupEditorProps) {
super(props);
- let groupMdKeys = LinkManager.Instance.getMetadataKeysInGroup(StrCast(props.groupDoc.type));
+ const groupMdKeys = LinkManager.Instance.getMetadataKeysInGroup(StrCast(props.groupDoc.type));
groupMdKeys.forEach(key => {
this._metadataIds.set(key, Utils.GenerateGuid());
});
@@ -226,25 +226,25 @@ export class LinkGroupEditor extends React.Component<LinkGroupEditorProps> {
}
copyGroup = async (groupType: string): Promise<void> => {
- let sourceGroupDoc = this.props.groupDoc;
+ const sourceGroupDoc = this.props.groupDoc;
const sourceMdDoc = await Cast(sourceGroupDoc.metadata, Doc);
if (!sourceMdDoc) return;
- let destDoc = LinkManager.Instance.getOppositeAnchor(this.props.linkDoc, this.props.sourceDoc);
+ const destDoc = LinkManager.Instance.getOppositeAnchor(this.props.linkDoc, this.props.sourceDoc);
// let destGroupList = LinkManager.Instance.getAnchorGroups(this.props.linkDoc, destDoc);
- let keys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
+ const keys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
// create new metadata doc with copied kvp
- let destMdDoc = new Doc();
+ const destMdDoc = new Doc();
destMdDoc.anchor1 = StrCast(sourceMdDoc.anchor2);
destMdDoc.anchor2 = StrCast(sourceMdDoc.anchor1);
keys.forEach(key => {
- let val = sourceMdDoc[key] === undefined ? "" : StrCast(sourceMdDoc[key]);
+ const val = sourceMdDoc[key] === undefined ? "" : StrCast(sourceMdDoc[key]);
destMdDoc[key] = val;
});
// create new group doc with new metadata doc
- let destGroupDoc = new Doc();
+ const destGroupDoc = new Doc();
destGroupDoc.type = groupType;
destGroupDoc.metadata = destMdDoc;
@@ -256,7 +256,7 @@ export class LinkGroupEditor extends React.Component<LinkGroupEditorProps> {
@action
addMetadata = (groupType: string): void => {
this._metadataIds.set("new key", Utils.GenerateGuid());
- let mdKeys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
+ const mdKeys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
// only add "new key" if there is no other key with value "new key"; prevents spamming
if (mdKeys.indexOf("new key") === -1) mdKeys.push("new key");
LinkManager.Instance.setMetadataKeysForGroup(groupType, mdKeys);
@@ -268,17 +268,17 @@ export class LinkGroupEditor extends React.Component<LinkGroupEditorProps> {
}
renderMetadata = (): JSX.Element[] => {
- let metadata: Array<JSX.Element> = [];
- let groupDoc = this.props.groupDoc;
+ const metadata: Array<JSX.Element> = [];
+ const groupDoc = this.props.groupDoc;
const mdDoc = FieldValue(Cast(groupDoc.metadata, Doc));
if (!mdDoc) {
return [];
}
- let groupType = StrCast(groupDoc.type);
- let groupMdKeys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
+ const groupType = StrCast(groupDoc.type);
+ const groupMdKeys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
groupMdKeys.forEach((key) => {
- let val = StrCast(mdDoc[key]);
+ const val = StrCast(mdDoc[key]);
metadata.push(
<LinkMetadataEditor key={"mded-" + this._metadataIds.get(key)} id={this._metadataIds.get(key)!} groupType={groupType} mdDoc={mdDoc} mdKey={key} mdValue={val} changeMdIdKey={this.changeMdIdKey} />
);
@@ -287,18 +287,18 @@ export class LinkGroupEditor extends React.Component<LinkGroupEditorProps> {
}
viewGroupAsTable = (groupType: string): JSX.Element => {
- let keys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
- let index = keys.indexOf("");
+ const keys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
+ const index = keys.indexOf("");
if (index > -1) keys.splice(index, 1);
- let cols = ["anchor1", "anchor2", ...[...keys]].map(c => new SchemaHeaderField(c, "#f1efeb"));
- let docs: Doc[] = LinkManager.Instance.getAllMetadataDocsInGroup(groupType);
- let createTable = action(() => Docs.Create.SchemaDocument(cols, docs, { width: 500, height: 300, title: groupType + " table" }));
- let ref = React.createRef<HTMLDivElement>();
+ const cols = ["anchor1", "anchor2", ...[...keys]].map(c => new SchemaHeaderField(c, "#f1efeb"));
+ const docs: Doc[] = LinkManager.Instance.getAllMetadataDocsInGroup(groupType);
+ const createTable = action(() => Docs.Create.SchemaDocument(cols, docs, { _width: 500, _height: 300, title: groupType + " table" }));
+ const ref = React.createRef<HTMLDivElement>();
return <div ref={ref}><button className="linkEditor-button" onPointerDown={SetupDrag(ref, createTable)} title="Drag to view relationship table"><FontAwesomeIcon icon="table" size="sm" /></button></div>;
}
render() {
- let groupType = StrCast(this.props.groupDoc.type);
+ const groupType = StrCast(this.props.groupDoc.type);
// if ((groupType && LinkManager.Instance.getMetadataKeysInGroup(groupType).length > 0) || groupType === "") {
let buttons;
if (groupType === "") {
@@ -356,15 +356,15 @@ export class LinkEditor extends React.Component<LinkEditorProps> {
@action
addGroup = (): void => {
// create new metadata document for group
- let mdDoc = new Doc();
+ const mdDoc = new Doc();
mdDoc.anchor1 = this.props.sourceDoc.title;
- let opp = LinkManager.Instance.getOppositeAnchor(this.props.linkDoc, this.props.sourceDoc);
+ const opp = LinkManager.Instance.getOppositeAnchor(this.props.linkDoc, this.props.sourceDoc);
if (opp) {
mdDoc.anchor2 = opp.title;
}
// create new group document
- let groupDoc = new Doc();
+ const groupDoc = new Doc();
groupDoc.type = "";
groupDoc.metadata = mdDoc;
@@ -372,10 +372,10 @@ export class LinkEditor extends React.Component<LinkEditorProps> {
}
render() {
- let destination = LinkManager.Instance.getOppositeAnchor(this.props.linkDoc, this.props.sourceDoc);
+ const destination = LinkManager.Instance.getOppositeAnchor(this.props.linkDoc, this.props.sourceDoc);
- let groupList = LinkManager.Instance.getAnchorGroups(this.props.linkDoc, this.props.sourceDoc);
- let groups = groupList.map(groupDoc => {
+ const groupList = LinkManager.Instance.getAnchorGroups(this.props.linkDoc, this.props.sourceDoc);
+ const groups = groupList.map(groupDoc => {
return <LinkGroupEditor key={"gred-" + StrCast(groupDoc.type)} linkDoc={this.props.linkDoc} sourceDoc={this.props.sourceDoc} groupDoc={groupDoc} />;
});
diff --git a/src/client/views/linking/LinkFollowBox.tsx b/src/client/views/linking/LinkFollowBox.tsx
index efe2c7f2a..325c92413 100644
--- a/src/client/views/linking/LinkFollowBox.tsx
+++ b/src/client/views/linking/LinkFollowBox.tsx
@@ -68,14 +68,14 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
this._contextDisposer = reaction(
() => this.selectedContextString,
async () => {
- let ref = await DocServer.GetRefField(this.selectedContextString);
+ const ref = await DocServer.GetRefField(this.selectedContextString);
runInAction(() => {
if (ref instanceof Doc) {
this.selectedContext = ref;
}
});
if (this.selectedContext instanceof Doc) {
- let aliases = await SearchUtil.GetViewsOfDocument(this.selectedContext);
+ const aliases = await SearchUtil.GetViewsOfDocument(this.selectedContext);
runInAction(() => { this.selectedContextAliases = aliases; });
}
}
@@ -89,9 +89,9 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
async resetPan() {
if (LinkFollowBox.destinationDoc && this.sourceView && this.sourceView.props.ContainingCollectionDoc) {
runInAction(() => this.canPan = false);
- if (this.sourceView.props.ContainingCollectionDoc.viewType === CollectionViewType.Freeform) {
- let docs = Cast(this.sourceView.props.ContainingCollectionDoc.data, listSpec(Doc), []);
- let aliases = await SearchUtil.GetViewsOfDocument(Doc.GetProto(LinkFollowBox.destinationDoc));
+ if (this.sourceView.props.ContainingCollectionDoc._viewType === CollectionViewType.Freeform) {
+ const docs = Cast(this.sourceView.props.ContainingCollectionDoc.data, listSpec(Doc), []);
+ const aliases = await SearchUtil.GetViewsOfDocument(Doc.GetProto(LinkFollowBox.destinationDoc));
aliases.forEach(alias => {
if (docs.filter(doc => doc === alias).length > 0) {
@@ -118,8 +118,8 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
async fetchDocuments() {
if (LinkFollowBox.destinationDoc) {
- let dest: Doc = LinkFollowBox.destinationDoc;
- let aliases = await SearchUtil.GetViewsOfDocument(Doc.GetProto(dest));
+ const dest: Doc = LinkFollowBox.destinationDoc;
+ const aliases = await SearchUtil.GetViewsOfDocument(Doc.GetProto(dest));
const { docs } = await SearchUtil.Search("", true, { fq: `data_l:"${dest[Id]}"` });
const map: Map<Doc, Doc> = new Map;
const allDocs = await Promise.all(aliases.map(doc => SearchUtil.Search("", true, { fq: `data_l:"${doc[Id]}"` }).then(result => result.docs)));
@@ -128,7 +128,7 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
runInAction(async () => {
this._docs = docs.filter(doc => !Doc.AreProtosEqual(doc, CollectionDockingView.Instance.props.Document)).map(doc => ({ col: doc, target: dest }));
this._otherDocs = Array.from(map.entries()).filter(entry => !Doc.AreProtosEqual(entry[0], CollectionDockingView.Instance.props.Document)).map(([col, target]) => ({ col, target }));
- let tcontext = LinkFollowBox.linkDoc && (await Cast(LinkFollowBox.linkDoc.anchor2Context, Doc)) as Doc;
+ const tcontext = LinkFollowBox.linkDoc && (await Cast(LinkFollowBox.linkDoc.anchor2Context, Doc)) as Doc;
runInAction(() => tcontext && this._docs.splice(0, 0, { col: tcontext, target: dest }));
});
}
@@ -157,7 +157,7 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
@undoBatch
openFullScreen = () => {
if (LinkFollowBox.destinationDoc) {
- let view = DocumentManager.Instance.getDocumentView(LinkFollowBox.destinationDoc);
+ const view = DocumentManager.Instance.getDocumentView(LinkFollowBox.destinationDoc);
view && CollectionDockingView.Instance && CollectionDockingView.Instance.OpenFullScreen(view);
}
}
@@ -165,13 +165,13 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
@undoBatch
openColFullScreen = (options: { context: Doc }) => {
if (LinkFollowBox.destinationDoc) {
- if (NumCast(options.context.viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
- const newPanX = NumCast(LinkFollowBox.destinationDoc.x) + NumCast(LinkFollowBox.destinationDoc.width) / 2;
- const newPanY = NumCast(LinkFollowBox.destinationDoc.y) + NumCast(LinkFollowBox.destinationDoc.height) / 2;
- options.context.panX = newPanX;
- options.context.panY = newPanY;
+ if (NumCast(options.context._viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
+ const newPanX = NumCast(LinkFollowBox.destinationDoc.x) + NumCast(LinkFollowBox.destinationDoc._width) / 2;
+ const newPanY = NumCast(LinkFollowBox.destinationDoc.y) + NumCast(LinkFollowBox.destinationDoc._height) / 2;
+ options.context._panX = newPanX;
+ options.context._panY = newPanY;
}
- let view = DocumentManager.Instance.getDocumentView(options.context);
+ const view = DocumentManager.Instance.getDocumentView(options.context);
view && CollectionDockingView.Instance && CollectionDockingView.Instance.OpenFullScreen(view);
this.highlightDoc();
}
@@ -193,11 +193,11 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
openLinkColRight = (options: { context: Doc, shouldZoom: boolean }) => {
if (LinkFollowBox.destinationDoc) {
options.context = Doc.IsPrototype(options.context) ? Doc.MakeDelegate(options.context) : options.context;
- if (NumCast(options.context.viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
- const newPanX = NumCast(LinkFollowBox.destinationDoc.x) + NumCast(LinkFollowBox.destinationDoc.width) / 2;
- const newPanY = NumCast(LinkFollowBox.destinationDoc.y) + NumCast(LinkFollowBox.destinationDoc.height) / 2;
- options.context.panX = newPanX;
- options.context.panY = newPanY;
+ if (NumCast(options.context._viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
+ const newPanX = NumCast(LinkFollowBox.destinationDoc.x) + NumCast(LinkFollowBox.destinationDoc._width) / 2;
+ const newPanY = NumCast(LinkFollowBox.destinationDoc.y) + NumCast(LinkFollowBox.destinationDoc._height) / 2;
+ options.context._panX = newPanX;
+ options.context._panY = newPanY;
}
(LinkFollowBox._addDocTab || this.props.addDocTab)(options.context, undefined, "onRight");
@@ -211,7 +211,7 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
@undoBatch
openLinkRight = () => {
if (LinkFollowBox.destinationDoc) {
- let alias = Doc.MakeAlias(LinkFollowBox.destinationDoc);
+ const alias = Doc.MakeAlias(LinkFollowBox.destinationDoc);
(LinkFollowBox._addDocTab || this.props.addDocTab)(alias, undefined, "onRight");
this.highlightDoc();
SelectionManager.DeselectAll();
@@ -222,7 +222,7 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
@undoBatch
jumpToLink = async (options: { shouldZoom: boolean }) => {
if (LinkFollowBox.sourceDoc && LinkFollowBox.linkDoc) {
- let focus = (document: Doc) => { (LinkFollowBox._addDocTab || this.props.addDocTab)(document, undefined, "inTab"); SelectionManager.DeselectAll(); };
+ const focus = (document: Doc) => { (LinkFollowBox._addDocTab || this.props.addDocTab)(document, undefined, "inTab"); SelectionManager.DeselectAll(); };
//let focus = (doc: Doc, maxLocation: string) => this.props.focus(docthis.props.focus(LinkFollowBox.destinationDoc, true, 1, () => this.props.addDocTab(doc, undefined, maxLocation));
DocumentManager.Instance.FollowLink(LinkFollowBox.linkDoc, LinkFollowBox.sourceDoc, focus, options && options.shouldZoom, false, undefined);
@@ -232,7 +232,7 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
@undoBatch
openLinkTab = () => {
if (LinkFollowBox.destinationDoc) {
- let fullScreenAlias = Doc.MakeAlias(LinkFollowBox.destinationDoc);
+ const fullScreenAlias = Doc.MakeAlias(LinkFollowBox.destinationDoc);
// this.prosp.addDocTab is empty -- use the link source's addDocTab
(LinkFollowBox._addDocTab || this.props.addDocTab)(fullScreenAlias, undefined, "inTab");
@@ -245,11 +245,11 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
openLinkColTab = (options: { context: Doc, shouldZoom: boolean }) => {
if (LinkFollowBox.destinationDoc) {
options.context = Doc.IsPrototype(options.context) ? Doc.MakeDelegate(options.context) : options.context;
- if (NumCast(options.context.viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
- const newPanX = NumCast(LinkFollowBox.destinationDoc.x) + NumCast(LinkFollowBox.destinationDoc.width) / 2;
- const newPanY = NumCast(LinkFollowBox.destinationDoc.y) + NumCast(LinkFollowBox.destinationDoc.height) / 2;
- options.context.panX = newPanX;
- options.context.panY = newPanY;
+ if (NumCast(options.context._viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
+ const newPanX = NumCast(LinkFollowBox.destinationDoc.x) + NumCast(LinkFollowBox.destinationDoc._width) / 2;
+ const newPanY = NumCast(LinkFollowBox.destinationDoc.y) + NumCast(LinkFollowBox.destinationDoc._height) / 2;
+ options.context._panX = newPanX;
+ options.context._panY = newPanY;
}
(LinkFollowBox._addDocTab || this.props.addDocTab)(options.context, undefined, "inTab");
if (options.shouldZoom) this.jumpToLink({ shouldZoom: options.shouldZoom });
@@ -264,19 +264,19 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
if (LinkFollowBox.destinationDoc && LinkFollowBox.sourceDoc) {
if (this.sourceView && this.sourceView.props.addDocument) {
- let destViews = DocumentManager.Instance.getDocumentViews(LinkFollowBox.destinationDoc);
+ const destViews = DocumentManager.Instance.getDocumentViews(LinkFollowBox.destinationDoc);
if (!destViews.find(dv => dv.props.ContainingCollectionView === this.sourceView!.props.ContainingCollectionView)) {
- let alias = Doc.MakeAlias(LinkFollowBox.destinationDoc);
- let y = NumCast(LinkFollowBox.sourceDoc.y);
- let x = NumCast(LinkFollowBox.sourceDoc.x);
+ const alias = Doc.MakeAlias(LinkFollowBox.destinationDoc);
+ const y = NumCast(LinkFollowBox.sourceDoc.y);
+ const x = NumCast(LinkFollowBox.sourceDoc.x);
- let width = NumCast(LinkFollowBox.sourceDoc.width);
- let height = NumCast(LinkFollowBox.sourceDoc.height);
+ const width = NumCast(LinkFollowBox.sourceDoc._width);
+ const height = NumCast(LinkFollowBox.sourceDoc._height);
alias.x = x + width + 30;
alias.y = y;
- alias.width = width;
- alias.height = height;
+ alias._width = width;
+ alias._height = height;
this.sourceView.props.addDocument(alias);
}
@@ -301,8 +301,8 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
this.selectedContext = LinkFollowBox.destinationDoc;
}
if (this.selectedOption === "") this.selectedOption = FollowOptions.NOZOOM;
- let shouldZoom: boolean = this.selectedOption === FollowOptions.NOZOOM ? false : true;
- let notOpenInContext: boolean = this.selectedContextString === "self" || this.selectedContextString === LinkFollowBox.destinationDoc[Id];
+ const shouldZoom: boolean = this.selectedOption === FollowOptions.NOZOOM ? false : true;
+ const notOpenInContext: boolean = this.selectedContextString === "self" || this.selectedContextString === LinkFollowBox.destinationDoc[Id];
if (this.selectedMode === FollowModes.INPLACE) {
if (shouldZoom !== undefined) this.openLinkInPlace({ shouldZoom: shouldZoom });
@@ -328,7 +328,7 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
@action
handleModeChange = (e: React.ChangeEvent) => {
- let target = e.target as HTMLInputElement;
+ const target = e.target as HTMLInputElement;
this.selectedMode = target.value;
this.selectedContext = undefined;
this.selectedContextString = "";
@@ -345,13 +345,13 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
@action
handleOptionChange = (e: React.ChangeEvent) => {
- let target = e.target as HTMLInputElement;
+ const target = e.target as HTMLInputElement;
this.selectedOption = target.value;
}
@action
handleContextChange = (e: React.ChangeEvent) => {
- let target = e.target as HTMLInputElement;
+ const target = e.target as HTMLInputElement;
this.selectedContextString = target.value;
// selectedContext is updated in reaction
this.selectedOption = "";
@@ -360,8 +360,8 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
@computed
get canOpenInPlace() {
if (this.sourceView && this.sourceView.props.ContainingCollectionDoc) {
- let colDoc = this.sourceView.props.ContainingCollectionDoc;
- if (colDoc.viewType && colDoc.viewType === CollectionViewType.Freeform) return true;
+ const colDoc = this.sourceView.props.ContainingCollectionDoc;
+ if (colDoc._viewType === CollectionViewType.Freeform) return true;
}
return false;
}
@@ -481,7 +481,7 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
let contextMatch: boolean = false;
if (this.selectedContextAliases) {
this.selectedContextAliases.forEach(alias => {
- if (alias.viewType === CollectionViewType.Freeform) contextMatch = true;
+ if (alias._viewType === CollectionViewType.Freeform) contextMatch = true;
});
}
if (contextMatch) return true;
@@ -523,7 +523,7 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
render() {
return (
- <div className="linkFollowBox-main" style={{ height: NumCast(this.props.Document.height), width: NumCast(this.props.Document.width) }}>
+ <div className="linkFollowBox-main" style={{ height: NumCast(this.props.Document._height), width: NumCast(this.props.Document._width) }}>
<div className="linkFollowBox-header">
<div className="topHeader">
{LinkFollowBox.linkDoc ? "Link Title: " + StrCast(LinkFollowBox.linkDoc.title) : "No Link Selected"}
@@ -533,7 +533,7 @@ export class LinkFollowBox extends React.Component<FieldViewProps> {
LinkFollowBox.sourceDoc && LinkFollowBox.destinationDoc ? "Source: " + StrCast(LinkFollowBox.sourceDoc.title) + ", Destination: " + StrCast(LinkFollowBox.destinationDoc.title)
: "" : ""}</div>
</div>
- <div className="linkFollowBox-content" style={{ height: NumCast(this.props.Document.height) - 110 }}>
+ <div className="linkFollowBox-content" style={{ height: NumCast(this.props.Document._height) - 110 }}>
<div className="linkFollowBox-item">
<div className="linkFollowBox-item title">Mode</div>
<div className="linkFollowBox-itemContent">
diff --git a/src/client/views/linking/LinkMenu.scss b/src/client/views/linking/LinkMenu.scss
index a4018bd2d..7dee22f66 100644
--- a/src/client/views/linking/LinkMenu.scss
+++ b/src/client/views/linking/LinkMenu.scss
@@ -48,90 +48,5 @@
}
}
-.linkMenu-item {
- // border-top: 0.5px solid $main-accent;
- position: relative;
- display: flex;
- font-size: 12px;
-
-
- .link-name {
- position: relative;
-
- p {
- padding: 4px 6px;
- line-height: 12px;
- border-radius: 5px;
- overflow-wrap: break-word;
- }
- }
-
- .linkMenu-item-content {
- width: 100%;
- }
-
- .link-metadata {
- padding: 0 10px 0 16px;
- margin-bottom: 4px;
- color: $main-accent;
- font-style: italic;
- font-size: 10.5px;
- }
-
- &:hover {
- .linkMenu-item-buttons {
- display: flex;
- }
- .linkMenu-item-content {
- &.expand-two p {
- width: calc(100% - 52px);
- background-color: lightgray;
- }
- &.expand-three p {
- width: calc(100% - 84px);
- background-color: lightgray;
- }
- }
- }
-}
-
-.linkMenu-item-buttons {
- display: none;
- position: absolute;
- top: 50%;
- right: 0;
- transform: translateY(-50%);
-
- .button {
- width: 20px;
- height: 20px;
- margin: 0;
- margin-right: 6px;
- border-radius: 50%;
- cursor: pointer;
- pointer-events: auto;
- background-color: $dark-color;
- color: $light-color;
- font-size: 65%;
- transition: transform 0.2s;
- text-align: center;
- position: relative;
-
- .fa-icon {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- }
-
- &:last-child {
- margin-right: 0;
- }
- &:hover {
- background: $main-accent;
- }
- }
-}
-
diff --git a/src/client/views/linking/LinkMenu.tsx b/src/client/views/linking/LinkMenu.tsx
index 27af873b5..1a40f0c55 100644
--- a/src/client/views/linking/LinkMenu.tsx
+++ b/src/client/views/linking/LinkMenu.tsx
@@ -25,7 +25,7 @@ export class LinkMenu extends React.Component<Props> {
@observable private _editingLink?: Doc;
@action
- componentWillReceiveProps() {
+ componentDidMount() {
this._editingLink = undefined;
}
@@ -34,7 +34,7 @@ export class LinkMenu extends React.Component<Props> {
}
renderAllGroups = (groups: Map<string, Array<Doc>>): Array<JSX.Element> => {
- let linkItems: Array<JSX.Element> = [];
+ const linkItems: Array<JSX.Element> = [];
groups.forEach((group, groupType) => {
linkItems.push(
<LinkMenuGroup
@@ -55,8 +55,8 @@ export class LinkMenu extends React.Component<Props> {
}
render() {
- let sourceDoc = this.props.docView.props.Document;
- let groups: Map<string, Doc[]> = LinkManager.Instance.getRelatedGroupedLinks(sourceDoc);
+ const sourceDoc = this.props.docView.props.Document;
+ const groups: Map<string, Doc[]> = LinkManager.Instance.getRelatedGroupedLinks(sourceDoc);
if (this._editingLink === undefined) {
return (
<div className="linkMenu">
diff --git a/src/client/views/linking/LinkMenuGroup.tsx b/src/client/views/linking/LinkMenuGroup.tsx
index 1891919ce..0c38ff45c 100644
--- a/src/client/views/linking/LinkMenuGroup.tsx
+++ b/src/client/views/linking/LinkMenuGroup.tsx
@@ -4,11 +4,9 @@ import { observer } from "mobx-react";
import { Doc } from "../../../new_fields/Doc";
import { Id } from "../../../new_fields/FieldSymbols";
import { SchemaHeaderField } from "../../../new_fields/SchemaHeaderField";
-import { emptyFunction } from "../../../Utils";
import { Docs } from "../../documents/Documents";
import { DragManager, SetupDrag } from "../../util/DragManager";
import { LinkManager } from "../../util/LinkManager";
-import { UndoManager } from "../../util/UndoManager";
import { DocumentView } from "../nodes/DocumentView";
import './LinkMenu.scss';
import { LinkMenuItem } from "./LinkMenuItem";
@@ -21,7 +19,6 @@ interface LinkMenuGroupProps {
showEditor: (linkDoc: Doc) => void;
addDocTab: (document: Doc, dataDoc: Doc | undefined, where: string) => boolean;
docView: DocumentView;
-
}
@observer
@@ -44,44 +41,31 @@ export class LinkMenuGroup extends React.Component<LinkMenuGroupProps> {
e.stopPropagation();
}
-
onLinkButtonMoved = async (e: PointerEvent) => {
- UndoManager.RunInBatch(() => {
- if (this._drag.current !== null && (e.movementX > 1 || e.movementY > 1)) {
- document.removeEventListener("pointermove", this.onLinkButtonMoved);
- document.removeEventListener("pointerup", this.onLinkButtonUp);
+ if (this._drag.current && (e.movementX > 1 || e.movementY > 1)) {
+ document.removeEventListener("pointermove", this.onLinkButtonMoved);
+ document.removeEventListener("pointerup", this.onLinkButtonUp);
- let draggedDocs = this.props.group.map(linkDoc => {
- let opp = LinkManager.Instance.getOppositeAnchor(linkDoc, this.props.sourceDoc);
- if (opp) return opp;
- }) as Doc[];
- let dragData = new DragManager.DocumentDragData(draggedDocs);
-
- DragManager.StartLinkedDocumentDrag([this._drag.current], dragData, e.x, e.y, {
- handlers: {
- dragComplete: action(emptyFunction),
- },
- hideSource: false
- });
- }
- }, "drag links");
+ const targets = this.props.group.map(l => LinkManager.Instance.getOppositeAnchor(l, this.props.sourceDoc)).filter(d => d) as Doc[];
+ DragManager.StartLinkTargetsDrag(this._drag.current, e.x, e.y, this.props.sourceDoc, targets);
+ }
e.stopPropagation();
}
viewGroupAsTable = (groupType: string): JSX.Element => {
- let keys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
- let index = keys.indexOf("");
+ const keys = LinkManager.Instance.getMetadataKeysInGroup(groupType);
+ const index = keys.indexOf("");
if (index > -1) keys.splice(index, 1);
- let cols = ["anchor1", "anchor2", ...[...keys]].map(c => new SchemaHeaderField(c, "#f1efeb"));
- let docs: Doc[] = LinkManager.Instance.getAllMetadataDocsInGroup(groupType);
- let createTable = action(() => Docs.Create.SchemaDocument(cols, docs, { width: 500, height: 300, title: groupType + " table" }));
- let ref = React.createRef<HTMLDivElement>();
+ const cols = ["anchor1", "anchor2", ...[...keys]].map(c => new SchemaHeaderField(c, "#f1efeb"));
+ const docs: Doc[] = LinkManager.Instance.getAllMetadataDocsInGroup(groupType);
+ const createTable = action(() => Docs.Create.SchemaDocument(cols, docs, { _width: 500, _height: 300, title: groupType + " table" }));
+ const ref = React.createRef<HTMLDivElement>();
return <div ref={ref}><button className="linkEditor-button linkEditor-tableButton" onPointerDown={SetupDrag(ref, createTable)} title="Drag to view relationship table"><FontAwesomeIcon icon="table" size="sm" /></button></div>;
}
render() {
- let groupItems = this.props.group.map(linkDoc => {
- let destination = LinkManager.Instance.getOppositeAnchor(linkDoc, this.props.sourceDoc);
+ const groupItems = this.props.group.map(linkDoc => {
+ const destination = LinkManager.Instance.getOppositeAnchor(linkDoc, this.props.sourceDoc);
if (destination && this.props.sourceDoc) {
return <LinkMenuItem key={destination[Id] + this.props.sourceDoc[Id]}
groupType={this.props.groupType}
diff --git a/src/client/views/linking/LinkMenuItem.scss b/src/client/views/linking/LinkMenuItem.scss
new file mode 100644
index 000000000..fd0954f65
--- /dev/null
+++ b/src/client/views/linking/LinkMenuItem.scss
@@ -0,0 +1,87 @@
+@import "../globalCssVariables";
+
+.linkMenu-item {
+ // border-top: 0.5px solid $main-accent;
+ position: relative;
+ display: flex;
+ font-size: 12px;
+
+
+ .linkMenu-name {
+ position: relative;
+
+ p {
+ padding: 4px 6px;
+ line-height: 12px;
+ border-radius: 5px;
+ overflow-wrap: break-word;
+ user-select: none;
+ }
+ }
+
+ .linkMenu-item-content {
+ width: 100%;
+ }
+
+ .link-metadata {
+ padding: 0 10px 0 16px;
+ margin-bottom: 4px;
+ color: $main-accent;
+ font-style: italic;
+ font-size: 10.5px;
+ }
+
+ &:hover {
+ .linkMenu-item-buttons {
+ display: flex;
+ }
+ .linkMenu-item-content {
+ &.expand-two p {
+ width: calc(100% - 52px);
+ background-color: lightgray;
+ }
+ &.expand-three p {
+ width: calc(100% - 84px);
+ background-color: lightgray;
+ }
+ }
+ }
+}
+
+.linkMenu-item-buttons {
+ display: none;
+ position: absolute;
+ top: 50%;
+ right: 0;
+ transform: translateY(-50%);
+
+ .button {
+ width: 20px;
+ height: 20px;
+ margin: 0;
+ margin-right: 6px;
+ border-radius: 50%;
+ cursor: pointer;
+ pointer-events: auto;
+ background-color: $dark-color;
+ color: $light-color;
+ font-size: 65%;
+ transition: transform 0.2s;
+ text-align: center;
+ position: relative;
+
+ .fa-icon {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+
+ &:last-child {
+ margin-right: 0;
+ }
+ &:hover {
+ background: $main-accent;
+ }
+ }
+} \ No newline at end of file
diff --git a/src/client/views/linking/LinkMenuItem.tsx b/src/client/views/linking/LinkMenuItem.tsx
index 238660de3..b7d27ee30 100644
--- a/src/client/views/linking/LinkMenuItem.tsx
+++ b/src/client/views/linking/LinkMenuItem.tsx
@@ -5,11 +5,11 @@ import { action, observable } from 'mobx';
import { observer } from "mobx-react";
import { Doc } from '../../../new_fields/Doc';
import { Cast, StrCast } from '../../../new_fields/Types';
-import { DragLinkAsDocument } from '../../util/DragManager';
+import { DragManager } from '../../util/DragManager';
import { LinkManager } from '../../util/LinkManager';
import { ContextMenu } from '../ContextMenu';
import { LinkFollowBox } from './LinkFollowBox';
-import './LinkMenu.scss';
+import './LinkMenuItem.scss';
import React = require("react");
library.add(faEye, faEdit, faTimes, faArrowRight, faChevronDown, faChevronUp);
@@ -26,6 +26,9 @@ interface LinkMenuItemProps {
@observer
export class LinkMenuItem extends React.Component<LinkMenuItemProps> {
private _drag = React.createRef<HTMLDivElement>();
+ private _downX = 0;
+ private _downY = 0;
+ private _eleClone: any;
@observable private _showMore: boolean = false;
@action toggleShowMore() { this._showMore = !this._showMore; }
@@ -36,15 +39,15 @@ export class LinkMenuItem extends React.Component<LinkMenuItemProps> {
}
renderMetadata = (): JSX.Element => {
- let groups = LinkManager.Instance.getAnchorGroups(this.props.linkDoc, this.props.sourceDoc);
- let index = groups.findIndex(groupDoc => StrCast(groupDoc.type).toUpperCase() === this.props.groupType.toUpperCase());
- let groupDoc = index > -1 ? groups[index] : undefined;
+ const groups = LinkManager.Instance.getAnchorGroups(this.props.linkDoc, this.props.sourceDoc);
+ const index = groups.findIndex(groupDoc => StrCast(groupDoc.type).toUpperCase() === this.props.groupType.toUpperCase());
+ const groupDoc = index > -1 ? groups[index] : undefined;
let mdRows: Array<JSX.Element> = [];
if (groupDoc) {
- let mdDoc = Cast(groupDoc.metadata, Doc, null);
+ const mdDoc = Cast(groupDoc.metadata, Doc, null);
if (mdDoc) {
- let keys = LinkManager.Instance.getMetadataKeysInGroup(this.props.groupType);//groupMetadataKeys.get(this.props.groupType);
+ const keys = LinkManager.Instance.getMetadataKeysInGroup(this.props.groupType);//groupMetadataKeys.get(this.props.groupType);
mdRows = keys.map(key => {
return (<div key={key} className="link-metadata-row"><b>{key}</b>: {StrCast(mdDoc[key])}</div>);
});
@@ -55,6 +58,9 @@ export class LinkMenuItem extends React.Component<LinkMenuItemProps> {
}
onLinkButtonDown = (e: React.PointerEvent): void => {
+ this._downX = e.clientX;
+ this._downY = e.clientY;
+ this._eleClone = this._drag.current!.cloneNode(true);
e.stopPropagation();
document.removeEventListener("pointermove", this.onLinkButtonMoved);
document.addEventListener("pointermove", this.onLinkButtonMoved);
@@ -75,11 +81,12 @@ export class LinkMenuItem extends React.Component<LinkMenuItemProps> {
}
onLinkButtonMoved = async (e: PointerEvent) => {
- if (this._drag.current !== null && (e.movementX > 1 || e.movementY > 1)) {
+ if (this._drag.current !== null && Math.abs((e.clientX - this._downX) * (e.clientX - this._downX) + (e.clientY - this._downY) * (e.clientY - this._downY)) > 5) {
document.removeEventListener("pointermove", this.onLinkButtonMoved);
document.removeEventListener("pointerup", this.onLinkButtonUp);
- DragLinkAsDocument(this._drag.current, e.x, e.y, this.props.linkDoc, this.props.sourceDoc);
+ this._eleClone.style.transform = `translate(${e.x}px, ${e.y}px)`;
+ DragManager.StartLinkTargetsDrag(this._eleClone, e.x, e.y, this.props.sourceDoc, [this.props.linkDoc]);
}
e.stopPropagation();
}
@@ -109,20 +116,21 @@ export class LinkMenuItem extends React.Component<LinkMenuItemProps> {
}
render() {
-
- let keys = LinkManager.Instance.getMetadataKeysInGroup(this.props.groupType);//groupMetadataKeys.get(this.props.groupType);
- let canExpand = keys ? keys.length > 0 : false;
+ const keys = LinkManager.Instance.getMetadataKeysInGroup(this.props.groupType);//groupMetadataKeys.get(this.props.groupType);
+ const canExpand = keys ? keys.length > 0 : false;
return (
<div className="linkMenu-item">
<div className={canExpand ? "linkMenu-item-content expand-three" : "linkMenu-item-content expand-two"}>
- <div className="link-name">
- <p ref={this._drag} onPointerDown={this.onLinkButtonDown}>{StrCast(this.props.destinationDoc.title)}</p>
+ <div ref={this._drag} className="linkMenu-name" title="drag to view target. click to customize." onPointerDown={this.onLinkButtonDown}>
+ <p >{StrCast(this.props.destinationDoc.title)}</p>
<div className="linkMenu-item-buttons">
{canExpand ? <div title="Show more" className="button" onPointerDown={() => this.toggleShowMore()}>
<FontAwesomeIcon className="fa-icon" icon={this._showMore ? "chevron-up" : "chevron-down"} size="sm" /></div> : <></>}
<div title="Edit link" className="button" onPointerDown={this.onEdit}><FontAwesomeIcon className="fa-icon" icon="edit" size="sm" /></div>
- <div title="Follow link" className="button" onClick={this.followDefault} onContextMenu={this.onContextMenu}><FontAwesomeIcon className="fa-icon" icon="arrow-right" size="sm" /></div>
+ <div title="Follow link" className="button" onClick={this.followDefault} onContextMenu={this.onContextMenu}>
+ <FontAwesomeIcon className="fa-icon" icon="arrow-right" size="sm" />
+ </div>
</div>
</div>
{this._showMore ? this.renderMetadata() : <></>}
diff --git a/src/client/views/nodes/AudioBox.tsx b/src/client/views/nodes/AudioBox.tsx
index 86bd23b67..62a479b2a 100644
--- a/src/client/views/nodes/AudioBox.tsx
+++ b/src/client/views/nodes/AudioBox.tsx
@@ -8,7 +8,6 @@ import { DocExtendableComponent } from "../DocComponent";
import { makeInterface, createSchema } from "../../../new_fields/Schema";
import { documentSchema } from "../../../new_fields/documentSchemas";
import { Utils, returnTrue, emptyFunction, returnOne, returnTransparent } from "../../../Utils";
-import { RouteStore } from "../../../server/RouteStore";
import { runInAction, observable, reaction, IReactionDisposer, computed, action } from "mobx";
import { DateField } from "../../../new_fields/DateField";
import { SelectionManager } from "../../util/SelectionManager";
@@ -57,19 +56,19 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
this._linkPlayDisposer = reaction(() => this.layoutDoc.scrollToLinkID,
scrollLinkId => {
scrollLinkId && DocListCast(this.dataDoc.links).filter(l => l[Id] === scrollLinkId).map(l => {
- let la1 = l.anchor1 as Doc;
- let linkTime = Doc.AreProtosEqual(la1, this.dataDoc) ? NumCast(l.anchor1Timecode) : NumCast(l.anchor2Timecode);
+ const la1 = l.anchor1 as Doc;
+ const linkTime = Doc.AreProtosEqual(la1, this.dataDoc) ? NumCast(l.anchor1Timecode) : NumCast(l.anchor2Timecode);
setTimeout(() => { this.playFrom(linkTime); Doc.linkFollowHighlight(l); }, 250);
});
scrollLinkId && Doc.SetInPlace(this.layoutDoc, "scrollToLinkID", undefined, false);
}, { fireImmediately: true });
this._reactionDisposer = reaction(() => SelectionManager.SelectedDocuments(),
selected => {
- let sel = selected.length ? selected[0].props.Document : undefined;
+ const sel = selected.length ? selected[0].props.Document : undefined;
this.Document.playOnSelect && sel && !Doc.AreProtosEqual(sel, this.props.Document) && this.playFrom(DateCast(sel.creationTime).date.getTime());
});
this._scrubbingDisposer = reaction(() => AudioBox._scrubTime, timeInMillisecondsFrom1970 => {
- let start = this.extensionDoc && DateCast(this.extensionDoc.recordingStart);
+ const start = DateCast(this.dataDoc[this.props.fieldKey + "-recordingStart"]);
start && this.playFrom((timeInMillisecondsFrom1970 - start.date.getTime()) / 1000);
});
}
@@ -128,19 +127,18 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
recordAudioAnnotation = () => {
let gumStream: any;
- let self = this;
- const extensionDoc = this.extensionDoc;
- extensionDoc && navigator.mediaDevices.getUserMedia({
+ const self = this;
+ navigator.mediaDevices.getUserMedia({
audio: true
}).then(function (stream) {
gumStream = stream;
self._recorder = new MediaRecorder(stream);
- extensionDoc.recordingStart = new DateField(new Date());
+ self.dataDoc[self.props.fieldKey + "-recordingStart"] = new DateField(new Date());
AudioBox.ActiveRecordings.push(self.props.Document);
self._recorder.ondataavailable = async function (e: any) {
const formData = new FormData();
formData.append("file", e.data);
- const res = await fetch(Utils.prepend(RouteStore.upload), {
+ const res = await fetch(Utils.prepend("/uploadFormData"), {
method: 'POST',
body: formData
});
@@ -161,7 +159,7 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
}
specificContextMenu = (e: React.MouseEvent): void => {
- let funcs: ContextMenuProps[] = [];
+ const funcs: ContextMenuProps[] = [];
funcs.push({ description: (this.Document.playOnSelect ? "Don't play" : "Play") + " when document selected", event: () => this.Document.playOnSelect = !this.Document.playOnSelect, icon: "expand-arrows-alt" });
ContextMenu.Instance.addItem({ description: "Audio Funcs...", subitems: funcs, icon: "asterisk" });
@@ -171,7 +169,7 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
this._recorder.stop();
this.dataDoc.duration = (new Date().getTime() - this._recordStart) / 1000;
this._audioState = "recorded";
- let ind = AudioBox.ActiveRecordings.indexOf(this.props.Document);
+ const ind = AudioBox.ActiveRecordings.indexOf(this.props.Document);
ind !== -1 && (AudioBox.ActiveRecordings.splice(ind, 1));
});
@@ -199,13 +197,13 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
}
@computed get path() {
- let field = Cast(this.props.Document[this.props.fieldKey], AudioField);
- let path = (field instanceof AudioField) ? field.url.href : "";
+ const field = Cast(this.props.Document[this.props.fieldKey], AudioField);
+ const path = (field instanceof AudioField) ? field.url.href : "";
return path === nullAudio ? "" : path;
}
@computed get audio() {
- let interactive = this.active() ? "-interactive" : "";
+ const interactive = this.active() ? "-interactive" : "";
return <audio ref={this.setRef} className={`audiobox-control${interactive}`}>
<source src={this.path} type="audio/mpeg" />
Not supported.
@@ -213,56 +211,54 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
}
render() {
- let interactive = this.active() ? "-interactive" : "";
- return (!this.extensionDoc ? (null) :
- <div className={`audiobox-container`} onContextMenu={this.specificContextMenu}
- onClick={!this.path ? this.recordClick : undefined}>
- <div className="audiobox-handle"></div>
- {!this.path ?
- <button className={`audiobox-record${interactive}`} style={{ backgroundColor: this._audioState === "recording" ? "red" : "black" }}>
- {this._audioState === "recording" ? "STOP" : "RECORD"}
- </button> :
- <div className="audiobox-controls">
- <div className="audiobox-player" onClick={this.onPlay}>
- <div className="audiobox-playhead"> <FontAwesomeIcon style={{ width: "100%" }} icon={this._playing ? "pause" : "play"} size={this.props.PanelHeight() < 36 ? "1x" : "2x"} /></div>
- <div className="audiobox-playhead" onClick={this.onStop}><FontAwesomeIcon style={{ width: "100%" }} icon="stop" size={this.props.PanelHeight() < 36 ? "1x" : "2x"} /></div>
- <div className="audiobox-timeline" onClick={e => e.stopPropagation()}
- onPointerDown={e => {
- if (e.button === 0 && !e.ctrlKey) {
- let rect = (e.target as any).getBoundingClientRect();
- this._ele!.currentTime = this.Document.currentTimecode = (e.clientX - rect.x) / rect.width * NumCast(this.dataDoc.duration);
- this.pause();
- e.stopPropagation();
- }
- }} >
- {DocListCast(this.dataDoc.links).map((l, i) => {
- let la1 = l.anchor1 as Doc;
- let la2 = l.anchor2 as Doc;
- let linkTime = NumCast(l.anchor2Timecode);
- if (Doc.AreProtosEqual(la1, this.dataDoc)) {
- la1 = l.anchor2 as Doc;
- la2 = l.anchor1 as Doc;
- linkTime = NumCast(l.anchor1Timecode);
- }
- return !linkTime ? (null) :
- <div className={this.props.PanelHeight() < 32 ? "audiobox-marker-minicontainer" : "audiobox-marker-container"} key={l[Id]} style={{ left: `${linkTime / NumCast(this.dataDoc.duration, 1) * 100}%` }}>
- <div className={this.props.PanelHeight() < 32 ? "audioBox-linker-mini" : "audioBox-linker"} key={"linker" + i}>
- <DocumentView {...this.props} Document={l} layoutKey={Doc.LinkEndpoint(l, la2)}
- parentActive={returnTrue} bringToFront={emptyFunction} zoomToScale={emptyFunction} getScale={returnOne}
- backgroundColor={returnTransparent} />
- </div>
- <div key={i} className="audiobox-marker" onPointerEnter={() => Doc.linkFollowHighlight(la1)}
- onPointerDown={e => { if (e.button === 0 && !e.ctrlKey) { this.playFrom(linkTime); e.stopPropagation(); } }}
- onClick={e => { if (e.button === 0 && !e.ctrlKey) { this.pause(); e.stopPropagation(); } }} />
- </div>;
- })}
- <div className="audiobox-current" style={{ left: `${NumCast(this.Document.currentTimecode) / NumCast(this.dataDoc.duration, 1) * 100}%` }} />
- {this.audio}
- </div>
+ const interactive = this.active() ? "-interactive" : "";
+ return <div className={`audiobox-container`} onContextMenu={this.specificContextMenu}
+ onClick={!this.path ? this.recordClick : undefined}>
+ <div className="audiobox-handle"></div>
+ {!this.path ?
+ <button className={`audiobox-record${interactive}`} style={{ backgroundColor: this._audioState === "recording" ? "red" : "black" }}>
+ {this._audioState === "recording" ? "STOP" : "RECORD"}
+ </button> :
+ <div className="audiobox-controls">
+ <div className="audiobox-player" onClick={this.onPlay}>
+ <div className="audiobox-playhead"> <FontAwesomeIcon style={{ width: "100%" }} icon={this._playing ? "pause" : "play"} size={this.props.PanelHeight() < 36 ? "1x" : "2x"} /></div>
+ <div className="audiobox-playhead" onClick={this.onStop}><FontAwesomeIcon style={{ width: "100%" }} icon="stop" size={this.props.PanelHeight() < 36 ? "1x" : "2x"} /></div>
+ <div className="audiobox-timeline" onClick={e => e.stopPropagation()}
+ onPointerDown={e => {
+ if (e.button === 0 && !e.ctrlKey) {
+ const rect = (e.target as any).getBoundingClientRect();
+ this._ele!.currentTime = this.Document.currentTimecode = (e.clientX - rect.x) / rect.width * NumCast(this.dataDoc.duration);
+ this.pause();
+ e.stopPropagation();
+ }
+ }} >
+ {DocListCast(this.dataDoc.links).map((l, i) => {
+ let la1 = l.anchor1 as Doc;
+ let la2 = l.anchor2 as Doc;
+ let linkTime = NumCast(l.anchor2Timecode);
+ if (Doc.AreProtosEqual(la1, this.dataDoc)) {
+ la1 = l.anchor2 as Doc;
+ la2 = l.anchor1 as Doc;
+ linkTime = NumCast(l.anchor1Timecode);
+ }
+ return !linkTime ? (null) :
+ <div className={this.props.PanelHeight() < 32 ? "audiobox-marker-minicontainer" : "audiobox-marker-container"} key={l[Id]} style={{ left: `${linkTime / NumCast(this.dataDoc.duration, 1) * 100}%` }}>
+ <div className={this.props.PanelHeight() < 32 ? "audioBox-linker-mini" : "audioBox-linker"} key={"linker" + i}>
+ <DocumentView {...this.props} Document={l} layoutKey={Doc.LinkEndpoint(l, la2)}
+ parentActive={returnTrue} bringToFront={emptyFunction} zoomToScale={emptyFunction} getScale={returnOne}
+ backgroundColor={returnTransparent} />
+ </div>
+ <div key={i} className="audiobox-marker" onPointerEnter={() => Doc.linkFollowHighlight(la1)}
+ onPointerDown={e => { if (e.button === 0 && !e.ctrlKey) { this.playFrom(linkTime); e.stopPropagation(); } }}
+ onClick={e => { if (e.button === 0 && !e.ctrlKey) { this.pause(); e.stopPropagation(); } }} />
+ </div>;
+ })}
+ <div className="audiobox-current" style={{ left: `${NumCast(this.Document.currentTimecode) / NumCast(this.dataDoc.duration, 1) * 100}%` }} />
+ {this.audio}
</div>
</div>
- }
- </div>
- );
+ </div>
+ }
+ </div>;
}
} \ No newline at end of file
diff --git a/src/client/views/nodes/ButtonBox.scss b/src/client/views/nodes/ButtonBox.scss
index e8a3d1479..7c3825978 100644
--- a/src/client/views/nodes/ButtonBox.scss
+++ b/src/client/views/nodes/ButtonBox.scss
@@ -3,7 +3,7 @@
height: 100%;
pointer-events: all;
border-radius: inherit;
- display:flex;
+ display: flex;
flex-direction: column;
}
@@ -15,19 +15,22 @@
display: table;
overflow: hidden;
text-overflow: ellipsis;
+ letter-spacing: 2px;
+ text-transform: uppercase;
}
+
.buttonBox-mainButtonCenter {
height: 100%;
- display:table-cell;
+ display: table-cell;
vertical-align: middle;
}
.buttonBox-params {
- display:flex;
- flex-direction: row;
+ display: flex;
+ flex-direction: row;
}
.buttonBox-missingParam {
- width:100%;
+ width: 100%;
background: lightgray;
} \ No newline at end of file
diff --git a/src/client/views/nodes/ButtonBox.tsx b/src/client/views/nodes/ButtonBox.tsx
index beb2b30fd..ee48b47b7 100644
--- a/src/client/views/nodes/ButtonBox.tsx
+++ b/src/client/views/nodes/ButtonBox.tsx
@@ -36,7 +36,7 @@ export class ButtonBox extends DocComponent<FieldViewProps, ButtonDocument>(Butt
@computed get dataDoc() {
return this.props.DataDoc &&
- (this.Document.isTemplateField || BoolCast(this.props.DataDoc.isTemplateField) ||
+ (this.Document.isTemplateForField || BoolCast(this.props.DataDoc.isTemplateForField) ||
this.props.DataDoc.layout === this.props.Document) ? this.props.DataDoc : Doc.GetProto(this.props.Document);
}
@@ -46,15 +46,15 @@ export class ButtonBox extends DocComponent<FieldViewProps, ButtonDocument>(Butt
this.dropDisposer();
}
if (ele) {
- this.dropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.drop.bind(this) } });
+ this.dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this));
}
}
specificContextMenu = (e: React.MouseEvent): void => {
- let funcs: ContextMenuProps[] = [];
+ const funcs: ContextMenuProps[] = [];
funcs.push({
description: "Clear Script Params", event: () => {
- let params = FieldValue(this.Document.buttonParams);
+ const params = FieldValue(this.Document.buttonParams);
params && params.map(p => this.props.Document[p] = undefined);
}, icon: "trash"
});
@@ -65,21 +65,25 @@ export class ButtonBox extends DocComponent<FieldViewProps, ButtonDocument>(Butt
@undoBatch
@action
drop = (e: Event, de: DragManager.DropEvent) => {
- if (de.data instanceof DragManager.DocumentDragData && e.target) {
- this.props.Document[(e.target as any).textContent] = new List<Doc>(de.data.droppedDocuments.map((d, i) =>
- d.onDragStart ? de.data.draggedDocuments[i] : d));
+ const docDragData = de.complete.docDragData;
+ if (docDragData && e.target) {
+ this.props.Document[(e.target as any).textContent] = new List<Doc>(docDragData.droppedDocuments.map((d, i) =>
+ d.onDragStart ? docDragData.draggedDocuments[i] : d));
e.stopPropagation();
}
}
// (!missingParams || !missingParams.length ? "" : "(" + missingParams.map(m => m + ":").join(" ") + ")")
render() {
- let params = this.Document.buttonParams;
- let missingParams = params && params.filter(p => this.props.Document[p] === undefined);
+ const params = this.Document.buttonParams;
+ const missingParams = params && params.filter(p => this.props.Document[p] === undefined);
params && params.map(p => DocListCast(this.props.Document[p])); // bcz: really hacky form of prefetching ...
return (
<div className="buttonBox-outerDiv" ref={this.createDropTarget} onContextMenu={this.specificContextMenu}
style={{ boxShadow: this.Document.opacity === 0 ? undefined : StrCast(this.Document.boxShadow, "") }}>
- <div className="buttonBox-mainButton" style={{ background: this.Document.backgroundColor || "", color: this.Document.color || "black" }} >
+ <div className="buttonBox-mainButton" style={{
+ background: this.Document.backgroundColor, color: this.Document.color || "black",
+ fontSize: this.Document.fontSize, letterSpacing: this.Document.letterSpacing || "", textTransform: this.Document.textTransform || ""
+ }} >
<div className="buttonBox-mainButtonCenter">
{(this.Document.text || this.Document.title)}
</div>
diff --git a/src/client/views/nodes/CollectionFreeFormDocumentView.scss b/src/client/views/nodes/CollectionFreeFormDocumentView.scss
index af9232c2f..da287649e 100644
--- a/src/client/views/nodes/CollectionFreeFormDocumentView.scss
+++ b/src/client/views/nodes/CollectionFreeFormDocumentView.scss
@@ -2,6 +2,7 @@
transform-origin: left top;
position: absolute;
background-color: transparent;
- top:0;
- left:0;
+ touch-action: manipulation;
+ top: 0;
+ left: 0;
} \ No newline at end of file
diff --git a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx
index a035bdc3d..2183129cf 100644
--- a/src/client/views/nodes/CollectionFreeFormDocumentView.tsx
+++ b/src/client/views/nodes/CollectionFreeFormDocumentView.tsx
@@ -1,4 +1,4 @@
-import { random } from "animejs";
+import anime from "animejs";
import { computed, IReactionDisposer, observable, reaction, trace } from "mobx";
import { observer } from "mobx-react";
import { Doc, HeightSym, WidthSym } from "../../../new_fields/Doc";
@@ -10,103 +10,107 @@ import "./CollectionFreeFormDocumentView.scss";
import { DocumentView, DocumentViewProps } from "./DocumentView";
import React = require("react");
import { PositionDocument } from "../../../new_fields/documentSchemas";
+import { TraceMobx } from "../../../new_fields/util";
+import { returnFalse } from "../../../Utils";
+import { ContentFittingDocumentView } from "./ContentFittingDocumentView";
export interface CollectionFreeFormDocumentViewProps extends DocumentViewProps {
- dataProvider?: (doc: Doc, dataDoc?: Doc) => { x: number, y: number, width: number, height: number, z: number, transition?: string } | undefined;
+ dataProvider?: (doc: Doc) => { x: number, y: number, width: number, height: number, z: number, transition?: string } | undefined;
x?: number;
y?: number;
width?: number;
height?: number;
jitterRotation: number;
transition?: string;
+ fitToBox?: boolean;
}
@observer
export class CollectionFreeFormDocumentView extends DocComponent<CollectionFreeFormDocumentViewProps, PositionDocument>(PositionDocument) {
_disposer: IReactionDisposer | undefined = undefined;
- get transform() { return `scale(${this.props.ContentScaling()}) translate(${this.X}px, ${this.Y}px) rotate(${random(-1, 1) * this.props.jitterRotation}deg)`; }
+
+ @observable _animPos: number[] | undefined = undefined;
+ get displayName() { return "CollectionFreeFormDocumentView(" + this.props.Document.title + ")"; } // this makes mobx trace() statements more descriptive
+ get transform() { return `scale(${this.props.ContentScaling()}) translate(${this.X}px, ${this.Y}px) rotate(${anime.random(-1, 1) * this.props.jitterRotation}deg)`; }
get X() { return this._animPos !== undefined ? this._animPos[0] : this.renderScriptDim ? this.renderScriptDim.x : this.props.x !== undefined ? this.props.x : this.dataProvider ? this.dataProvider.x : (this.Document.x || 0); }
get Y() { return this._animPos !== undefined ? this._animPos[1] : this.renderScriptDim ? this.renderScriptDim.y : this.props.y !== undefined ? this.props.y : this.dataProvider ? this.dataProvider.y : (this.Document.y || 0); }
get width() { return this.renderScriptDim ? this.renderScriptDim.width : this.props.width !== undefined ? this.props.width : this.props.dataProvider && this.dataProvider ? this.dataProvider.width : this.layoutDoc[WidthSym](); }
- get height() { return this.renderScriptDim ? this.renderScriptDim.height : this.props.height !== undefined ? this.props.height : this.props.dataProvider && this.dataProvider ? this.dataProvider.height : this.layoutDoc[HeightSym](); }
- @computed get dataProvider() { return this.props.dataProvider && this.props.dataProvider(this.props.Document, this.props.DataDoc) ? this.props.dataProvider(this.props.Document, this.props.DataDoc) : undefined; }
- @computed get nativeWidth() { return NumCast(this.layoutDoc.nativeWidth); }
- @computed get nativeHeight() { return NumCast(this.layoutDoc.nativeHeight); }
+ get height() {
+ const hgt = this.renderScriptDim ? this.renderScriptDim.height : this.props.height !== undefined ? this.props.height : this.props.dataProvider && this.dataProvider ? this.dataProvider.height : this.layoutDoc[HeightSym]();
+ return (hgt === undefined && this.nativeWidth && this.nativeHeight) ? this.width * this.nativeHeight / this.nativeWidth : hgt;
+ }
+ @computed get dataProvider() { return this.props.dataProvider && this.props.dataProvider(this.props.Document) ? this.props.dataProvider(this.props.Document) : undefined; }
+ @computed get nativeWidth() { return NumCast(this.layoutDoc._nativeWidth); }
+ @computed get nativeHeight() { return NumCast(this.layoutDoc._nativeHeight); }
@computed get renderScriptDim() {
if (this.Document.renderScript) {
- let someView = Cast(this.props.Document.someView, Doc);
- let minimap = Cast(this.props.Document.minimap, Doc);
+ const someView = Cast(this.props.Document.someView, Doc);
+ const minimap = Cast(this.props.Document.minimap, Doc);
if (someView instanceof Doc && minimap instanceof Doc) {
- let x = (NumCast(someView.panX) - NumCast(someView.width) / 2 / NumCast(someView.scale) - (NumCast(minimap.fitX) - NumCast(minimap.fitW) / 2)) / NumCast(minimap.fitW) * NumCast(minimap.width) - NumCast(minimap.width) / 2;
- let y = (NumCast(someView.panY) - NumCast(someView.height) / 2 / NumCast(someView.scale) - (NumCast(minimap.fitY) - NumCast(minimap.fitH) / 2)) / NumCast(minimap.fitH) * NumCast(minimap.height) - NumCast(minimap.height) / 2;
- let w = NumCast(someView.width) / NumCast(someView.scale) / NumCast(minimap.fitW) * NumCast(minimap.width);
- let h = NumCast(someView.height) / NumCast(someView.scale) / NumCast(minimap.fitH) * NumCast(minimap.height);
+ const x = (NumCast(someView._panX) - NumCast(someView._width) / 2 / NumCast(someView.scale) - (NumCast(minimap.fitX) - NumCast(minimap.fitW) / 2)) / NumCast(minimap.fitW) * NumCast(minimap._width) - NumCast(minimap._width) / 2;
+ const y = (NumCast(someView._panY) - NumCast(someView._height) / 2 / NumCast(someView.scale) - (NumCast(minimap.fitY) - NumCast(minimap.fitH) / 2)) / NumCast(minimap.fitH) * NumCast(minimap._height) - NumCast(minimap._height) / 2;
+ const w = NumCast(someView._width) / NumCast(someView.scale) / NumCast(minimap.fitW) * NumCast(minimap.width);
+ const h = NumCast(someView._height) / NumCast(someView.scale) / NumCast(minimap.fitH) * NumCast(minimap.height);
return { x: x, y: y, width: w, height: h };
}
}
return undefined;
}
- componentWillUnmount() {
- this._disposer && this._disposer();
- }
+ componentWillUnmount() { this._disposer?.(); }
componentDidMount() {
- this._disposer = reaction(() => [this.props.Document.animateToPos, this.props.Document.isAnimating],
- () => {
- const target = this.props.Document.animateToPos ? Array.from(Cast(this.props.Document.animateToPos, listSpec("number"))!) : undefined;
- this._animPos = !target ? undefined : target[2] ? [NumCast(this.layoutDoc.x), NumCast(this.layoutDoc.y)] : this.props.ScreenToLocalTransform().transformPoint(target[0], target[1]);
- }, { fireImmediately: true });
+ this._disposer = reaction(() => Array.from(Cast(this.props.Document?.animateToPos, listSpec("number"), null) || []),
+ target => this._animPos = !target || !target?.length ? undefined : target[2] ? [NumCast(this.layoutDoc.x), NumCast(this.layoutDoc.y)] :
+ this.props.ScreenToLocalTransform().transformPoint(target[0], target[1]),
+ { fireImmediately: true });
}
- contentScaling = () => this.nativeWidth > 0 && !this.props.Document.ignoreAspect ? this.width / this.nativeWidth : 1;
- panelWidth = () => this.props.PanelWidth();
- panelHeight = () => this.props.PanelHeight();
+ contentScaling = () => this.nativeWidth > 0 && !this.props.Document.ignoreAspect && !this.props.fitToBox ? this.width / this.nativeWidth : 1;
+ clusterColorFunc = (doc: Doc) => this.clusterColor;
+ panelWidth = () => (this.dataProvider?.width || this.props.PanelWidth());
+ panelHeight = () => (this.dataProvider?.height || this.props.PanelHeight());
getTransform = (): Transform => this.props.ScreenToLocalTransform()
.translate(-this.X, -this.Y)
.scale(1 / this.contentScaling())
- borderRounding = () => {
- let ruleRounding = this.props.ruleProvider ? StrCast(this.props.ruleProvider["ruleRounding_" + this.Document.heading]) : undefined;
- let ld = this.layoutDoc[StrCast(this.layoutDoc.layoutKey, "layout")] instanceof Doc ? this.layoutDoc[StrCast(this.layoutDoc.layoutKey, "layout")] as Doc : undefined;
- let br = StrCast((ld || this.props.Document).borderRounding);
- return !br && ruleRounding ? ruleRounding : br;
- }
-
@computed
get clusterColor() { return this.props.backgroundColor(this.props.Document); }
- clusterColorFunc = (doc: Doc) => this.clusterColor;
-
- @observable _animPos: number[] | undefined = undefined;
-
- finalPanelWidth = () => this.dataProvider ? this.dataProvider.width : this.panelWidth();
- finalPanelHeight = () => this.dataProvider ? this.dataProvider.height : this.panelHeight();
-
render() {
- trace();
+ TraceMobx();
return <div className="collectionFreeFormDocumentView-container"
style={{
boxShadow:
this.layoutDoc.opacity === 0 ? undefined : // if it's not visible, then no shadow
this.layoutDoc.z ? `#9c9396 ${StrCast(this.layoutDoc.boxShadow, "10px 10px 0.9vw")}` : // if it's a floating doc, give it a big shadow
this.clusterColor ? (`${this.clusterColor} ${StrCast(this.layoutDoc.boxShadow, `0vw 0vw ${(this.layoutDoc.isBackground ? 100 : 50) / this.props.ContentScaling()}px`)}`) : // if it's just in a cluster, make the shadown roughly match the cluster border extent
- this.layoutDoc.isBackground ? `1px 1px 1px ${this.clusterColor}` : // if it's a background & has a cluster color, make the shadow spread really big
+ this.layoutDoc.isBackground ? undefined : // if it's a background & has a cluster color, make the shadow spread really big
StrCast(this.layoutDoc.boxShadow, ""),
- borderRadius: this.borderRounding(),
+ borderRadius: StrCast(Doc.Layout(this.layoutDoc).borderRounding),
transform: this.transform,
- transition: this.Document.isAnimating !== undefined ? ".5s ease-in" : this.props.transition ? this.props.transition : this.dataProvider ? this.dataProvider.transition : StrCast(this.layoutDoc.transition),
+ transition: this.Document.isAnimating ? ".5s ease-in" : this.props.transition ? this.props.transition : this.dataProvider ? this.dataProvider.transition : StrCast(this.layoutDoc.transition),
width: this.width,
height: this.height,
zIndex: this.Document.zIndex || 0,
}} >
- <DocumentView {...this.props}
+
+ {!this.props.fitToBox ? <DocumentView {...this.props}
+ dragDivName={"collectionFreeFormDocumentView-container"}
ContentScaling={this.contentScaling}
ScreenToLocalTransform={this.getTransform}
backgroundColor={this.clusterColorFunc}
- PanelWidth={this.finalPanelWidth}
- PanelHeight={this.finalPanelHeight}
- />
+ PanelWidth={this.panelWidth}
+ PanelHeight={this.panelHeight}
+ /> : <ContentFittingDocumentView {...this.props}
+ CollectionDoc={this.props.ContainingCollectionDoc}
+ DataDocument={this.props.DataDoc}
+ getTransform={this.getTransform}
+ active={returnFalse}
+ focus={(doc: Doc) => this.props.focus(doc, false)}
+ PanelWidth={this.panelWidth}
+ PanelHeight={this.panelHeight}
+ />}
</div>;
}
-} \ No newline at end of file
+}
diff --git a/src/client/views/nodes/ColorBox.tsx b/src/client/views/nodes/ColorBox.tsx
index fda6d64f4..40674b034 100644
--- a/src/client/views/nodes/ColorBox.tsx
+++ b/src/client/views/nodes/ColorBox.tsx
@@ -38,7 +38,9 @@ export class ColorBox extends DocExtendableComponent<FieldViewProps, ColorDocume
render() {
return <div className={`colorBox-container${this.active() ? "-interactive" : ""}`}
- onPointerDown={e => e.button === 0 && !e.ctrlKey && e.stopPropagation()}>
+ onPointerDown={e => e.button === 0 && !e.ctrlKey && e.stopPropagation()}
+ style={{ transformOrigin: "top left", transform: `scale(${this.props.ContentScaling()})`, width: `${100 / this.props.ContentScaling()}%`, height: `${100 / this.props.ContentScaling()}%` }} >
+
<SketchPicker color={this._startupColor} onChange={InkingControl.Instance.switchColor} />
</div>;
}
diff --git a/src/client/views/nodes/ContentFittingDocumentView.scss b/src/client/views/nodes/ContentFittingDocumentView.scss
index 796e67269..2801af441 100644
--- a/src/client/views/nodes/ContentFittingDocumentView.scss
+++ b/src/client/views/nodes/ContentFittingDocumentView.scss
@@ -2,10 +2,11 @@
.contentFittingDocumentView {
position: relative;
- height: auto !important;
+ display: flex;
+ align-items: center;
.contentFittingDocumentView-previewDoc {
- position: absolute;
+ position: relative;
display: inline;
}
diff --git a/src/client/views/nodes/ContentFittingDocumentView.tsx b/src/client/views/nodes/ContentFittingDocumentView.tsx
index c8255b6fe..51c8e00da 100644
--- a/src/client/views/nodes/ContentFittingDocumentView.tsx
+++ b/src/client/views/nodes/ContentFittingDocumentView.tsx
@@ -13,84 +13,88 @@ import '../DocumentDecorations.scss';
import { DocumentView } from "../nodes/DocumentView";
import "./ContentFittingDocumentView.scss";
import { CollectionView } from "../collections/CollectionView";
+import { TraceMobx } from "../../../new_fields/util";
interface ContentFittingDocumentViewProps {
Document?: Doc;
DataDocument?: Doc;
+ LibraryPath: Doc[];
childDocs?: Doc[];
renderDepth: number;
fitToBox?: boolean;
PanelWidth: () => number;
PanelHeight: () => number;
- ruleProvider: Doc | undefined;
focus?: (doc: Doc) => void;
- showOverlays?: (doc: Doc) => { title?: string, caption?: string };
CollectionView?: CollectionView;
CollectionDoc?: Doc;
onClick?: ScriptField;
getTransform: () => Transform;
- addDocument: (document: Doc) => boolean;
- moveDocument: (document: Doc, target: Doc, addDoc: ((doc: Doc) => boolean)) => boolean;
- removeDocument: (document: Doc) => boolean;
- active: () => boolean;
+ addDocument?: (document: Doc) => boolean;
+ moveDocument?: (document: Doc, target: Doc | undefined, addDoc: ((doc: Doc) => boolean)) => boolean;
+ removeDocument?: (document: Doc) => boolean;
+ active: (outsideReaction: boolean) => boolean;
whenActiveChanged: (isActive: boolean) => void;
addDocTab: (document: Doc, dataDoc: Doc | undefined, where: string) => boolean;
pinToPres: (document: Doc) => void;
dontRegisterView?: boolean;
- setPreviewScript: (script: string) => void;
- previewScript?: string;
}
@observer
export class ContentFittingDocumentView extends React.Component<ContentFittingDocumentViewProps>{
+ public get displayName() { return "DocumentView(" + this.props.Document?.title + ")"; } // this makes mobx trace() statements more descriptive
private get layoutDoc() { return this.props.Document && Doc.Layout(this.props.Document); }
- private get nativeWidth() { return NumCast(this.layoutDoc!.nativeWidth, this.props.PanelWidth()); }
- private get nativeHeight() { return NumCast(this.layoutDoc!.nativeHeight, this.props.PanelHeight()); }
+ private get nativeWidth() { return NumCast(this.layoutDoc?._nativeWidth, this.props.PanelWidth()); }
+ private get nativeHeight() { return NumCast(this.layoutDoc?._nativeHeight, this.props.PanelHeight()); }
private contentScaling = () => {
- let wscale = this.props.PanelWidth() / (this.nativeWidth ? this.nativeWidth : this.props.PanelWidth());
+ const wscale = this.props.PanelWidth() / (this.nativeWidth || this.props.PanelWidth() || 1);
if (wscale * this.nativeHeight > this.props.PanelHeight()) {
- return this.props.PanelHeight() / (this.nativeHeight ? this.nativeHeight : this.props.PanelHeight());
+ return (this.props.PanelHeight() / (this.nativeHeight || this.props.PanelHeight() || 1)) || 1;
}
- return wscale;
+ return wscale || 1;
}
@undoBatch
@action
drop = (e: Event, de: DragManager.DropEvent) => {
- if (de.data instanceof DragManager.DocumentDragData) {
+ const docDragData = de.complete.docDragData;
+ if (docDragData) {
this.props.childDocs && this.props.childDocs.map(otherdoc => {
- let target = Doc.GetProto(otherdoc);
+ const target = Doc.GetProto(otherdoc);
target.layout = ComputedField.MakeFunction("this.image_data[0]");
- target.layoutCustom = Doc.MakeDelegate(de.data.draggedDocuments[0]);
+ target.layout_custom = Doc.MakeDelegate(docDragData.draggedDocuments[0]);
});
e.stopPropagation();
}
return true;
}
- private PanelWidth = () => this.nativeWidth && (!this.props.Document || !this.props.Document.fitWidth) ? this.nativeWidth * this.contentScaling() : this.props.PanelWidth();
- private PanelHeight = () => this.nativeHeight && (!this.props.Document || !this.props.Document.fitWidth) ? this.nativeHeight * this.contentScaling() : this.props.PanelHeight();
- private getTransform = () => this.props.getTransform().translate(-this.centeringOffset, 0).scale(1 / this.contentScaling());
- private get centeringOffset() { return this.nativeWidth && (!this.props.Document || !this.props.Document.fitWidth) ? (this.props.PanelWidth() - this.nativeWidth * this.contentScaling()) / 2 : 0; }
+ private PanelWidth = () => this.nativeWidth && (!this.props.Document || !this.props.Document._fitWidth) ? this.nativeWidth * this.contentScaling() : this.props.PanelWidth();
+ private PanelHeight = () => this.nativeHeight && (!this.props.Document || !this.props.Document._fitWidth) ? this.nativeHeight * this.contentScaling() : this.props.PanelHeight();
+ private getTransform = () => this.props.getTransform().translate(-this.centeringOffset, -this.centeringYOffset).scale(1 / this.contentScaling());
+ private get centeringOffset() { return this.nativeWidth && (!this.props.Document || !this.props.Document._fitWidth) ? (this.props.PanelWidth() - this.nativeWidth * this.contentScaling()) / 2 : 0; }
+ private get centeringYOffset() { return Math.abs(this.centeringOffset) < 0.001 ? (this.props.PanelHeight() - this.nativeHeight * this.contentScaling()) / 2 : 0; }
- @computed get borderRounding() { return StrCast(this.props.Document!.borderRounding); }
+ @computed get borderRounding() { return StrCast(this.props.Document?.borderRounding); }
render() {
- return (<div className="contentFittingDocumentView" style={{ width: this.props.PanelWidth(), height: this.props.PanelHeight() }}>
+ TraceMobx();
+ return (<div className="contentFittingDocumentView" style={{
+ width: Math.abs(this.centeringYOffset) > 0.001 ? "auto" : this.props.PanelWidth(),
+ height: Math.abs(this.centeringOffset) > 0.0001 ? "auto" : this.props.PanelHeight()
+ }}>
{!this.props.Document || !this.props.PanelWidth ? (null) : (
<div className="contentFittingDocumentView-previewDoc"
style={{
transform: `translate(${this.centeringOffset}px, 0px)`,
borderRadius: this.borderRounding,
- height: this.props.PanelHeight(),
- width: this.props.PanelWidth()
+ height: Math.abs(this.centeringYOffset) > 0.001 ? `${100 * this.nativeHeight / this.nativeWidth * this.props.PanelWidth() / this.props.PanelHeight()}%` : this.props.PanelHeight(),
+ width: Math.abs(this.centeringOffset) > 0.001 ? `${100 * (this.props.PanelWidth() - this.centeringOffset * 2) / this.props.PanelWidth()}%` : this.props.PanelWidth()
}}>
<DocumentView {...this.props}
- DataDoc={this.props.DataDocument}
Document={this.props.Document}
+ DataDoc={this.props.DataDocument}
+ LibraryPath={this.props.LibraryPath}
fitToBox={this.props.fitToBox}
onClick={this.props.onClick}
- ruleProvider={this.props.ruleProvider}
- showOverlays={this.props.showOverlays}
addDocument={this.props.addDocument}
removeDocument={this.props.removeDocument}
moveDocument={this.props.moveDocument}
@@ -101,7 +105,7 @@ export class ContentFittingDocumentView extends React.Component<ContentFittingDo
pinToPres={this.props.pinToPres}
parentActive={this.props.active}
ScreenToLocalTransform={this.getTransform}
- renderDepth={this.props.renderDepth + 1}
+ renderDepth={this.props.renderDepth}
ContentScaling={this.contentScaling}
PanelWidth={this.PanelWidth}
PanelHeight={this.PanelHeight}
diff --git a/src/client/views/nodes/DocuLinkBox.tsx b/src/client/views/nodes/DocuLinkBox.tsx
index d73407903..a4a9a62aa 100644
--- a/src/client/views/nodes/DocuLinkBox.tsx
+++ b/src/client/views/nodes/DocuLinkBox.tsx
@@ -1,17 +1,18 @@
import { action, observable } from "mobx";
import { observer } from "mobx-react";
-import { Doc } from "../../../new_fields/Doc";
+import { Doc, WidthSym, HeightSym } from "../../../new_fields/Doc";
import { makeInterface } from "../../../new_fields/Schema";
import { NumCast, StrCast, Cast } from "../../../new_fields/Types";
import { Utils } from '../../../Utils';
import { DocumentManager } from "../../util/DocumentManager";
-import { DragLinksAsDocuments } from "../../util/DragManager";
+import { DragManager } from "../../util/DragManager";
import { DocComponent } from "../DocComponent";
import "./DocuLinkBox.scss";
import { FieldView, FieldViewProps } from "./FieldView";
import React = require("react");
import { DocumentType } from "../../documents/DocumentTypes";
import { documentSchema } from "../../../new_fields/documentSchemas";
+import { Id } from "../../../new_fields/FieldSymbols";
type DocLinkSchema = makeInterface<[typeof documentSchema]>;
const DocLinkDocument = makeInterface(documentSchema);
@@ -36,14 +37,14 @@ export class DocuLinkBox extends DocComponent<FieldViewProps, DocLinkSchema>(Doc
(e.button === 0 && !e.ctrlKey) && e.stopPropagation();
}
onPointerMove = action((e: PointerEvent) => {
- let cdiv = this._ref && this._ref.current && this._ref.current.parentElement;
+ const cdiv = this._ref && this._ref.current && this._ref.current.parentElement;
if (cdiv && (Math.abs(e.clientX - this._downx) > 5 || Math.abs(e.clientY - this._downy) > 5)) {
- let bounds = cdiv.getBoundingClientRect();
- let pt = Utils.getNearestPointInPerimeter(bounds.left, bounds.top, bounds.width, bounds.height, e.clientX, e.clientY);
- let separation = Math.sqrt((pt[0] - e.clientX) * (pt[0] - e.clientX) + (pt[1] - e.clientY) * (pt[1] - e.clientY));
- let dragdist = Math.sqrt((pt[0] - this._downx) * (pt[0] - this._downx) + (pt[1] - this._downy) * (pt[1] - this._downy));
+ const bounds = cdiv.getBoundingClientRect();
+ const pt = Utils.getNearestPointInPerimeter(bounds.left, bounds.top, bounds.width, bounds.height, e.clientX, e.clientY);
+ const separation = Math.sqrt((pt[0] - e.clientX) * (pt[0] - e.clientX) + (pt[1] - e.clientY) * (pt[1] - e.clientY));
+ const dragdist = Math.sqrt((pt[0] - this._downx) * (pt[0] - this._downx) + (pt[1] - this._downy) * (pt[1] - this._downy));
if (separation > 100) {
- DragLinksAsDocuments(this._ref.current!, pt[0], pt[1], Cast(this.props.Document[this.props.fieldKey], Doc) as Doc, this.props.Document); // Containging collection is the document, not a collection... hack.
+ DragManager.StartLinkTargetsDrag(this._ref.current!, pt[0], pt[1], Cast(this.props.Document[this.props.fieldKey], Doc) as Doc, [this.props.Document]); // Containging collection is the document, not a collection... hack.
document.removeEventListener("pointermove", this.onPointerMove);
document.removeEventListener("pointerup", this.onPointerUp);
} else if (dragdist > separation) {
@@ -60,25 +61,27 @@ export class DocuLinkBox extends DocComponent<FieldViewProps, DocLinkSchema>(Doc
}
}
onClick = (e: React.MouseEvent) => {
- if (Math.abs(e.clientX - this._downx) < 3 && Math.abs(e.clientY - this._downy) < 3 && (e.button !== 2 && !e.ctrlKey && this.props.Document.isButton)) {
- DocumentManager.Instance.FollowLink(this.props.Document, this.props.Document[this.props.fieldKey] as Doc, document => this.props.addDocTab(document, undefined, "inTab"), false);
+ if (!this.props.Document.onClick) {
+ if (Math.abs(e.clientX - this._downx) < 3 && Math.abs(e.clientY - this._downy) < 3 && (e.button !== 2 && !e.ctrlKey && this.props.Document.isButton)) {
+ DocumentManager.Instance.FollowLink(this.props.Document, this.props.Document[this.props.fieldKey] as Doc, document => this.props.addDocTab(document, undefined, "inTab"), false);
+ }
+ e.stopPropagation();
}
- e.stopPropagation();
}
render() {
- let anchorDoc = Cast(this.props.Document[this.props.fieldKey], Doc);
- let hasAnchor = anchorDoc instanceof Doc && anchorDoc.type === DocumentType.PDFANNO;
- let y = NumCast(this.props.Document[this.props.fieldKey + "_y"], 100);
- let x = NumCast(this.props.Document[this.props.fieldKey + "_x"], 100);
- let c = StrCast(this.props.Document.backgroundColor, "lightblue");
- let anchor = this.props.fieldKey === "anchor1" ? "anchor2" : "anchor1";
- let timecode = this.props.Document[anchor + "Timecode"];
- let targetTitle = StrCast((this.props.Document[anchor]! as Doc).title) + (timecode !== undefined ? ":" + timecode : "");
+ const x = NumCast(this.props.Document[this.props.fieldKey + "_x"], 100);
+ const y = NumCast(this.props.Document[this.props.fieldKey + "_y"], 100);
+ const c = StrCast(this.props.Document.backgroundColor, "lightblue");
+ const anchor = this.props.fieldKey === "anchor1" ? "anchor2" : "anchor1";
+ const anchorScale = (x === 0 || x === 100 || y === 0 || y === 100) ? 1 : .15;
+
+ const timecode = this.props.Document[anchor + "Timecode"];
+ const targetTitle = StrCast((this.props.Document[anchor]! as Doc).title) + (timecode !== undefined ? ":" + timecode : "");
return <div className="docuLinkBox-cont" onPointerDown={this.onPointerDown} onClick={this.onClick} title={targetTitle}
ref={this._ref} style={{
background: c, left: `calc(${x}% - 12.5px)`, top: `calc(${y}% - 12.5px)`,
- transform: `scale(${hasAnchor ? 0.333 : 1 / this.props.ContentScaling()})`
+ transform: `scale(${anchorScale / this.props.ContentScaling()})`
}} />;
}
}
diff --git a/src/client/views/nodes/DocumentBox.scss b/src/client/views/nodes/DocumentBox.scss
new file mode 100644
index 000000000..b7d06b364
--- /dev/null
+++ b/src/client/views/nodes/DocumentBox.scss
@@ -0,0 +1,15 @@
+.documentBox-container {
+ width: 100%;
+ height: 100%;
+ pointer-events: all;
+ background: gray;
+ border: #00000021 solid 15px;
+ border-top: #0000005e inset 15px;
+ border-bottom: #0000005e outset 15px;
+ .documentBox-lock {
+ margin: auto;
+ color: white;
+ margin-top: -15px;
+ position: absolute;
+ }
+} \ No newline at end of file
diff --git a/src/client/views/nodes/DocumentBox.tsx b/src/client/views/nodes/DocumentBox.tsx
new file mode 100644
index 000000000..6b7b652c6
--- /dev/null
+++ b/src/client/views/nodes/DocumentBox.tsx
@@ -0,0 +1,111 @@
+import { IReactionDisposer, reaction } from "mobx";
+import { observer } from "mobx-react";
+import { Doc, Field } from "../../../new_fields/Doc";
+import { documentSchema } from "../../../new_fields/documentSchemas";
+import { List } from "../../../new_fields/List";
+import { makeInterface } from "../../../new_fields/Schema";
+import { ComputedField } from "../../../new_fields/ScriptField";
+import { Cast, StrCast, BoolCast } from "../../../new_fields/Types";
+import { emptyFunction, emptyPath } from "../../../Utils";
+import { ContextMenu } from "../ContextMenu";
+import { ContextMenuProps } from "../ContextMenuItem";
+import { DocComponent } from "../DocComponent";
+import { ContentFittingDocumentView } from "./ContentFittingDocumentView";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import "./DocumentBox.scss";
+import { FieldView, FieldViewProps } from "./FieldView";
+import React = require("react");
+
+type DocBoxSchema = makeInterface<[typeof documentSchema]>;
+const DocBoxDocument = makeInterface(documentSchema);
+
+@observer
+export class DocumentBox extends DocComponent<FieldViewProps, DocBoxSchema>(DocBoxDocument) {
+ public static LayoutString(fieldKey: string) { return FieldView.LayoutString(DocumentBox, fieldKey); }
+ _prevSelectionDisposer: IReactionDisposer | undefined;
+ _selections: Doc[] = [];
+ _curSelection = -1;
+ componentDidMount() {
+ this._prevSelectionDisposer = reaction(() => Cast(this.props.Document[this.props.fieldKey], Doc) as Doc, (data) => {
+ if (data && !this._selections.includes(data)) {
+ this._selections.length = ++this._curSelection;
+ this._selections.push(data);
+ }
+ });
+ }
+ componentWillUnmount() {
+ this._prevSelectionDisposer && this._prevSelectionDisposer();
+ }
+ specificContextMenu = (e: React.MouseEvent): void => {
+ const funcs: ContextMenuProps[] = [];
+ funcs.push({ description: (this.isSelectionLocked() ? "Show" : "Lock") + " Selection", event: () => this.toggleLockSelection, icon: "expand-arrows-alt" });
+ funcs.push({ description: `${this.props.Document.forceActive ? "Select" : "Force"} Contents Active`, event: () => this.props.Document.forceActive = !this.props.Document.forceActive, icon: "project-diagram" });
+
+ ContextMenu.Instance.addItem({ description: "DocumentBox Funcs...", subitems: funcs, icon: "asterisk" });
+ }
+ lockSelection = () => {
+ Doc.GetProto(this.props.Document)[this.props.fieldKey] = this.props.Document[this.props.fieldKey];
+ }
+ showSelection = () => {
+ Doc.GetProto(this.props.Document)[this.props.fieldKey] = ComputedField.MakeFunction("selectedDocs(this,true,[_last_])?.[0]");
+ }
+ isSelectionLocked = () => {
+ const kvpstring = Field.toKeyValueString(this.props.Document, this.props.fieldKey);
+ return !(kvpstring.startsWith("=") || kvpstring.startsWith(":="));
+ }
+ toggleLockSelection = () => {
+ !this.isSelectionLocked() ? this.lockSelection() : this.showSelection();
+ }
+ prevSelection = () => {
+ if (this._curSelection > 0) {
+ Doc.UserDoc().SelectedDocs = new List([this._selections[--this._curSelection]]);
+ }
+ }
+ nextSelection = () => {
+ if (this._curSelection < this._selections.length - 1 && this._selections.length) {
+ Doc.UserDoc().SelectedDocs = new List([this._selections[++this._curSelection]]);
+ }
+ }
+ onPointerDown = (e: React.PointerEvent) => {
+ }
+ onClick = (e: React.MouseEvent) => {
+ if (this._contRef.current!.getBoundingClientRect().top + 15 > e.clientY) this.toggleLockSelection();
+ else {
+ if (this._contRef.current!.getBoundingClientRect().left + 15 > e.clientX) this.prevSelection();
+ if (this._contRef.current!.getBoundingClientRect().right - 15 < e.clientX) this.nextSelection();
+ }
+ }
+ _contRef = React.createRef<HTMLDivElement>();
+ pwidth = () => this.props.PanelWidth() - 30;
+ pheight = () => this.props.PanelHeight() - 30;
+ getTransform = () => this.props.ScreenToLocalTransform().translate(-15, -15);
+ render() {
+ const containedDoc = this.props.Document[this.props.fieldKey] as Doc;
+ return <div className="documentBox-container" ref={this._contRef}
+ onContextMenu={this.specificContextMenu}
+ onPointerDown={this.onPointerDown} onClick={this.onClick}
+ style={{ background: StrCast(this.props.Document.backgroundColor) }}>
+ <div className="documentBox-lock">
+ <FontAwesomeIcon icon={this.isSelectionLocked() ? "lock" : "unlock"} size="sm" />
+ </div>
+ {!(containedDoc instanceof Doc) ? (null) : <ContentFittingDocumentView
+ Document={containedDoc}
+ DataDocument={undefined}
+ LibraryPath={emptyPath}
+ fitToBox={this.props.fitToBox}
+ addDocument={this.props.addDocument}
+ moveDocument={this.props.moveDocument}
+ removeDocument={this.props.removeDocument}
+ addDocTab={this.props.addDocTab}
+ pinToPres={this.props.pinToPres}
+ getTransform={this.getTransform}
+ renderDepth={this.props.Document.forceActive ? 0 : this.props.renderDepth + 1} // bcz: really need to have an 'alwaysSelected' prop that's not conflated with renderDepth
+ PanelWidth={this.pwidth}
+ PanelHeight={this.pheight}
+ focus={this.props.focus}
+ active={this.props.active}
+ whenActiveChanged={this.props.whenActiveChanged}
+ />}
+ </div>;
+ }
+}
diff --git a/src/client/views/nodes/DocumentContentsView.tsx b/src/client/views/nodes/DocumentContentsView.tsx
index 594eda8ff..3b1a86d32 100644
--- a/src/client/views/nodes/DocumentContentsView.tsx
+++ b/src/client/views/nodes/DocumentContentsView.tsx
@@ -14,6 +14,7 @@ import { LinkFollowBox } from "../linking/LinkFollowBox";
import { YoutubeBox } from "./../../apis/youtube/YoutubeBox";
import { AudioBox } from "./AudioBox";
import { ButtonBox } from "./ButtonBox";
+import { DocumentBox } from "./DocumentBox";
import { DocumentViewProps } from "./DocumentView";
import "./DocumentView.scss";
import { FontIconBox } from "./FontIconBox";
@@ -30,8 +31,10 @@ import { DocuLinkBox } from "./DocuLinkBox";
import { PresElementBox } from "../presentationview/PresElementBox";
import { VideoBox } from "./VideoBox";
import { WebBox } from "./WebBox";
+import { InkingStroke } from "../InkingStroke";
import React = require("react");
import { RecommendationsBox } from "../RecommendationsBox";
+import { TraceMobx } from "../../../new_fields/util";
const JsxParser = require('react-jsx-parser').default; //TODO Why does this need to be imported like this?
type BindingProps = Without<FieldViewProps, 'fieldKey'>;
@@ -50,15 +53,14 @@ const ObserverJsxParser: typeof JsxParser = ObserverJsxParser1 as any;
@observer
export class DocumentContentsView extends React.Component<DocumentViewProps & {
- isSelected: () => boolean,
+ isSelected: (outsideReaction: boolean) => boolean,
select: (ctrl: boolean) => void,
- onClick?: ScriptField,
layoutKey: string,
- hideOnLeave?: boolean
}> {
@computed get layout(): string {
+ TraceMobx();
if (!this.layoutDoc) return "<p>awaiting layout</p>";
- const layout = Cast(this.layoutDoc[this.props.layoutKey], "string");
+ const layout = Cast(this.layoutDoc[StrCast(this.layoutDoc.layoutKey, this.layoutDoc === this.props.Document ? this.props.layoutKey : "layout")], "string");
if (layout === undefined) {
return this.props.Document.data ?
"<FieldView {...props} fieldKey='data' />" :
@@ -74,16 +76,17 @@ export class DocumentContentsView extends React.Component<DocumentViewProps & {
if (this.props.DataDoc === undefined && typeof Doc.LayoutField(this.props.Document) !== "string") {
// if there is no dataDoc (ie, we're not rendering a template layout), but this document has a layout document (not a layout string),
// then we render the layout document as a template and use this document as the data context for the template layout.
- return this.props.Document;
+ const proto = Doc.GetProto(this.props.Document);
+ return proto instanceof Promise ? undefined : proto;
}
- return this.props.DataDoc;
+ return this.props.DataDoc instanceof Promise ? undefined : this.props.DataDoc;
}
get layoutDoc() {
- return this.props.DataDoc === undefined ? Doc.expandTemplateLayout(Doc.Layout(this.props.Document), this.props.Document) : Doc.Layout(this.props.Document);
+ return Doc.Layout(this.props.Document);
}
CreateBindings(): JsxBindings {
- let list = {
+ const list = {
...OmitKeys(this.props, ['parentActive'], (obj: any) => obj.active = this.props.parentActive).omit,
Document: this.layoutDoc,
DataDoc: this.dataDoc,
@@ -92,13 +95,15 @@ export class DocumentContentsView extends React.Component<DocumentViewProps & {
}
render() {
+ TraceMobx();
return (this.props.renderDepth > 7 || !this.layout) ? (null) :
<ObserverJsxParser
blacklistedAttrs={[]}
components={{
FormattedTextBox, ImageBox, IconBox, DirectoryImportBox, FontIconBox: FontIconBox, ButtonBox, FieldView,
CollectionFreeFormView, CollectionDockingView, CollectionSchemaView, CollectionView, WebBox, KeyValueBox,
- PDFBox, VideoBox, AudioBox, HistogramBox, PresBox, YoutubeBox, LinkFollowBox, PresElementBox, QueryBox, ColorBox, DocuLinkBox, RecommendationsBox
+ PDFBox, VideoBox, AudioBox, HistogramBox, PresBox, YoutubeBox, LinkFollowBox, PresElementBox, QueryBox,
+ ColorBox, DocuLinkBox, InkingStroke, DocumentBox, RecommendationsBox
}}
bindings={this.CreateBindings()}
jsx={this.layout}
diff --git a/src/client/views/nodes/DocumentView.scss b/src/client/views/nodes/DocumentView.scss
index 65df86d27..2ce56c73d 100644
--- a/src/client/views/nodes/DocumentView.scss
+++ b/src/client/views/nodes/DocumentView.scss
@@ -1,13 +1,14 @@
@import "../globalCssVariables";
-.documentView-node, .documentView-node-topmost {
+.documentView-node,
+.documentView-node-topmost {
position: inherit;
top: 0;
- left:0;
+ left: 0;
border-radius: inherit;
- transition : outline .3s linear;
+ transition: outline .3s linear;
cursor: grab;
-
+
// background: $light-color; //overflow: hidden;
transform-origin: left top;
@@ -37,46 +38,62 @@
position: absolute;
transform-origin: top left;
width: 100%;
- height: 100%;
+ height: 100%;
+ z-index: 1;
}
+
.documentView-styleWrapper {
- position: absolute;
+ position: absolute;
display: inline-block;
- width:100%;
- height:100%;
+ width: 100%;
+ height: 100%;
pointer-events: none;
.documentView-styleContentWrapper {
- width:100%;
+ width: 100%;
display: inline-block;
position: absolute;
}
- .documentView-titleWrapper {
- overflow:hidden;
- color: white;
- transform-origin: top left;
- top: 0;
+
+ .documentView-titleWrapper, .documentView-titleWrapper-hover {
+ overflow: hidden;
+ color: white;
+ transform-origin: top left;
+ top: 0;
+ width: 100%;
height: 25;
background: rgba(0, 0, 0, .4);
- padding: 4px;
- text-align: center;
- text-overflow: ellipsis;
+ padding: 4px;
+ text-align: center;
+ text-overflow: ellipsis;
white-space: pre;
}
+ .documentView-titleWrapper-hover {
+ display:none;
+ }
.documentView-searchHighlight {
- position: absolute;
- background: yellow;
+ position: absolute;
+ background: yellow;
bottom: -20px;
border-radius: 5px;
- transform-origin: bottom left;
+ transform-origin: bottom left;
}
.documentView-captionWrapper {
- position: absolute;
- bottom: 0;
+ position: absolute;
+ bottom: 0;
+ width: 100%;
transform-origin: bottom left;
}
}
+}
+
+.documentView-node:hover, .documentView-node-topmost:hover {
+ > .documentView-styleWrapper {
+ > .documentView-titleWrapper-hover {
+ display:inline-block;
+ }
+ }
} \ No newline at end of file
diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx
index 91618491c..9108e81e9 100644
--- a/src/client/views/nodes/DocumentView.tsx
+++ b/src/client/views/nodes/DocumentView.tsx
@@ -4,23 +4,21 @@ import { action, computed, runInAction, trace, observable } from "mobx";
import { observer } from "mobx-react";
import * as rp from "request-promise";
import { Doc, DocListCast, DocListCastAsync, Opt } from "../../../new_fields/Doc";
-import { Document } from '../../../new_fields/documentSchemas';
+import { Document, PositionDocument } from '../../../new_fields/documentSchemas';
import { Id } from '../../../new_fields/FieldSymbols';
import { listSpec } from "../../../new_fields/Schema";
import { ScriptField } from '../../../new_fields/ScriptField';
import { BoolCast, Cast, NumCast, StrCast } from "../../../new_fields/Types";
-import { ImageField } from '../../../new_fields/URLField';
+import { ImageField, PdfField, VideoField, AudioField } from '../../../new_fields/URLField';
import { CurrentUserUtils } from "../../../server/authentication/models/current_user_utils";
-import { emptyFunction, returnTransparent, returnTrue, Utils } from "../../../Utils";
+import { emptyFunction, returnTransparent, returnTrue, Utils, returnOne } from "../../../Utils";
import { GooglePhotos } from '../../apis/google_docs/GooglePhotosClientUtils';
import { DocServer } from "../../DocServer";
-import { Docs, DocUtils } from "../../documents/Documents";
+import { Docs, DocUtils, DocumentOptions } from "../../documents/Documents";
import { DocumentType } from '../../documents/DocumentTypes';
import { ClientUtils } from '../../util/ClientUtils';
-import { DictationManager } from '../../util/DictationManager';
import { DocumentManager } from "../../util/DocumentManager";
import { DragManager, dropActionType } from "../../util/DragManager";
-import { LinkManager } from '../../util/LinkManager';
import { Scripting } from '../../util/Scripting';
import { SelectionManager } from "../../util/SelectionManager";
import SharingManager from '../../util/SharingManager';
@@ -31,7 +29,6 @@ import { CollectionDockingView } from "../collections/CollectionDockingView";
import { CollectionView } from "../collections/CollectionView";
import { ContextMenu } from "../ContextMenu";
import { ContextMenuProps } from '../ContextMenuItem';
-import { DictationOverlay } from '../DictationOverlay';
import { DocComponent } from "../DocComponent";
import { EditableView } from '../EditableView';
import { OverlayView } from '../OverlayView';
@@ -41,36 +38,21 @@ import { DocumentContentsView } from "./DocumentContentsView";
import "./DocumentView.scss";
import { FormattedTextBox } from './FormattedTextBox';
import React = require("react");
-import requestPromise = require('request-promise');
-import { RecommendationsBox } from '../RecommendationsBox';
-import { SearchUtil } from '../../util/SearchUtil';
-import { ClientRecommender } from '../../ClientRecommender';
+import { InteractionUtils } from '../../util/InteractionUtils';
+import { InkingControl } from '../InkingControl';
+import { InkTool } from '../../../new_fields/InkField';
+import { TraceMobx } from '../../../new_fields/util';
+import { List } from '../../../new_fields/List';
+import { FormattedTextBoxComment } from './FormattedTextBoxComment';
+import { GestureUtils } from '../../../pen-gestures/GestureUtils';
+import { RadialMenu } from './RadialMenu';
+import { RadialMenuProps } from './RadialMenuItem';
+
+import { CollectionStackingView } from '../collections/CollectionStackingView';
+import { RichTextField } from '../../../new_fields/RichTextField';
import { SchemaHeaderField } from '../../../new_fields/SchemaHeaderField';
-import { KeyphraseQueryView } from '../KeyphraseQueryView';
-
-library.add(fa.faBrain);
-library.add(fa.faEdit);
-library.add(fa.faTrash);
-library.add(fa.faShare);
-library.add(fa.faDownload);
-library.add(fa.faExpandArrowsAlt);
-library.add(fa.faCompressArrowsAlt);
-library.add(fa.faLayerGroup);
-library.add(fa.faExternalLinkAlt);
-library.add(fa.faAlignCenter);
-library.add(fa.faCaretSquareRight);
-library.add(fa.faSquare);
-library.add(fa.faConciergeBell);
-library.add(fa.faWindowRestore);
-library.add(fa.faFolder);
-library.add(fa.faMapPin);
-library.add(fa.faLink);
-library.add(fa.faFingerprint);
-library.add(fa.faCrosshairs);
-library.add(fa.faDesktop);
-library.add(fa.faUnlock);
-library.add(fa.faLock);
-library.add(fa.faLaptopCode, fa.faMale, fa.faCopy, fa.faHandPointRight, fa.faCompass, fa.faSnowflake, fa.faMicrophone);
+import { ClientRecommender } from '../../ClientRecommender';
+import { SearchUtil } from '../../util/SearchUtil';
library.add(fa.faEdit, fa.faTrash, fa.faShare, fa.faDownload, fa.faExpandArrowsAlt, fa.faCompressArrowsAlt, fa.faLayerGroup, fa.faExternalLinkAlt, fa.faAlignCenter, fa.faCaretSquareRight,
fa.faSquare, fa.faConciergeBell, fa.faWindowRestore, fa.faFolder, fa.faMapPin, fa.faLink, fa.faFingerprint, fa.faCrosshairs, fa.faDesktop, fa.faUnlock, fa.faLock, fa.faLaptopCode, fa.faMale,
@@ -81,23 +63,25 @@ export interface DocumentViewProps {
ContainingCollectionDoc: Opt<Doc>;
Document: Doc;
DataDoc?: Doc;
+ LibraryPath: Doc[];
fitToBox?: boolean;
onClick?: ScriptField;
+ onPointerDown?: ScriptField;
+ onPointerUp?: ScriptField;
+ dragDivName?: string;
addDocument?: (doc: Doc) => boolean;
removeDocument?: (doc: Doc) => boolean;
- moveDocument?: (doc: Doc, targetCollection: Doc, addDocument: (document: Doc) => boolean) => boolean;
+ moveDocument?: (doc: Doc, targetCollection: Doc | undefined, addDocument: (document: Doc) => boolean) => boolean;
ScreenToLocalTransform: () => Transform;
renderDepth: number;
- showOverlays?: (doc: Doc) => { title?: string, caption?: string };
ContentScaling: () => number;
- ruleProvider: Doc | undefined;
PanelWidth: () => number;
PanelHeight: () => number;
focus: (doc: Doc, willZoom: boolean, scale?: number, afterFocus?: () => boolean) => void;
- parentActive: () => boolean;
+ parentActive: (outsideReaction: boolean) => boolean;
whenActiveChanged: (isActive: boolean) => void;
bringToFront: (doc: Doc, sendToBack?: boolean) => void;
- addDocTab: (doc: Doc, dataDoc: Doc | undefined, where: string) => boolean;
+ addDocTab: (doc: Doc, dataDoc: Doc | undefined, where: string, libraryPath?: Doc[]) => boolean;
pinToPres: (document: Doc) => void;
zoomToScale: (scale: number) => void;
backgroundColor: (doc: Doc) => string | undefined;
@@ -106,9 +90,9 @@ export interface DocumentViewProps {
ChromeHeight?: () => number;
dontRegisterView?: boolean;
layoutKey?: string;
+ radialMenu?: String[];
}
-
@observer
export class DocumentView extends DocComponent<DocumentViewProps, Document>(Document) {
private _downX: number = 0;
@@ -120,17 +104,78 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
private _dropDisposer?: DragManager.DragDropDisposer;
private _showKPQuery: boolean = false;
private _queries: string = "";
+ private _gestureEventDisposer?: GestureUtils.GestureEventDisposer;
+ private _titleRef = React.createRef<EditableView>();
+ protected multiTouchDisposer?: InteractionUtils.MultiTouchEventDisposer;
+ private holdDisposer?: InteractionUtils.MultiTouchEventDisposer;
+
+ public get displayName() { return "DocumentView(" + this.props.Document.title + ")"; } // this makes mobx trace() statements more descriptive
public get ContentDiv() { return this._mainCont.current; }
- @computed get active() { return SelectionManager.IsSelected(this) || this.props.parentActive(); }
+ @computed get active() { return SelectionManager.IsSelected(this, true) || this.props.parentActive(true); }
@computed get topMost() { return this.props.renderDepth === 0; }
- @computed get nativeWidth() { return this.layoutDoc.nativeWidth || 0; }
- @computed get nativeHeight() { return this.layoutDoc.nativeHeight || 0; }
+ @computed get nativeWidth() { return this.layoutDoc._nativeWidth || 0; }
+ @computed get nativeHeight() { return this.layoutDoc._nativeHeight || 0; }
@computed get onClickHandler() { return this.props.onClick ? this.props.onClick : this.Document.onClick; }
+ @computed get onPointerDownHandler() { return this.props.onPointerDown ? this.props.onPointerDown : this.Document.onPointerDown; }
+ @computed get onPointerUpHandler() { return this.props.onPointerUp ? this.props.onPointerUp : this.Document.onPointerUp; }
+
+ private _firstX: number = -1;
+ private _firstY: number = -1;
+
+
+ handle1PointerHoldStart = (e: Event, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>): any => {
+ this.addHoldMoveListeners();
+ this.addHoldEndListeners();
+ this.onRadialMenu(e, me);
+ const pt = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true)[0];
+ this._firstX = pt.pageX;
+ this._firstY = pt.pageY;
+
+ }
+
+ handle1PointerHoldMove = (e: Event, me: InteractionUtils.MultiTouchEvent<TouchEvent>): void => {
+ const pt = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true)[0];
+ console.log(pt.pageX, this._firstX, pt.pageY, this._firstY);
+ if (this._firstX === -1 || this._firstY === -1) {
+ return;
+ }
+ if (Math.abs(pt.pageX - this._firstX) > 150 || Math.abs(pt.pageY - this._firstY) > 150) {
+ console.log("WHY");
+ this.handle1PointerHoldEnd(e, me);
+ }
+ }
+
+ handle1PointerHoldEnd = (e: Event, me: InteractionUtils.MultiTouchEvent<TouchEvent>): void => {
+ RadialMenu.Instance.closeMenu();
+ this._firstX = -1;
+ this._firstY = -1;
+ }
+
+ @action
+ onRadialMenu = (e: Event, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>): void => {
+ const pt = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true)[0];
+
+ RadialMenu.Instance.openMenu();
+
+ RadialMenu.Instance.addItem({ description: "Open Fields", event: () => this.props.addDocTab(Docs.Create.KVPDocument(this.props.Document, { width: 300, height: 300 }), undefined, "onRight"), icon: "layer-group", selected: -1 });
+ RadialMenu.Instance.addItem({ description: "Delete this document", event: () => this.props.ContainingCollectionView?.removeDocument(this.props.Document), icon: "trash", selected: -1 });
+ RadialMenu.Instance.addItem({ description: "Open in a new tab", event: () => this.props.addDocTab(this.props.Document, undefined, "onRight"), icon: "folder", selected: -1 });
+ RadialMenu.Instance.addItem({ description: "Pin to Presentation", event: () => this.props.pinToPres(this.props.Document), icon: "map-pin", selected: -1 });
+
+ RadialMenu.Instance.displayMenu(pt.pageX - 15, pt.pageY - 15);
+ if (!SelectionManager.IsSelected(this, true)) {
+ SelectionManager.SelectDoc(this, false);
+ }
+ e.stopPropagation();
+ }
@action
componentDidMount() {
- this._mainCont.current && (this._dropDisposer = DragManager.MakeDropTarget(this._mainCont.current, { handlers: { drop: this.drop.bind(this) } }));
+ this._mainCont.current && (this._dropDisposer = DragManager.MakeDropTarget(this._mainCont.current, this.drop.bind(this)));
+ this._mainCont.current && (this._gestureEventDisposer = GestureUtils.MakeGestureTarget(this._mainCont.current, this.onGesture.bind(this)));
+ this._mainCont.current && (this.multiTouchDisposer = InteractionUtils.MakeMultiTouchTarget(this._mainCont.current, this.onTouchStart.bind(this)));
+ // this._mainCont.current && (this.holdDisposer = InteractionUtils.MakeHoldTouchTarget(this._mainCont.current, this.handle1PointerHoldStart.bind(this)));
!this.props.dontRegisterView && DocumentManager.Instance.DocumentViews.push(this);
}
@@ -138,50 +183,98 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
@action
componentDidUpdate() {
this._dropDisposer && this._dropDisposer();
- this._mainCont.current && (this._dropDisposer = DragManager.MakeDropTarget(this._mainCont.current, { handlers: { drop: this.drop.bind(this) } }));
+ this._gestureEventDisposer && this._gestureEventDisposer();
+ this.multiTouchDisposer && this.multiTouchDisposer();
+ this.holdDisposer && this.holdDisposer();
+ this._mainCont.current && (this._dropDisposer = DragManager.MakeDropTarget(this._mainCont.current, this.drop.bind(this)));
+ this._mainCont.current && (this._gestureEventDisposer = GestureUtils.MakeGestureTarget(this._mainCont.current, this.onGesture.bind(this)));
+ this._mainCont.current && (this.multiTouchDisposer = InteractionUtils.MakeMultiTouchTarget(this._mainCont.current, this.onTouchStart.bind(this)));
+ // this._mainCont.current && (this.holdDisposer = InteractionUtils.MakeHoldTouchTarget(this._mainCont.current, this.handle1PointerHoldStart.bind(this)));
}
@action
componentWillUnmount() {
this._dropDisposer && this._dropDisposer();
+ this._gestureEventDisposer && this._gestureEventDisposer();
+ this.multiTouchDisposer && this.multiTouchDisposer();
+ this.holdDisposer && this.holdDisposer();
Doc.UnBrushDoc(this.props.Document);
!this.props.dontRegisterView && DocumentManager.Instance.DocumentViews.splice(DocumentManager.Instance.DocumentViews.indexOf(this), 1);
}
startDragging(x: number, y: number, dropAction: dropActionType, applyAsTemplate?: boolean) {
if (this._mainCont.current) {
- let dragData = new DragManager.DocumentDragData([this.props.Document]);
+ const dragData = new DragManager.DocumentDragData([this.props.Document]);
const [left, top] = this.props.ScreenToLocalTransform().scale(this.props.ContentScaling()).inverse().transformPoint(0, 0);
dragData.offset = this.props.ScreenToLocalTransform().scale(this.props.ContentScaling()).transformDirection(x - left, y - top);
dragData.dropAction = dropAction;
- dragData.moveDocument = this.Document.onDragStart ? undefined : this.props.moveDocument;
+ dragData.moveDocument = this.props.moveDocument;// this.Document.onDragStart ? undefined : this.props.moveDocument;
dragData.applyAsTemplate = applyAsTemplate;
- DragManager.StartDocumentDrag([this._mainCont.current], dragData, x, y, {
- handlers: {
- dragComplete: action((emptyFunction))
- },
- hideSource: !dropAction && !this.Document.onDragStart
- });
+ dragData.dragDivName = this.props.dragDivName;
+ DragManager.StartDocumentDrag([this._mainCont.current], dragData, x, y, { hideSource: !dropAction && !this.Document.onDragStart });
+ }
+ }
+
+ public static FloatDoc(topDocView: DocumentView, x: number, y: number) {
+ const topDoc = topDocView.props.Document;
+ const de = new DragManager.DocumentDragData([topDoc]);
+ de.dragDivName = topDocView.props.dragDivName;
+ de.moveDocument = topDocView.props.moveDocument;
+ undoBatch(action(() => topDoc.z = topDoc.z ? 0 : 1))();
+ setTimeout(() => {
+ const newDocView = DocumentManager.Instance.getDocumentView(topDoc);
+ if (newDocView) {
+ const contentDiv = newDocView.ContentDiv!;
+ const xf = contentDiv.getBoundingClientRect();
+ DragManager.StartDocumentDrag([contentDiv], de, x, y, { offsetX: x - xf.left, offsetY: y - xf.top, hideSource: true });
+ }
+ }, 0);
+ }
+
+ onKeyDown = (e: React.KeyboardEvent) => {
+ if (e.altKey && !(e.nativeEvent as any).StopPropagationForReal) {
+ (e.nativeEvent as any).StopPropagationForReal = true; // e.stopPropagation() doesn't seem to work...
+ e.stopPropagation();
+ e.preventDefault();
+ if (e.key === "†" || e.key === "t") {
+ if (!StrCast(this.layoutDoc.showTitle)) this.layoutDoc.showTitle = "title";
+ if (!this._titleRef.current) setTimeout(() => this._titleRef.current?.setIsFocused(true), 0);
+ else if (!this._titleRef.current.setIsFocused(true)) { // if focus didn't change, focus on interior text...
+ {
+ this._titleRef.current?.setIsFocused(false);
+ const any = (this._mainCont.current?.getElementsByClassName("ProseMirror")?.[0] as any);
+ any.keeplocation = true;
+ any?.focus();
+ }
+ }
+ } else if (e.key === "f") {
+ const ex = (e.nativeEvent.target! as any).getBoundingClientRect().left;
+ const ey = (e.nativeEvent.target! as any).getBoundingClientRect().top;
+ DocumentView.FloatDoc(this, ex, ey);
+ }
}
}
- onClick = async (e: React.MouseEvent) => {
+ onClick = async (e: React.MouseEvent | React.PointerEvent) => {
if (!e.nativeEvent.cancelBubble && !this.Document.ignoreClick && CurrentUserUtils.MainDocId !== this.props.Document[Id] &&
(Math.abs(e.clientX - this._downX) < Utils.DRAG_THRESHOLD && Math.abs(e.clientY - this._downY) < Utils.DRAG_THRESHOLD)) {
e.stopPropagation();
let preventDefault = true;
- if (this._doubleTap && this.props.renderDepth && !this.onClickHandler ?.script) { // disable double-click to show full screen for things that have an on click behavior since clicking them twice can be misinterpreted as a double click
- let fullScreenAlias = Doc.MakeAlias(this.props.Document);
- if (StrCast(fullScreenAlias.layoutKey) !== "layoutCustom" && fullScreenAlias.layoutCustom !== undefined) {
- fullScreenAlias.layoutKey = "layoutCustom";
+ if (this._doubleTap && this.props.renderDepth && !this.onClickHandler?.script) { // disable double-click to show full screen for things that have an on click behavior since clicking them twice can be misinterpreted as a double click
+ const fullScreenAlias = Doc.MakeAlias(this.props.Document);
+ if (StrCast(fullScreenAlias.layoutKey) !== "layout_custom" && fullScreenAlias.layout_custom !== undefined) {
+ fullScreenAlias.layoutKey = "layout_custom";
}
this.props.addDocTab(fullScreenAlias, undefined, "inTab");
SelectionManager.DeselectAll();
Doc.UnBrushDoc(this.props.Document);
} else if (this.onClickHandler && this.onClickHandler.script) {
- this.onClickHandler.script.run({ this: this.Document.isTemplateField && this.props.DataDoc ? this.props.DataDoc : this.props.Document }, console.log);
+ this.onClickHandler.script.run({ this: this.Document.isTemplateForField && this.props.DataDoc ? this.props.DataDoc : this.props.Document, containingCollection: this.props.ContainingCollectionDoc }, console.log);
} else if (this.Document.type === DocumentType.BUTTON) {
ScriptBox.EditButtonScript("On Button Clicked ...", this.props.Document, "onClick", e.clientX, e.clientY);
+ } else if (this.props.Document.isButton === "Selector") { // this should be moved to an OnClick script
+ FormattedTextBoxComment.Hide();
+ this.Document.links?.[0] instanceof Doc && (Doc.UserDoc().SelectedDocs = new List([Doc.LinkOtherAnchor(this.Document.links[0], this.props.Document)]));
} else if (this.Document.isButton) {
SelectionManager.SelectDoc(this, e.ctrlKey); // don't think this should happen if a button action is actually triggered.
this.buttonClick(e.altKey, e.ctrlKey);
@@ -194,9 +287,9 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
}
buttonClick = async (altKey: boolean, ctrlKey: boolean) => {
- let maximizedDocs = await DocListCastAsync(this.Document.maximizedDocs);
- let summarizedDocs = await DocListCastAsync(this.Document.summarizedDocs);
- let linkDocs = LinkManager.Instance.getAllRelatedLinks(this.props.Document);
+ const maximizedDocs = await DocListCastAsync(this.Document.maximizedDocs);
+ const summarizedDocs = await DocListCastAsync(this.Document.summarizedDocs);
+ const linkDocs = DocListCast(this.props.Document.links);
let expandedDocs: Doc[] = [];
expandedDocs = maximizedDocs ? [...maximizedDocs, ...expandedDocs] : expandedDocs;
expandedDocs = summarizedDocs ? [...summarizedDocs, ...expandedDocs] : expandedDocs;
@@ -207,7 +300,7 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
maxLocation = this.Document.maximizeLocation = (!ctrlKey ? !altKey ? maxLocation : (maxLocation !== "inPlace" ? "inPlace" : "onRight") : (maxLocation !== "inPlace" ? "inPlace" : "inTab"));
if (maxLocation === "inPlace") {
expandedDocs.forEach(maxDoc => this.props.addDocument && this.props.addDocument(maxDoc));
- let scrpt = this.props.ScreenToLocalTransform().scale(this.props.ContentScaling()).inverse().transformPoint(NumCast(this.layoutDoc.width) / 2, NumCast(this.layoutDoc.height) / 2);
+ const scrpt = this.props.ScreenToLocalTransform().scale(this.props.ContentScaling()).inverse().transformPoint(NumCast(this.layoutDoc.width) / 2, NumCast(this.layoutDoc.height) / 2);
DocumentManager.Instance.animateBetweenPoint(scrpt, expandedDocs);
} else {
expandedDocs.forEach(maxDoc => (!this.props.addDocTab(maxDoc, undefined, "close") && this.props.addDocTab(maxDoc, undefined, maxLocation)));
@@ -221,91 +314,255 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
}
}
+ handle1PointerDown = (e: React.TouchEvent, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>) => {
+ if (this.Document.onPointerDown) return;
+ const touch = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true)[0];
+ console.log("down");
+ if (touch) {
+ this._downX = touch.clientX;
+ this._downY = touch.clientY;
+ if (!e.nativeEvent.cancelBubble) {
+ this._hitTemplateDrag = false;
+ for (let element = (e.target as any); element && !this._hitTemplateDrag; element = element.parentElement) {
+ if (element.className && element.className.toString() === "collectionViewBaseChrome-collapse") {
+ this._hitTemplateDrag = true;
+ }
+ }
+ if ((this.active || this.Document.onDragStart || this.Document.onClick) && !e.ctrlKey && !this.Document.lockedPosition && !this.Document.inOverlay) e.stopPropagation();
+ this.removeMoveListeners();
+ this.addMoveListeners();
+ this.removeEndListeners();
+ this.addEndListeners();
+ e.stopPropagation();
+ }
+ }
+ }
+
+ handle1PointerMove = (e: TouchEvent, me: InteractionUtils.MultiTouchEvent<TouchEvent>) => {
+ if ((e as any).formattedHandled) { e.stopPropagation; return; }
+ if (e.cancelBubble && this.active) {
+ this.removeMoveListeners();
+ }
+ else if (!e.cancelBubble && (SelectionManager.IsSelected(this, true) || this.props.parentActive(true) || this.Document.onDragStart || this.Document.onClick) && !this.Document.lockedPosition && !this.Document.inOverlay) {
+ const touch = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true)[0];
+ if (Math.abs(this._downX - touch.clientX) > 3 || Math.abs(this._downY - touch.clientY) > 3) {
+ if (!e.altKey && (!this.topMost || this.Document.onDragStart || this.Document.onClick)) {
+ this.cleanUpInteractions();
+ this.startDragging(this._downX, this._downY, this.Document._dropAction ? this.Document._dropAction as any : e.ctrlKey || e.altKey ? "alias" : undefined, this._hitTemplateDrag);
+ }
+ }
+ e.stopPropagation(); // doesn't actually stop propagation since all our listeners are listening to events on 'document' however it does mark the event as cancelBubble=true which we test for in the move event handlers
+ e.preventDefault();
+
+ }
+ }
+
+ handle2PointersDown = (e: React.TouchEvent, me: InteractionUtils.MultiTouchEvent<React.TouchEvent>) => {
+ if (!e.nativeEvent.cancelBubble && !this.isSelected()) {
+ e.stopPropagation();
+ e.preventDefault();
+
+ this.removeMoveListeners();
+ this.addMoveListeners();
+ this.removeEndListeners();
+ this.addEndListeners();
+ }
+ }
+
+ @action
+ handle2PointersMove = (e: TouchEvent, me: InteractionUtils.MultiTouchEvent<TouchEvent>) => {
+ const myTouches = InteractionUtils.GetMyTargetTouches(me, this.prevPoints, true);
+ const pt1 = myTouches[0];
+ const pt2 = myTouches[1];
+ const oldPoint1 = this.prevPoints.get(pt1.identifier);
+ const oldPoint2 = this.prevPoints.get(pt2.identifier);
+ const pinching = InteractionUtils.Pinning(pt1, pt2, oldPoint1!, oldPoint2!);
+ if (pinching !== 0 && oldPoint1 && oldPoint2) {
+ // let dX = (Math.min(pt1.clientX, pt2.clientX) - Math.min(oldPoint1.clientX, oldPoint2.clientX));
+ // let dY = (Math.min(pt1.clientY, pt2.clientY) - Math.min(oldPoint1.clientY, oldPoint2.clientY));
+ // let dX = Math.sign(Math.abs(pt1.clientX - oldPoint1.clientX) - Math.abs(pt2.clientX - oldPoint2.clientX));
+ // let dY = Math.sign(Math.abs(pt1.clientY - oldPoint1.clientY) - Math.abs(pt2.clientY - oldPoint2.clientY));
+ // let dW = -dX;
+ // let dH = -dY;
+ const dW = (Math.abs(pt1.clientX - pt2.clientX) - Math.abs(oldPoint1.clientX - oldPoint2.clientX));
+ const dH = (Math.abs(pt1.clientY - pt2.clientY) - Math.abs(oldPoint1.clientY - oldPoint2.clientY));
+ const dX = -1 * Math.sign(dW);
+ const dY = -1 * Math.sign(dH);
+
+ if (dX !== 0 || dY !== 0 || dW !== 0 || dH !== 0) {
+ const doc = PositionDocument(this.props.Document);
+ const layoutDoc = PositionDocument(Doc.Layout(this.props.Document));
+ let nwidth = layoutDoc._nativeWidth || 0;
+ let nheight = layoutDoc._nativeHeight || 0;
+ const width = (layoutDoc._width || 0);
+ const height = (layoutDoc._height || (nheight / nwidth * width));
+ const scale = this.props.ScreenToLocalTransform().Scale * this.props.ContentScaling();
+ const actualdW = Math.max(width + (dW * scale), 20);
+ const actualdH = Math.max(height + (dH * scale), 20);
+ doc.x = (doc.x || 0) + dX * (actualdW - width);
+ doc.y = (doc.y || 0) + dY * (actualdH - height);
+ const fixedAspect = e.ctrlKey || (!layoutDoc.ignoreAspect && nwidth && nheight);
+ if (fixedAspect && e.ctrlKey && layoutDoc.ignoreAspect) {
+ layoutDoc.ignoreAspect = false;
+
+ layoutDoc._nativeWidth = nwidth = layoutDoc._width || 0;
+ layoutDoc._nativeHeight = nheight = layoutDoc._height || 0;
+ }
+ if (fixedAspect && (!nwidth || !nheight)) {
+ layoutDoc._nativeWidth = nwidth = layoutDoc._width || 0;
+ layoutDoc._nativeHeight = nheight = layoutDoc._height || 0;
+ }
+ if (nwidth > 0 && nheight > 0 && !layoutDoc.ignoreAspect) {
+ if (Math.abs(dW) > Math.abs(dH)) {
+ if (!fixedAspect) {
+ layoutDoc._nativeWidth = actualdW / (layoutDoc._width || 1) * (layoutDoc._nativeWidth || 0);
+ }
+ layoutDoc._width = actualdW;
+ if (fixedAspect && !layoutDoc._fitWidth) layoutDoc._height = nheight / nwidth * layoutDoc._width;
+ else layoutDoc._height = actualdH;
+ }
+ else {
+ if (!fixedAspect) {
+ layoutDoc._nativeHeight = actualdH / (layoutDoc._height || 1) * (doc._nativeHeight || 0);
+ }
+ layoutDoc._height = actualdH;
+ if (fixedAspect && !layoutDoc._fitWidth) layoutDoc._width = nwidth / nheight * layoutDoc._height;
+ else layoutDoc._width = actualdW;
+ }
+ } else {
+ dW && (layoutDoc._width = actualdW);
+ dH && (layoutDoc._height = actualdH);
+ dH && layoutDoc._autoHeight && (layoutDoc._autoHeight = false);
+ }
+ }
+ e.stopPropagation();
+ e.preventDefault();
+ }
+ }
+
onPointerDown = (e: React.PointerEvent): void => {
- if (e.nativeEvent.cancelBubble && e.button === 0) return;
- this._downX = e.clientX;
- this._downY = e.clientY;
- this._hitTemplateDrag = false;
- // this whole section needs to move somewhere else. We're trying to initiate a special "template" drag where
- // this document is the template and we apply it to whatever we drop it on.
- for (let element = (e.target as any); element && !this._hitTemplateDrag; element = element.parentElement) {
- if (element.className && element.className.toString() === "collectionViewBaseChrome-collapse") {
- this._hitTemplateDrag = true;
+ if (this.onPointerDownHandler && this.onPointerDownHandler.script) {
+ this.onPointerDownHandler.script.run({ this: this.Document.isTemplateForField && this.props.DataDoc ? this.props.DataDoc : this.props.Document }, console.log);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ document.addEventListener("pointerup", this.onPointerUp);
+ return;
+ }
+ // console.log(e.button)
+ // console.log(e.nativeEvent)
+ // continue if the event hasn't been canceled AND we are using a moues or this is has an onClick or onDragStart function (meaning it is a button document)
+ if (!(InteractionUtils.IsType(e, InteractionUtils.MOUSETYPE) || InkingControl.Instance.selectedTool === InkTool.Highlighter || InkingControl.Instance.selectedTool === InkTool.Pen)) {
+ if (!InteractionUtils.IsType(e, InteractionUtils.PENTYPE)) {
+ e.stopPropagation();
}
+ return;
+ }
+ if (!e.nativeEvent.cancelBubble || this.Document.onClick || this.Document.onDragStart) {
+ this._downX = e.clientX;
+ this._downY = e.clientY;
+ this._hitTemplateDrag = false;
+ // this whole section needs to move somewhere else. We're trying to initiate a special "template" drag where
+ // this document is the template and we apply it to whatever we drop it on.
+ for (let element = (e.target as any); element && !this._hitTemplateDrag; element = element.parentElement) {
+ if (element.className && element.className.toString() === "collectionViewBaseChrome-collapse") {
+ this._hitTemplateDrag = true;
+ }
+ }
+ if ((this.active || this.Document.onDragStart || this.Document.onClick) && !e.ctrlKey && (e.button === 0 || InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE)) && !this.Document.lockedPosition && !this.Document.inOverlay) e.stopPropagation(); // events stop at the lowest document that is active. if right dragging, we let it go through though to allow for context menu clicks. PointerMove callbacks should remove themselves if the move event gets stopPropagated by a lower-level handler (e.g, marquee drag);
+ document.removeEventListener("pointermove", this.onPointerMove);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ document.addEventListener("pointermove", this.onPointerMove);
+ document.addEventListener("pointerup", this.onPointerUp);
+
+ if ((e.nativeEvent as any).formattedHandled) { e.stopPropagation(); }
}
- if ((this.active || this.Document.onDragStart || this.Document.onClick) && !e.ctrlKey && e.button === 0 && !this.Document.lockedPosition && !this.Document.inOverlay) e.stopPropagation(); // events stop at the lowest document that is active. if right dragging, we let it go through though to allow for context menu clicks. PointerMove callbacks should remove themselves if the move event gets stopPropagated by a lower-level handler (e.g, marquee drag);
- document.removeEventListener("pointermove", this.onPointerMove);
- document.removeEventListener("pointerup", this.onPointerUp);
- document.addEventListener("pointermove", this.onPointerMove);
- document.addEventListener("pointerup", this.onPointerUp);
- if ((e.nativeEvent as any).formattedHandled) { e.stopPropagation(); }
}
+
onPointerMove = (e: PointerEvent): void => {
+
if ((e as any).formattedHandled) { e.stopPropagation(); return; }
+ if ((InteractionUtils.IsType(e, InteractionUtils.PENTYPE) || InkingControl.Instance.selectedTool === InkTool.Highlighter || InkingControl.Instance.selectedTool === InkTool.Pen)) return;
if (e.cancelBubble && this.active) {
document.removeEventListener("pointermove", this.onPointerMove); // stop listening to pointerMove if something else has stopPropagated it (e.g., the MarqueeView)
}
- else if (!e.cancelBubble && (SelectionManager.IsSelected(this) || this.props.parentActive() || this.Document.onDragStart || this.Document.onClick) && !this.Document.lockedPosition && !this.Document.inOverlay) {
+ else if (!e.cancelBubble && (SelectionManager.IsSelected(this, true) || this.props.parentActive(true) || this.Document.onDragStart || this.Document.onClick) && !this.Document.lockedPosition && !this.Document.inOverlay) {
if (Math.abs(this._downX - e.clientX) > 3 || Math.abs(this._downY - e.clientY) > 3) {
- if (!e.altKey && (!this.topMost || this.Document.onDragStart || this.Document.onClick) && e.buttons === 1) {
+ if (!e.altKey && (!this.topMost || this.Document.onDragStart || this.Document.onClick) && (e.buttons === 1 || InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE))) {
document.removeEventListener("pointermove", this.onPointerMove);
document.removeEventListener("pointerup", this.onPointerUp);
- this.startDragging(this._downX, this._downY, this.Document.dropAction ? this.Document.dropAction as any : e.ctrlKey || e.altKey ? "alias" : undefined, this._hitTemplateDrag);
+ this.startDragging(this._downX, this._downY, this.Document._dropAction ? this.Document._dropAction as any : e.ctrlKey || e.altKey ? "alias" : undefined, this._hitTemplateDrag);
}
}
e.stopPropagation(); // doesn't actually stop propagation since all our listeners are listening to events on 'document' however it does mark the event as cancelBubble=true which we test for in the move event handlers
e.preventDefault();
}
}
+
onPointerUp = (e: PointerEvent): void => {
+ if (this.onPointerUpHandler && this.onPointerUpHandler.script && !InteractionUtils.IsType(e, InteractionUtils.PENTYPE)) {
+ this.onPointerUpHandler.script.run({ this: this.Document.isTemplateForField && this.props.DataDoc ? this.props.DataDoc : this.props.Document }, console.log);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ return;
+ }
document.removeEventListener("pointermove", this.onPointerMove);
document.removeEventListener("pointerup", this.onPointerUp);
this._doubleTap = (Date.now() - this._lastTap < 300 && e.button === 0 && Math.abs(e.clientX - this._downX) < 2 && Math.abs(e.clientY - this._downY) < 2);
this._lastTap = Date.now();
}
+ onGesture = (e: Event, ge: GestureUtils.GestureEvent) => {
+ switch (ge.gesture) {
+ case GestureUtils.Gestures.Line:
+ ge.callbackFn && ge.callbackFn(this.props.Document);
+ e.stopPropagation();
+ break;
+ }
+ }
+
@undoBatch
deleteClicked = (): void => { SelectionManager.DeselectAll(); this.props.removeDocument && this.props.removeDocument(this.props.Document); }
- static makeNativeViewClicked = (doc: Doc) => {
- undoBatch(() => doc.layoutKey = "layout")();
+ static makeNativeViewClicked = (doc: Doc, prevLayout: string) => {
+ undoBatch(() => {
+ if (StrCast(doc.title).endsWith("_" + prevLayout)) doc.title = StrCast(doc.title).replace("_" + prevLayout, "");
+ doc.layoutKey = "layout";
+ })();
}
- static makeCustomViewClicked = (doc: Doc, dataDoc: Opt<Doc>) => {
+ static makeCustomViewClicked = (doc: Doc, dataDoc: Opt<Doc>, creator: (documents: Array<Doc>, options: DocumentOptions, id?: string) => Doc, name: string = "custom", docLayoutTemplate?: Doc) => {
const batch = UndoManager.StartBatch("CustomViewClicked");
- if (doc.layoutCustom === undefined) {
- const width = NumCast(doc.width);
- const height = NumCast(doc.height);
- const options = { title: "data", width, x: -width / 2, y: - height / 2, };
-
- let fieldTemplate: Doc;
- switch (doc.type) {
- case DocumentType.TEXT:
- fieldTemplate = Docs.Create.TextDocument(options);
- break;
- case DocumentType.PDF:
- fieldTemplate = Docs.Create.PdfDocument("http://www.msn.com", options);
- break;
- case DocumentType.VID:
- fieldTemplate = Docs.Create.VideoDocument("http://www.cs.brown.edu", options);
- break;
- case DocumentType.AUDIO:
- fieldTemplate = Docs.Create.AudioDocument("http://www.cs.brown.edu", options);
- break;
- default:
- fieldTemplate = Docs.Create.ImageDocument("http://www.cs.brown.edu", options);
+ const customName = "layout_" + name;
+ if (!StrCast(doc.title).endsWith(name)) doc.title = doc.title + "_" + name;
+ if (doc[customName] === undefined) {
+ const _width = NumCast(doc._width);
+ const _height = NumCast(doc._height);
+ const options = { title: "data", _width, x: -_width / 2, y: - _height / 2, };
+
+ const field = doc.data;
+ let fieldTemplate: Opt<Doc>;
+ if (field instanceof RichTextField || typeof (field) === "string") {
+ fieldTemplate = Docs.Create.TextDocument("", options);
+ } else if (field instanceof PdfField) {
+ fieldTemplate = Docs.Create.PdfDocument("http://www.msn.com", options);
+ } else if (field instanceof VideoField) {
+ fieldTemplate = Docs.Create.VideoDocument("http://www.cs.brown.edu", options);
+ } else if (field instanceof AudioField) {
+ fieldTemplate = Docs.Create.AudioDocument("http://www.cs.brown.edu", options);
+ } else if (field instanceof ImageField) {
+ fieldTemplate = Docs.Create.ImageDocument("http://www.cs.brown.edu", options);
}
- fieldTemplate.backgroundColor = doc.backgroundColor;
- fieldTemplate.heading = 1;
- fieldTemplate.autoHeight = true;
+ if (fieldTemplate) {
+ fieldTemplate.backgroundColor = doc.backgroundColor;
+ fieldTemplate.heading = 1;
+ fieldTemplate._autoHeight = true;
+ }
- let docTemplate = Docs.Create.FreeformDocument([fieldTemplate], { title: doc.title + "_layout", width: width + 20, height: Math.max(100, height + 45) });
+ const docTemplate = docLayoutTemplate || creator(fieldTemplate ? [fieldTemplate] : [], { title: customName + "(" + doc.title + ")", isTemplateDoc: true, _width: _width + 20, _height: Math.max(100, _height + 45) });
- Doc.MakeMetadataFieldTemplate(fieldTemplate, Doc.GetProto(docTemplate), true);
- Doc.ApplyTemplateTo(docTemplate, dataDoc || doc, "layoutCustom", undefined);
+ fieldTemplate && Doc.MakeMetadataFieldTemplate(fieldTemplate, Doc.GetProto(docTemplate));
+ Doc.ApplyTemplateTo(docTemplate, dataDoc || doc, customName, undefined);
} else {
- doc.layoutKey = "layoutCustom";
+ doc.layoutKey = customName;
}
batch.end();
}
@@ -322,34 +579,46 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
}
@undoBatch
+ makeSelBtnClicked = (): void => {
+ if (this.Document.isButton || this.Document.onClick || this.Document.ignoreClick) {
+ this.Document.isButton = false;
+ this.Document.ignoreClick = false;
+ this.Document.onClick = undefined;
+ } else {
+ this.props.Document.isButton = "Selector";
+ }
+ }
+
+ @undoBatch
@action
drop = async (e: Event, de: DragManager.DropEvent) => {
- if (de.data instanceof DragManager.AnnotationDragData) {
+ if (de.complete.annoDragData) {
/// this whole section for handling PDF annotations looks weird. Need to rethink this to make it cleaner
e.stopPropagation();
- (de.data as any).linkedToDoc = true;
+ de.complete.annoDragData.linkedToDoc = true;
- DocUtils.MakeLink({ doc: de.data.annotationDocument }, { doc: this.props.Document, ctx: this.props.ContainingCollectionDoc }, `Link from ${StrCast(de.data.annotationDocument.title)}`);
+ DocUtils.MakeLink({ doc: de.complete.annoDragData.annotationDocument }, { doc: this.props.Document, ctx: this.props.ContainingCollectionDoc },
+ `Link from ${StrCast(de.complete.annoDragData.annotationDocument.title)}`);
}
- if (de.data instanceof DragManager.DocumentDragData && de.data.applyAsTemplate) {
- Doc.ApplyTemplateTo(de.data.draggedDocuments[0], this.props.Document, "layoutCustom");
+ if (de.complete.docDragData && de.complete.docDragData.applyAsTemplate) {
+ Doc.ApplyTemplateTo(de.complete.docDragData.draggedDocuments[0], this.props.Document, "layout_custom");
e.stopPropagation();
}
- if (de.data instanceof DragManager.LinkDragData) {
+ if (de.complete.linkDragData) {
e.stopPropagation();
// const docs = await SearchUtil.Search(`data_l:"${destDoc[Id]}"`, true);
// const views = docs.map(d => DocumentManager.Instance.getDocumentView(d)).filter(d => d).map(d => d as DocumentView);
- de.data.linkSourceDocument !== this.props.Document &&
- (de.data.linkDocument = DocUtils.MakeLink({ doc: de.data.linkSourceDocument }, { doc: this.props.Document, ctx: this.props.ContainingCollectionDoc }, "in-text link being created")); // TODODO this is where in text links get passed
+ de.complete.linkDragData.linkSourceDocument !== this.props.Document &&
+ (de.complete.linkDragData.linkDocument = DocUtils.MakeLink({ doc: de.complete.linkDragData.linkSourceDocument }, { doc: this.props.Document, ctx: this.props.ContainingCollectionDoc }, "in-text link being created")); // TODODO this is where in text links get passed
}
}
@action
onDrop = (e: React.DragEvent) => {
- let text = e.dataTransfer.getData("text/plain");
+ const text = e.dataTransfer.getData("text/plain");
if (!e.isDefaultPrevented() && text && text.startsWith("<div")) {
- let oldLayout = this.Document.layout || "";
- let layout = text.replace("{layout}", oldLayout);
+ const oldLayout = this.Document.layout || "";
+ const layout = text.replace("{layout}", oldLayout);
this.Document.layout = layout;
e.stopPropagation();
e.preventDefault();
@@ -359,22 +628,22 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
@undoBatch
@action
freezeNativeDimensions = (): void => {
- this.layoutDoc.autoHeight = this.layoutDoc.autoHeight = false;
+ this.layoutDoc._autoHeight = false;
this.layoutDoc.ignoreAspect = !this.layoutDoc.ignoreAspect;
- if (!this.layoutDoc.ignoreAspect && !this.layoutDoc.nativeWidth) {
- this.layoutDoc.nativeWidth = this.props.PanelWidth();
- this.layoutDoc.nativeHeight = this.props.PanelHeight();
+ if (!this.layoutDoc.ignoreAspect && !this.layoutDoc._nativeWidth) {
+ this.layoutDoc._nativeWidth = this.props.PanelWidth();
+ this.layoutDoc._nativeHeight = this.props.PanelHeight();
}
}
@undoBatch
@action
makeIntoPortal = async () => {
- let anchors = await Promise.all(DocListCast(this.Document.links).map(async (d: Doc) => Cast(d.anchor2, Doc)));
+ const anchors = await Promise.all(DocListCast(this.Document.links).map(async (d: Doc) => Cast(d.anchor2, Doc)));
if (!anchors.find(anchor2 => anchor2 && anchor2.title === this.Document.title + ".portal" ? true : false)) {
- let portalID = (this.Document.title + ".portal").replace(/^-/, "").replace(/\([0-9]*\)$/, "");
+ const portalID = (this.Document.title + ".portal").replace(/^-/, "").replace(/\([0-9]*\)$/, "");
DocServer.GetRefField(portalID).then(existingPortal => {
- let portal = existingPortal instanceof Doc ? existingPortal : Docs.Create.FreeformDocument([], { width: (this.layoutDoc.width || 0) + 10, height: this.layoutDoc.height || 0, title: portalID });
+ const portal = existingPortal instanceof Doc ? existingPortal : Docs.Create.FreeformDocument([], { _width: (this.layoutDoc._width || 0) + 10, _height: this.layoutDoc._height || 0, title: portalID });
DocUtils.MakeLink({ doc: this.props.Document, ctx: this.props.ContainingCollectionDoc }, { doc: portal }, portalID, "portal link");
this.Document.isButton = true;
});
@@ -383,13 +652,25 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
@undoBatch
@action
- setCustomView = (custom: boolean): void => {
- if (this.props.ContainingCollectionView ?.props.DataDoc || this.props.ContainingCollectionView ?.props.Document.isTemplateDoc) {
- Doc.MakeMetadataFieldTemplate(this.props.Document, this.props.ContainingCollectionView.props.Document);
- } else {
- custom ? DocumentView.makeCustomViewClicked(this.props.Document, this.props.DataDoc) : DocumentView.makeNativeViewClicked(this.props.Document);
+ setCustomView =
+ (custom: boolean, layout: string): void => {
+ if (this.props.ContainingCollectionView?.props.DataDoc || this.props.ContainingCollectionView?.props.Document.isTemplateDoc) {
+ Doc.MakeMetadataFieldTemplate(this.props.Document, this.props.ContainingCollectionView.props.Document);
+ } else if (custom) {
+ DocumentView.makeNativeViewClicked(this.props.Document, StrCast(this.props.Document.layoutKey).split("_")[1]);
+
+ let foundLayout: Opt<Doc> = undefined;
+ DocListCast(Cast(CurrentUserUtils.UserDocument.expandingButtons, Doc, null)?.data)?.map(btnDoc => {
+ if (StrCast(Cast(btnDoc?.dragFactory, Doc, null)?.title) === layout) {
+ foundLayout = btnDoc.dragFactory as Doc;
+ }
+ })
+ DocumentView.
+ makeCustomViewClicked(this.props.Document, this.props.DataDoc, Docs.Create.StackingDocument, layout, foundLayout);
+ } else {
+ DocumentView.makeNativeViewClicked(this.props.Document, StrCast(this.props.Document.layoutKey).split("_")[1]);
+ }
}
- }
@undoBatch
@action
@@ -410,19 +691,13 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
this.Document.lockedTransform = this.Document.lockedTransform ? undefined : true;
}
- listen = async () => {
- Doc.GetProto(this.props.Document).transcript = await DictationManager.Controls.listen({
- continuous: { indefinite: true },
- interimHandler: (results: string) => {
- DictationOverlay.Instance.dictationSuccess = true;
- DictationOverlay.Instance.dictatedPhrase = results;
- DictationOverlay.Instance.isListening = { interim: true };
- }
- });
- }
-
@action
onContextMenu = async (e: React.MouseEvent): Promise<void> => {
+ // the touch onContextMenu is button 0, the pointer onContextMenu is button 2
+ if (e.button === 0 && !e.ctrlKey) {
+ e.preventDefault();
+ return;
+ }
e.persist();
e.stopPropagation();
if (Math.abs(this._downX - e.clientX) > 3 || Math.abs(this._downY - e.clientY) > 3 ||
@@ -433,76 +708,67 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
e.preventDefault();
const cm = ContextMenu.Instance;
- let subitems: ContextMenuProps[] = [];
- subitems.push({ description: "Open Full Screen", event: () => CollectionDockingView.Instance && CollectionDockingView.Instance.OpenFullScreen(this), icon: "desktop" });
- subitems.push({ description: "Open Tab ", event: () => this.props.addDocTab(this.props.Document, this.props.DataDoc, "inTab"), icon: "folder" });
- subitems.push({ description: "Open Right ", event: () => this.props.addDocTab(this.props.Document, this.props.DataDoc, "onRight"), icon: "caret-square-right" });
+ const subitems: ContextMenuProps[] = [];
+ subitems.push({ description: "Open Full Screen", event: () => CollectionDockingView.Instance && CollectionDockingView.Instance.OpenFullScreen(this, this.props.LibraryPath), icon: "desktop" });
+ subitems.push({ description: "Open Tab ", event: () => this.props.addDocTab(this.props.Document, this.props.DataDoc, "inTab", this.props.LibraryPath), icon: "folder" });
+ subitems.push({ description: "Open Right ", event: () => this.props.addDocTab(this.props.Document, this.props.DataDoc, "onRight", this.props.LibraryPath), icon: "caret-square-right" });
subitems.push({ description: "Open Alias Tab ", event: () => this.props.addDocTab(Doc.MakeAlias(this.props.Document), this.props.DataDoc, "inTab"), icon: "folder" });
subitems.push({ description: "Open Alias Right", event: () => this.props.addDocTab(Doc.MakeAlias(this.props.Document), this.props.DataDoc, "onRight"), icon: "caret-square-right" });
- subitems.push({ description: "Open Fields ", event: () => this.props.addDocTab(Docs.Create.KVPDocument(this.props.Document, { width: 300, height: 300 }), undefined, "onRight"), icon: "layer-group" });
+ subitems.push({ description: "Open Fields ", event: () => this.props.addDocTab(Docs.Create.KVPDocument(this.props.Document, { _width: 300, _height: 300 }), undefined, "onRight"), icon: "layer-group" });
cm.addItem({ description: "Open...", subitems: subitems, icon: "external-link-alt" });
- if (Cast(this.props.Document.data, ImageField)) {
- cm.addItem({ description: "Export to Google Photos", event: () => GooglePhotos.Transactions.UploadImages([this.props.Document]), icon: "caret-square-right" });
- }
- if (Cast(Doc.GetProto(this.props.Document).data, listSpec(Doc))) {
- cm.addItem({ description: "Export to Google Photos Album", event: () => GooglePhotos.Export.CollectionToAlbum({ collection: this.props.Document }).then(console.log), icon: "caret-square-right" });
- cm.addItem({ description: "Tag Child Images via Google Photos", event: () => GooglePhotos.Query.TagChildImages(this.props.Document), icon: "caret-square-right" });
- cm.addItem({ description: "Write Back Link to Album", event: () => GooglePhotos.Transactions.AddTextEnrichment(this.props.Document), icon: "caret-square-right" });
- }
- let existingOnClick = ContextMenu.Instance.findByDescription("OnClick...");
- let onClicks: ContextMenuProps[] = existingOnClick && "subitems" in existingOnClick ? existingOnClick.subitems : [];
+ const existingOnClick = ContextMenu.Instance.findByDescription("OnClick...");
+ const onClicks: ContextMenuProps[] = existingOnClick && "subitems" in existingOnClick ? existingOnClick.subitems : [];
onClicks.push({ description: "Enter Portal", event: this.makeIntoPortal, icon: "window-restore" });
onClicks.push({ description: "Toggle Detail", event: () => this.Document.onClick = ScriptField.MakeScript("toggleDetail(this)"), icon: "window-restore" });
onClicks.push({ description: this.Document.ignoreClick ? "Select" : "Do Nothing", event: () => this.Document.ignoreClick = !this.Document.ignoreClick, icon: this.Document.ignoreClick ? "unlock" : "lock" });
onClicks.push({ description: this.Document.isButton || this.Document.onClick ? "Remove Click Behavior" : "Follow Link", event: this.makeBtnClicked, icon: "concierge-bell" });
+ onClicks.push({ description: this.props.Document.isButton ? "Remove Select Link Behavior" : "Select Link", event: this.makeSelBtnClicked, icon: "concierge-bell" });
onClicks.push({ description: "Edit onClick Script", icon: "edit", event: (obj: any) => ScriptBox.EditButtonScript("On Button Clicked ...", this.props.Document, "onClick", obj.x, obj.y) });
- onClicks.push({
- description: "Edit onClick Foreach Doc Script", icon: "edit", event: (obj: any) => {
- this.props.Document.collectionContext = this.props.ContainingCollectionDoc;
- ScriptBox.EditButtonScript("Foreach Collection Doc (d) => ", this.props.Document, "onClick", obj.x, obj.y, "docList(this.collectionContext.data).map(d => {", "});\n");
- }
- });
!existingOnClick && cm.addItem({ description: "OnClick...", subitems: onClicks, icon: "hand-point-right" });
- let funcs: ContextMenuProps[] = [];
- funcs.push({ description: "Drag an Alias", icon: "edit", event: () => this.Document.dragFactory && (this.Document.onDragStart = ScriptField.MakeFunction('getAlias(this.dragFactory)')) });
- funcs.push({ description: "Drag a Copy", icon: "edit", event: () => this.Document.dragFactory && (this.Document.onDragStart = ScriptField.MakeFunction('getCopy(this.dragFactory, true)')) });
- funcs.push({ description: "Drag Document", icon: "edit", event: () => this.Document.onDragStart = undefined });
- ContextMenu.Instance.addItem({ description: "OnDrag...", subitems: funcs, icon: "asterisk" });
+ const funcs: ContextMenuProps[] = [];
+ if (this.Document.onDragStart) {
+ funcs.push({ description: "Drag an Alias", icon: "edit", event: () => this.Document.dragFactory && (this.Document.onDragStart = ScriptField.MakeFunction('getAlias(this.dragFactory)')) });
+ funcs.push({ description: "Drag a Copy", icon: "edit", event: () => this.Document.dragFactory && (this.Document.onDragStart = ScriptField.MakeFunction('getCopy(this.dragFactory, true)')) });
+ funcs.push({ description: "Drag Document", icon: "edit", event: () => this.Document.onDragStart = undefined });
+ ContextMenu.Instance.addItem({ description: "OnDrag...", subitems: funcs, icon: "asterisk" });
+ }
- let existing = ContextMenu.Instance.findByDescription("Layout...");
- let layoutItems: ContextMenuProps[] = existing && "subitems" in existing ? existing.subitems : [];
+ const existing = ContextMenu.Instance.findByDescription("Layout...");
+ const layoutItems: ContextMenuProps[] = existing && "subitems" in existing ? existing.subitems : [];
layoutItems.push({ description: this.Document.isBackground ? "As Foreground" : "As Background", event: this.makeBackground, icon: this.Document.lockedPosition ? "unlock" : "lock" });
- if (this.props.DataDoc) {
- layoutItems.push({ description: "Make View of Metadata Field", event: () => Doc.MakeMetadataFieldTemplate(this.props.Document, this.props.DataDoc!), icon: "concierge-bell" });
- }
- layoutItems.push({ description: `${this.Document.chromeStatus !== "disabled" ? "Hide" : "Show"} Chrome`, event: () => this.Document.chromeStatus = (this.Document.chromeStatus !== "disabled" ? "disabled" : "enabled"), icon: "project-diagram" });
- layoutItems.push({ description: `${this.Document.autoHeight ? "Variable Height" : "Auto Height"}`, event: () => this.layoutDoc.autoHeight = !this.layoutDoc.autoHeight, icon: "plus" });
- layoutItems.push({ description: this.Document.ignoreAspect || !this.Document.nativeWidth || !this.Document.nativeHeight ? "Freeze" : "Unfreeze", event: this.freezeNativeDimensions, icon: "snowflake" });
+ layoutItems.push({ description: "Make View of Metadata Field", event: () => Doc.MakeMetadataFieldTemplate(this.props.Document, this.props.DataDoc), icon: "concierge-bell" });
+
+ layoutItems.push({ description: `${this.Document._chromeStatus !== "disabled" ? "Hide" : "Show"} Chrome`, event: () => this.Document._chromeStatus = (this.Document._chromeStatus !== "disabled" ? "disabled" : "enabled"), icon: "project-diagram" });
+ layoutItems.push({ description: `${this.Document._autoHeight ? "Variable Height" : "Auto Height"}`, event: () => this.layoutDoc._autoHeight = !this.layoutDoc._autoHeight, icon: "plus" });
+ layoutItems.push({ description: this.Document.ignoreAspect || !this.Document._nativeWidth || !this.Document._nativeHeight ? "Freeze" : "Unfreeze", event: this.freezeNativeDimensions, icon: "snowflake" });
layoutItems.push({ description: this.Document.lockedPosition ? "Unlock Position" : "Lock Position", event: this.toggleLockPosition, icon: BoolCast(this.Document.lockedPosition) ? "unlock" : "lock" });
layoutItems.push({ description: this.Document.lockedTransform ? "Unlock Transform" : "Lock Transform", event: this.toggleLockTransform, icon: BoolCast(this.Document.lockedTransform) ? "unlock" : "lock" });
layoutItems.push({ description: "Center View", event: () => this.props.focus(this.props.Document, false), icon: "crosshairs" });
layoutItems.push({ description: "Zoom to Document", event: () => this.props.focus(this.props.Document, true), icon: "search" });
- if (this.Document.type !== DocumentType.COL && this.Document.type !== DocumentType.TEMPLATE) {
- layoutItems.push({ description: "Use Custom Layout", event: () => DocumentView.makeCustomViewClicked(this.props.Document, this.props.DataDoc), icon: "concierge-bell" });
- } else {
- layoutItems.push({ description: "Use Native Layout", event: () => DocumentView.makeNativeViewClicked(this.props.Document), icon: "concierge-bell" });
- }
!existing && cm.addItem({ description: "Layout...", subitems: layoutItems, icon: "compass" });
+
+ const more = ContextMenu.Instance.findByDescription("More...");
+ const moreItems: ContextMenuProps[] = more && "subitems" in more ? more.subitems : [];
+
if (!ClientUtils.RELEASE) {
// let copies: ContextMenuProps[] = [];
- cm.addItem({ description: "Copy ID", event: () => Utils.CopyText(this.props.Document[Id]), icon: "fingerprint" });
+ moreItems.push({ description: "Copy ID", event: () => Utils.CopyText(this.props.Document[Id]), icon: "fingerprint" });
// cm.addItem({ description: "Copy...", subitems: copies, icon: "copy" });
}
- let existingAnalyze = ContextMenu.Instance.findByDescription("Analyzers...");
- let analyzers: ContextMenuProps[] = existingAnalyze && "subitems" in existingAnalyze ? existingAnalyze.subitems : [];
- analyzers.push({ description: "Transcribe Speech", event: this.listen, icon: "microphone" });
- !existingAnalyze && cm.addItem({ description: "Analyzers...", subitems: analyzers, icon: "hand-point-right" });
- cm.addItem({ description: "Pin to Presentation", event: () => this.props.pinToPres(this.props.Document), icon: "map-pin" }); //I think this should work... and it does! A miracle!
- cm.addItem({ description: "Add Repl", icon: "laptop-code", event: () => OverlayView.Instance.addWindow(<ScriptingRepl />, { x: 300, y: 100, width: 200, height: 200, title: "Scripting REPL" }) });
- cm.addItem({
+ if (Cast(this.props.Document.data, ImageField)) {
+ moreItems.push({ description: "Export to Google Photos", event: () => GooglePhotos.Transactions.UploadImages([this.props.Document]), icon: "caret-square-right" });
+ }
+ if (Cast(Doc.GetProto(this.props.Document).data, listSpec(Doc))) {
+ moreItems.push({ description: "Export to Google Photos Album", event: () => GooglePhotos.Export.CollectionToAlbum({ collection: this.props.Document }).then(console.log), icon: "caret-square-right" });
+ moreItems.push({ description: "Tag Child Images via Google Photos", event: () => GooglePhotos.Query.TagChildImages(this.props.Document), icon: "caret-square-right" });
+ moreItems.push({ description: "Write Back Link to Album", event: () => GooglePhotos.Transactions.AddTextEnrichment(this.props.Document), icon: "caret-square-right" });
+ }
+ moreItems.push({ description: "Pin to Presentation", event: () => this.props.pinToPres(this.props.Document), icon: "map-pin" }); //I think this should work... and it does! A miracle!
+ moreItems.push({ description: "Add Repl", icon: "laptop-code", event: () => OverlayView.Instance.addWindow(<ScriptingRepl />, { x: 300, y: 100, width: 200, height: 200, title: "Scripting REPL" }) });
+ moreItems.push({
description: "Download document", icon: "download", event: async () =>
console.log(JSON.parse(await rp.get(Utils.CorsProxy("http://localhost:8983/solr/dash/select"), {
qs: { q: 'world', fq: 'NOT baseProto_b:true AND NOT deleted:true', start: '0', rows: '100', hl: true, 'hl.fl': '*' }
@@ -543,31 +809,32 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
cm.addItem({ description: "Recommender System", subitems: recommender_subitems, icon: "brain" });
- cm.addItem({ description: "Publish", event: () => DocUtils.Publish(this.props.Document, this.Document.title || "", this.props.addDocument, this.props.removeDocument), icon: "file" });
- cm.addItem({ description: "Delete", event: this.deleteClicked, icon: "trash" });
+ moreItems.push({ description: "Publish", event: () => DocUtils.Publish(this.props.Document, this.Document.title || "", this.props.addDocument, this.props.removeDocument), icon: "file" });
+ moreItems.push({ description: "Delete", event: this.deleteClicked, icon: "trash" });
+ moreItems.push({ description: "Undo Debug Test", event: () => UndoManager.TraceOpenBatches(), icon: "exclamation" });
+ !more && cm.addItem({ description: "More...", subitems: moreItems, icon: "hand-point-right" });
runInAction(() => {
if (!ClientUtils.RELEASE) {
- let setWriteMode = (mode: DocServer.WriteMode) => {
+ const setWriteMode = (mode: DocServer.WriteMode) => {
DocServer.AclsMode = mode;
const mode1 = mode;
const mode2 = mode === DocServer.WriteMode.Default ? mode : DocServer.WriteMode.Playground;
DocServer.setFieldWriteMode("x", mode1);
DocServer.setFieldWriteMode("y", mode1);
- DocServer.setFieldWriteMode("width", mode1);
- DocServer.setFieldWriteMode("height", mode1);
+ DocServer.setFieldWriteMode("_width", mode1);
+ DocServer.setFieldWriteMode("_height", mode1);
- DocServer.setFieldWriteMode("panX", mode2);
- DocServer.setFieldWriteMode("panY", mode2);
+ DocServer.setFieldWriteMode("_panX", mode2);
+ DocServer.setFieldWriteMode("_panY", mode2);
DocServer.setFieldWriteMode("scale", mode2);
- DocServer.setFieldWriteMode("viewType", mode2);
+ DocServer.setFieldWriteMode("_viewType", mode2);
};
- let aclsMenu: ContextMenuProps[] = [];
+ const aclsMenu: ContextMenuProps[] = [];
aclsMenu.push({ description: "Default (write/read all)", event: () => setWriteMode(DocServer.WriteMode.Default), icon: DocServer.AclsMode === DocServer.WriteMode.Default ? "check" : "exclamation" });
aclsMenu.push({ description: "Playground (write own/no read)", event: () => setWriteMode(DocServer.WriteMode.Playground), icon: DocServer.AclsMode === DocServer.WriteMode.Playground ? "check" : "exclamation" });
aclsMenu.push({ description: "Live Playground (write own/read others)", event: () => setWriteMode(DocServer.WriteMode.LivePlayground), icon: DocServer.AclsMode === DocServer.WriteMode.LivePlayground ? "check" : "exclamation" });
aclsMenu.push({ description: "Live Readonly (no write/read others)", event: () => setWriteMode(DocServer.WriteMode.LiveReadonly), icon: DocServer.AclsMode === DocServer.WriteMode.LiveReadonly ? "check" : "exclamation" });
cm.addItem({ description: "Collaboration ACLs...", subitems: aclsMenu, icon: "share" });
- cm.addItem({ description: "Undo Debug Test", event: () => UndoManager.TraceOpenBatches(), icon: "exclamation" });
}
});
runInAction(() => {
@@ -582,16 +849,23 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
e.stopPropagation();
}
ContextMenu.Instance.displayMenu(e.pageX - 15, e.pageY - 15);
- if (!SelectionManager.IsSelected(this)) {
+ if (!SelectionManager.IsSelected(this, true)) {
SelectionManager.SelectDoc(this, false);
}
});
+ const path = this.props.LibraryPath.reduce((p: string, d: Doc) => p + "/" + (Doc.AreProtosEqual(d, (Doc.UserDoc().LibraryBtn as Doc).sourcePanel as Doc) ? "" : d.title), "");
+ cm.addItem({
+ description: `path: ${path}`, event: () => {
+ this.props.LibraryPath.map(lp => Doc.GetProto(lp).treeViewOpen = lp.treeViewOpen = true);
+ Doc.linkFollowHighlight(this.props.Document);
+ }, icon: "check"
+ });
}
recommender = async (e: React.MouseEvent) => {
if (!ClientRecommender.Instance) new ClientRecommender({ title: "Client Recommender" });
- let documents: Doc[] = [];
- let allDocs = await SearchUtil.GetAllDocs();
+ const documents: Doc[] = [];
+ const allDocs = await SearchUtil.GetAllDocs();
// allDocs.forEach(doc => console.log(doc.title));
// clears internal representation of documents as vectors
ClientRecommender.Instance.reset_docs();
@@ -663,7 +937,7 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
}
console.log("ibm keyterms: ", kps.toString());
const headers = [new SchemaHeaderField("title"), new SchemaHeaderField("href")];
- let bodies: Doc[] = [];
+ const bodies: Doc[] = [];
const titles = recs.title_vals;
const urls = recs.url_vals;
for (let i = 0; i < 5; i++) {
@@ -687,34 +961,43 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
// does Document set a layout prop
// does Document set a layout prop
- setsLayoutProp = (prop: string) => this.props.Document[prop] !== this.props.Document["default" + prop[0].toUpperCase() + prop.slice(1)];
+ setsLayoutProp = (prop: string) => this.props.Document[prop] !== this.props.Document["default" + prop[0].toUpperCase() + prop.slice(1)] && this.props.Document["default" + prop[0].toUpperCase() + prop.slice(1)];
// get the a layout prop by first choosing the prop from Document, then falling back to the layout doc otherwise.
getLayoutPropStr = (prop: string) => StrCast(this.setsLayoutProp(prop) ? this.props.Document[prop] : this.layoutDoc[prop]);
getLayoutPropNum = (prop: string) => NumCast(this.setsLayoutProp(prop) ? this.props.Document[prop] : this.layoutDoc[prop]);
- isSelected = () => SelectionManager.IsSelected(this);
+ isSelected = (outsideReaction?: boolean) => SelectionManager.IsSelected(this, outsideReaction);
select = (ctrlPressed: boolean) => { SelectionManager.SelectDoc(this, ctrlPressed); };
chromeHeight = () => {
- let showOverlays = this.props.showOverlays ? this.props.showOverlays(this.Document) : undefined;
- let showTitle = showOverlays && "title" in showOverlays ? showOverlays.title : StrCast(this.Document.showTitle);
- return (showTitle ? 25 : 0) + 1;
+ const showTitle = StrCast(this.layoutDoc.showTitle);
+ const showTitleHover = StrCast(this.layoutDoc.showTitleHover);
+ return (showTitle && !showTitleHover ? 0 : 0) + 1;
}
- childScaling = () => (this.layoutDoc.fitWidth ? this.props.PanelWidth() / this.nativeWidth : this.props.ContentScaling());
+ @computed get finalLayoutKey() {
+ const { layoutKey } = this.props;
+ if (typeof layoutKey === "string") {
+ return layoutKey;
+ }
+ const fallback = Cast(this.props.Document.layoutKey, "string");
+ return typeof fallback === "string" ? fallback : "layout";
+ }
+ childScaling = () => (this.layoutDoc._fitWidth ? this.props.PanelWidth() / this.nativeWidth : this.props.ContentScaling());
@computed get contents() {
+ TraceMobx();
return (<DocumentContentsView ContainingCollectionView={this.props.ContainingCollectionView}
ContainingCollectionDoc={this.props.ContainingCollectionDoc}
Document={this.props.Document}
+ DataDoc={this.props.DataDoc}
fitToBox={this.props.fitToBox}
+ LibraryPath={this.props.LibraryPath}
addDocument={this.props.addDocument}
removeDocument={this.props.removeDocument}
moveDocument={this.props.moveDocument}
ScreenToLocalTransform={this.props.ScreenToLocalTransform}
renderDepth={this.props.renderDepth}
- showOverlays={this.props.showOverlays}
ContentScaling={this.childScaling}
- ruleProvider={this.props.ruleProvider}
PanelWidth={this.props.PanelWidth}
PanelHeight={this.props.PanelHeight}
focus={this.props.focus}
@@ -731,31 +1014,31 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
isSelected={this.isSelected}
select={this.select}
onClick={this.onClickHandler}
- layoutKey={this.props.layoutKey || "layout"}
- DataDoc={this.props.DataDoc} />);
+ layoutKey={this.finalLayoutKey} />);
}
linkEndpoint = (linkDoc: Doc) => Doc.LinkEndpoint(linkDoc, this.props.Document);
- // used to decide whether a link document should be created or not.
+ // used to decide whether a link document should be created or not.
// if it's a tempoarl link (currently just for Audio), then the audioBox will display the anchor and we don't want to display it here.
// would be good to generalize this some way.
isNonTemporalLink = (linkDoc: Doc) => {
- let anchor = Cast(Doc.AreProtosEqual(this.props.Document, Cast(linkDoc.anchor1, Doc) as Doc) ? linkDoc.anchor1 : linkDoc.anchor2, Doc) as Doc;
- let ept = Doc.AreProtosEqual(this.props.Document, Cast(linkDoc.anchor1, Doc) as Doc) ? linkDoc.anchor1Timecode : linkDoc.anchor2Timecode;
+ const anchor = Cast(Doc.AreProtosEqual(this.props.Document, Cast(linkDoc.anchor1, Doc) as Doc) ? linkDoc.anchor1 : linkDoc.anchor2, Doc) as Doc;
+ const ept = Doc.AreProtosEqual(this.props.Document, Cast(linkDoc.anchor1, Doc) as Doc) ? linkDoc.anchor1Timecode : linkDoc.anchor2Timecode;
return anchor.type === DocumentType.AUDIO && NumCast(ept) ? false : true;
}
@computed get innards() {
- const showOverlays = this.props.showOverlays ? this.props.showOverlays(this.Document) : undefined;
- const showTitle = showOverlays && "title" in showOverlays ? showOverlays.title : this.getLayoutPropStr("showTitle");
- const showCaption = showOverlays && "caption" in showOverlays ? showOverlays.caption : this.getLayoutPropStr("showCaption");
- const showTextTitle = showTitle && StrCast(this.Document.layout).indexOf("FormattedTextBox") !== -1 ? showTitle : undefined;
+ TraceMobx();
+ const showTitle = StrCast(this.getLayoutPropStr("showTitle"));
+ const showTitleHover = StrCast(this.getLayoutPropStr("showTitleHover"));
+ const showCaption = this.getLayoutPropStr("showCaption");
+ const showTextTitle = showTitle && StrCast(this.layoutDoc.layout).indexOf("FormattedTextBox") !== -1 ? showTitle : undefined;
const searchHighlight = (!this.Document.searchFields ? (null) :
- <div className="documentView-searchHighlight" style={{ width: `${100 * this.props.ContentScaling()}%`, transform: `scale(${1 / this.props.ContentScaling()})` }}>
+ <div className="documentView-searchHighlight">
{this.Document.searchFields}
</div>);
const captionView = (!showCaption ? (null) :
- <div className="documentView-captionWrapper" style={{ width: `${100 * this.props.ContentScaling()}%`, transform: `scale(${1 / this.props.ContentScaling()})` }}>
+ <div className="documentView-captionWrapper">
<FormattedTextBox {...this.props}
onClick={this.onClickHandler} DataDoc={this.props.DataDoc} active={returnTrue}
isSelected={this.isSelected} focus={emptyFunction} select={this.select}
@@ -763,22 +1046,21 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
/>
</div>);
const titleView = (!showTitle ? (null) :
- <div className="documentView-titleWrapper" style={{
- width: `${100 * this.props.ContentScaling()}%`, transform: `scale(${1 / this.props.ContentScaling()})`,
+ <div className={`documentView-titleWrapper${showTitleHover ? "-hover" : ""}`} style={{
position: showTextTitle ? "relative" : "absolute",
pointerEvents: SelectionManager.GetIsDragging() ? "none" : "all",
}}>
- <EditableView
- contents={this.Document[showTitle]}
+ <EditableView ref={this._titleRef}
+ contents={(this.props.DataDoc || this.props.Document)[showTitle]?.toString()}
display={"block"} height={72} fontSize={12}
- GetValue={() => StrCast(this.Document[showTitle])}
- SetValue={(value: string) => (Doc.GetProto(this.Document)[showTitle] = value) ? true : true}
+ GetValue={() => (this.props.DataDoc || this.props.Document)[showTitle]?.toString()}
+ SetValue={undoBatch((value: string) => (Doc.GetProto(this.props.DataDoc || this.props.Document)[showTitle] = value) ? true : true)}
/>
</div>);
return <>
- {this.Document.links && DocListCast(this.Document.links).filter((d) => !DocListCast(this.layoutDoc.hiddenLinks).some(hidden => Doc.AreProtosEqual(hidden, d))).filter(this.isNonTemporalLink).map((d, i) =>
- <div className="documentView-docuLinkWrapper" key={`${d[Id]}`} style={{ transform: `scale(${this.layoutDoc.fitWidth ? 1 : 1 / this.props.ContentScaling()})` }}>
- <DocumentView {...this.props} Document={d} layoutKey={this.linkEndpoint(d)} backgroundColor={returnTransparent} removeDocument={undoBatch(doc => Doc.AddDocToList(this.layoutDoc, "hiddenLinks", doc))} />
+ {this.Document.links && DocListCast(this.Document.links).filter(d => !d.hidden).filter(this.isNonTemporalLink).map((d, i) =>
+ <div className="documentView-docuLinkWrapper" key={`${d[Id]}`}>
+ <DocumentView {...this.props} ContentScaling={returnOne} Document={d} layoutKey={this.linkEndpoint(d)} backgroundColor={returnTransparent} removeDocument={undoBatch(doc => doc.hidden = true)} />
</div>)}
{!showTitle && !showCaption ?
this.Document.searchFields ?
@@ -800,51 +1082,49 @@ export class DocumentView extends DocComponent<DocumentViewProps, Document>(Docu
}
</>;
}
+ @computed get ignorePointerEvents() {
+ return (this.Document.isBackground && !this.isSelected()) || (this.Document.type === DocumentType.INK && InkingControl.Instance.selectedTool !== InkTool.None);
+ }
+
render() {
- if (!this.props.Document) return (null);
- //trace();
- const animDims = this.Document.animateToDimensions ? Array.from(this.Document.animateToDimensions) : undefined;
- const ruleColor = this.props.ruleProvider ? StrCast(this.props.ruleProvider["ruleColor_" + this.Document.heading]) : undefined;
- const ruleRounding = this.props.ruleProvider ? StrCast(this.props.ruleProvider["ruleRounding_" + this.Document.heading]) : undefined;
+ if (!(this.props.Document instanceof Doc)) return (null);
const colorSet = this.setsLayoutProp("backgroundColor");
const clusterCol = this.props.ContainingCollectionDoc && this.props.ContainingCollectionDoc.clusterOverridesDefaultBackground;
- const backgroundColor = this.Document.isBackground || (clusterCol && !colorSet) ?
+ const backgroundColor = (clusterCol && !colorSet) ?
this.props.backgroundColor(this.Document) || StrCast(this.layoutDoc.backgroundColor) :
- ruleColor && !colorSet ? ruleColor : StrCast(this.layoutDoc.backgroundColor) || this.props.backgroundColor(this.Document);
+ StrCast(this.layoutDoc.backgroundColor) || this.props.backgroundColor(this.Document);
- const nativeWidth = this.layoutDoc.fitWidth ? this.props.PanelWidth() - 2 : this.nativeWidth > 0 && !this.layoutDoc.ignoreAspect ? `${this.nativeWidth}px` : "100%";
- const nativeHeight = this.layoutDoc.fitWidth ? this.props.PanelHeight() - 2 : this.Document.ignoreAspect ? this.props.PanelHeight() / this.props.ContentScaling() : this.nativeHeight > 0 ? `${this.nativeHeight}px` : "100%";
const fullDegree = Doc.isBrushedHighlightedDegree(this.props.Document);
- const borderRounding = this.getLayoutPropStr("borderRounding") || ruleRounding;
- const localScale = this.props.ScreenToLocalTransform().Scale * fullDegree;
+ const borderRounding = this.getLayoutPropStr("borderRounding");
+ const localScale = fullDegree;
- let animheight = animDims ? animDims[1] : nativeHeight;
- let animwidth = animDims ? animDims[0] : nativeWidth;
+ const animDims = this.Document.animateToDimensions ? Array.from(this.Document.animateToDimensions) : undefined;
+ const animheight = animDims ? animDims[1] : "100%";
+ const animwidth = animDims ? animDims[0] : "100%";
const highlightColors = ["transparent", "maroon", "maroon", "yellow", "magenta", "cyan", "orange"];
- const highlightStyles = ["solid", "dashed", "solid", "solid", "solid", "solid", "solid", "solid"];
- let highlighting = fullDegree && this.layoutDoc.type !== DocumentType.FONTICON && this.layoutDoc.viewType !== CollectionViewType.Linear;
- return <div>
- <div className={`documentView-node${this.topMost ? "-topmost" : ""}`} ref={this._mainCont}
- onDrop={this.onDrop} onContextMenu={this.onContextMenu} onPointerDown={this.onPointerDown} onClick={this.onClick}
- onPointerEnter={() => Doc.BrushDoc(this.props.Document)} onPointerLeave={e => Doc.UnBrushDoc(this.props.Document)}
- style={{
- transition: this.Document.isAnimating !== undefined ? ".5s linear" : StrCast(this.Document.transition),
- pointerEvents: this.Document.isBackground && !this.isSelected() ? "none" : "all",
- color: StrCast(this.Document.color),
- outline: highlighting && !borderRounding ? `${highlightColors[fullDegree]} ${highlightStyles[fullDegree]} ${localScale}px` : "solid 0px",
- border: highlighting && borderRounding ? `${highlightStyles[fullDegree]} ${highlightColors[fullDegree]} ${localScale}px` : undefined,
- background: this.layoutDoc.type === DocumentType.FONTICON || this.layoutDoc.viewType === CollectionViewType.Linear ? undefined : backgroundColor,
- width: animwidth,
- height: animheight,
- transform: `scale(${this.layoutDoc.fitWidth ? 1 : this.props.ContentScaling()})`,
- opacity: this.Document.opacity
- }} >
- {this.innards}
- </div>
- {this._showKPQuery ? <KeyphraseQueryView keyphrases={this._queries}></KeyphraseQueryView> : undefined}
+ const highlightStyles = ["solid", "dashed", "solid", "solid", "solid", "solid", "solid"];
+ let highlighting = fullDegree && this.layoutDoc.type !== DocumentType.FONTICON && this.layoutDoc._viewType !== CollectionViewType.Linear;
+ highlighting = highlighting && this.props.focus !== emptyFunction; // bcz: hack to turn off highlighting onsidebar panel documents. need to flag a document as not highlightable in a more direct way
+ return <div className={`documentView-node${this.topMost ? "-topmost" : ""}`} ref={this._mainCont} onKeyDown={this.onKeyDown}
+ onDrop={this.onDrop} onContextMenu={this.onContextMenu} onPointerDown={this.onPointerDown} onClick={this.onClick}
+ onPointerEnter={e => Doc.BrushDoc(this.props.Document)} onPointerLeave={e => Doc.UnBrushDoc(this.props.Document)}
+ style={{
+ transition: this.Document.isAnimating ? ".5s linear" : StrCast(this.Document.transition),
+ pointerEvents: this.ignorePointerEvents ? "none" : "all",
+ color: StrCast(this.Document.color),
+ outline: highlighting && !borderRounding ? `${highlightColors[fullDegree]} ${highlightStyles[fullDegree]} ${localScale}px` : "solid 0px",
+ border: highlighting && borderRounding ? `${highlightStyles[fullDegree]} ${highlightColors[fullDegree]} ${localScale}px` : undefined,
+ boxShadow: this.props.Document.isTemplateForField ? "black 0.2vw 0.2vw 0.8vw" : undefined,
+ background: this.layoutDoc.type === DocumentType.FONTICON || this.layoutDoc._viewType === CollectionViewType.Linear ? undefined : backgroundColor,
+ width: animwidth,
+ height: animheight,
+ opacity: this.Document.opacity
+ }}>
+ {this.innards}
</div>;
+ { this._showKPQuery ? <KeyphraseQueryView keyphrases={this._queries}></KeyphraseQueryView> : undefined }
}
}
-Scripting.addGlobal(function toggleDetail(doc: any) { doc.layoutKey = StrCast(doc.layoutKey, "layout") === "layout" ? "layoutCustom" : "layout"; }); \ No newline at end of file
+Scripting.addGlobal(function toggleDetail(doc: any) { doc.layoutKey = StrCast(doc.layoutKey, "layout") === "layout" ? "layout_custom" : "layout"; }); \ No newline at end of file
diff --git a/src/client/views/nodes/FaceRectangle.tsx b/src/client/views/nodes/FaceRectangle.tsx
index 887efc0d5..20afa4565 100644
--- a/src/client/views/nodes/FaceRectangle.tsx
+++ b/src/client/views/nodes/FaceRectangle.tsx
@@ -12,7 +12,7 @@ export default class FaceRectangle extends React.Component<{ rectangle: Rectangl
}
render() {
- let rectangle = this.props.rectangle;
+ const rectangle = this.props.rectangle;
return (
<div
style={{
diff --git a/src/client/views/nodes/FaceRectangles.tsx b/src/client/views/nodes/FaceRectangles.tsx
index acf1aced3..3c7f1f206 100644
--- a/src/client/views/nodes/FaceRectangles.tsx
+++ b/src/client/views/nodes/FaceRectangles.tsx
@@ -20,10 +20,10 @@ export interface RectangleTemplate {
export default class FaceRectangles extends React.Component<FaceRectanglesProps> {
render() {
- let faces = DocListCast(this.props.document.faces);
- let templates: RectangleTemplate[] = faces.map(faceDoc => {
- let rectangle = Cast(faceDoc.faceRectangle, Doc) as Doc;
- let style = {
+ const faces = DocListCast(this.props.document.faces);
+ const templates: RectangleTemplate[] = faces.map(faceDoc => {
+ const rectangle = Cast(faceDoc.faceRectangle, Doc) as Doc;
+ const style = {
top: NumCast(rectangle.top),
left: NumCast(rectangle.left),
width: NumCast(rectangle.width),
diff --git a/src/client/views/nodes/FieldView.tsx b/src/client/views/nodes/FieldView.tsx
index 5108954bb..dbbb76f83 100644
--- a/src/client/views/nodes/FieldView.tsx
+++ b/src/client/views/nodes/FieldView.tsx
@@ -27,20 +27,20 @@ export interface FieldViewProps {
fitToBox?: boolean;
ContainingCollectionView: Opt<CollectionView>;
ContainingCollectionDoc: Opt<Doc>;
- ruleProvider: Doc | undefined;
Document: Doc;
DataDoc?: Doc;
+ LibraryPath: Doc[];
onClick?: ScriptField;
- isSelected: () => boolean;
+ isSelected: (outsideReaction?: boolean) => boolean;
select: (isCtrlPressed: boolean) => void;
renderDepth: number;
addDocument?: (document: Doc) => boolean;
addDocTab: (document: Doc, dataDoc: Doc | undefined, where: string) => boolean;
pinToPres: (document: Doc) => void;
removeDocument?: (document: Doc) => boolean;
- moveDocument?: (document: Doc, targetCollection: Doc, addDocument: (document: Doc) => boolean) => boolean;
+ moveDocument?: (document: Doc, targetCollection: Doc | undefined, addDocument: (document: Doc) => boolean) => boolean;
ScreenToLocalTransform: () => Transform;
- active: () => boolean;
+ active: (outsideReaction?: boolean) => boolean;
whenActiveChanged: (isActive: boolean) => void;
focus: (doc: Doc) => void;
PanelWidth: () => number;
@@ -53,7 +53,7 @@ export interface FieldViewProps {
@observer
export class FieldView extends React.Component<FieldViewProps> {
public static LayoutString(fieldType: { name: string }, fieldStr: string) {
- return `<${fieldType.name} {...props} fieldKey={"${fieldStr}"}/>`; //e.g., "<ImageBox {...props} fieldKey={"dada} />"
+ return `<${fieldType.name} {...props} fieldKey={'${fieldStr}'}/>`; //e.g., "<ImageBox {...props} fieldKey={"data} />"
}
@computed
@@ -69,12 +69,12 @@ export class FieldView extends React.Component<FieldViewProps> {
// if (typeof field === "string") {
// return <p>{field}</p>;
// }
- else if (field instanceof RichTextField) {
- return <FormattedTextBox {...this.props} />;
- }
- else if (field instanceof ImageField) {
- return <ImageBox {...this.props} />;
- }
+ // else if (field instanceof RichTextField) {
+ // return <FormattedTextBox {...this.props} />;
+ // }
+ // else if (field instanceof ImageField) {
+ // return <ImageBox {...this.props} />;
+ // }
// else if (field instaceof PresBox) {
// return <PresBox {...this.props} />;
// }
diff --git a/src/client/views/nodes/FontIconBox.scss b/src/client/views/nodes/FontIconBox.scss
index 75d093fcb..f0fe7a54e 100644
--- a/src/client/views/nodes/FontIconBox.scss
+++ b/src/client/views/nodes/FontIconBox.scss
@@ -2,12 +2,14 @@
width: 100%;
height: 100%;
pointer-events: all;
+ touch-action: none;
border-radius: inherit;
background: black;
border-radius: 100%;
+ transform-origin: top left;
+
svg {
- margin:18%;
- width:65% !important;
- height:65%;
+ width: 95% !important;
+ height: 95%;
}
-}
+} \ No newline at end of file
diff --git a/src/client/views/nodes/FontIconBox.tsx b/src/client/views/nodes/FontIconBox.tsx
index 83ecc4657..a191ac4f4 100644
--- a/src/client/views/nodes/FontIconBox.tsx
+++ b/src/client/views/nodes/FontIconBox.tsx
@@ -5,10 +5,11 @@ import { createSchema, makeInterface } from '../../../new_fields/Schema';
import { DocComponent } from '../DocComponent';
import './FontIconBox.scss';
import { FieldView, FieldViewProps } from './FieldView';
-import { StrCast } from '../../../new_fields/Types';
+import { StrCast, Cast } from '../../../new_fields/Types';
import { Utils } from "../../../Utils";
import { runInAction, observable, reaction, IReactionDisposer } from 'mobx';
import { Doc } from '../../../new_fields/Doc';
+import { ContextMenu } from '../ContextMenu';
const FontIconSchema = createSchema({
icon: "string"
});
@@ -25,21 +26,36 @@ export class FontIconBox extends DocComponent<FieldViewProps, FontIconDocument>(
this._backgroundReaction = reaction(() => this.props.Document.backgroundColor,
() => {
if (this._ref && this._ref.current) {
- let col = Utils.fromRGBAstr(getComputedStyle(this._ref.current).backgroundColor);
- let colsum = (col.r + col.g + col.b);
+ const col = Utils.fromRGBAstr(getComputedStyle(this._ref.current).backgroundColor);
+ const colsum = (col.r + col.g + col.b);
if (colsum / col.a > 600 || col.a < 0.25) runInAction(() => this._foregroundColor = "black");
else if (colsum / col.a <= 600 || col.a >= .25) runInAction(() => this._foregroundColor = "white");
}
}, { fireImmediately: true });
}
+
+ showTemplate = (): void => {
+ const dragFactory = Cast(this.props.Document.dragFactory, Doc, null);
+ dragFactory && this.props.addDocTab(dragFactory, undefined, "onRight");
+ }
+
+ specificContextMenu = (): void => {
+ const cm = ContextMenu.Instance;
+ cm.addItem({ description: "Show Template", event: this.showTemplate, icon: "tag" });
+ }
+
componentWillUnmount() {
- this._backgroundReaction && this._backgroundReaction();
+ this._backgroundReaction?.();
}
+
render() {
- let referenceDoc = (this.props.Document.dragFactory instanceof Doc ? this.props.Document.dragFactory : this.props.Document);
- let referenceLayout = Doc.Layout(referenceDoc);
- return <button className="fontIconBox-outerDiv" title={StrCast(this.props.Document.title)} ref={this._ref}
- style={{ background: StrCast(referenceLayout.backgroundColor), boxShadow: this.props.Document.unchecked ? undefined : `4px 4px 12px black` }}>
+ const referenceDoc = (this.props.Document.dragFactory instanceof Doc ? this.props.Document.dragFactory : this.props.Document);
+ const referenceLayout = Doc.Layout(referenceDoc);
+ return <button className="fontIconBox-outerDiv" title={StrCast(this.props.Document.title)} ref={this._ref} onContextMenu={this.specificContextMenu}
+ style={{
+ background: StrCast(referenceLayout.backgroundColor),
+ boxShadow: this.props.Document.ischecked ? `4px 4px 12px black` : undefined
+ }}>
<FontAwesomeIcon className="fontIconBox-icon" icon={this.Document.icon as any} color={this._foregroundColor} size="sm" />
</button>;
}
diff --git a/src/client/views/nodes/FormattedTextBox.scss b/src/client/views/nodes/FormattedTextBox.scss
index b497b12b4..c203ca0c3 100644
--- a/src/client/views/nodes/FormattedTextBox.scss
+++ b/src/client/views/nodes/FormattedTextBox.scss
@@ -11,6 +11,7 @@
}
.formattedTextBox-cont {
+ touch-action: none;
cursor: text;
background: inherit;
padding: 0;
@@ -25,11 +26,13 @@
color: initial;
height: 100%;
pointer-events: all;
- overflow-y: auto;
max-height: 100%;
+ display: flex;
+ flex-direction: row;
+
.formattedTextBox-dictation {
- height: 20px;
- width: 20px;
+ height: 12px;
+ width: 10px;
top: 0px;
left: 0px;
position: absolute;
@@ -39,15 +42,48 @@
.collectionfreeformview-container {
position: relative;
}
+
.formattedTextBox-outer {
position: relative;
overflow: auto;
display: inline-block;
- padding: 10px 10px;
width: 100%;
height: 100%;
}
+.formattedTextBox-sidebar-handle {
+ position: absolute;
+ top: calc(50% - 17.5px);
+ width: 10px;
+ height: 35px;
+ background: lightgray;
+ border-radius: 20px;
+ cursor:grabbing;
+}
+
+.formattedTextBox-cont>.formattedTextBox-sidebar-handle {
+ right: 0;
+ left: unset;
+}
+
+.formattedTextBox-sidebar,
+.formattedTextBox-sidebar-inking {
+ border-left: dashed 1px black;
+ height: 100%;
+ display: inline-block;
+ position: absolute;
+ right: 0;
+
+ >.formattedTextBox-sidebar-handle {
+ right: unset;
+ left: -5;
+ }
+}
+
+.formattedTextBox-sidebar-inking {
+ pointer-events: all;
+}
+
.formattedTextBox-inner-rounded {
height: 70%;
width: 85%;
@@ -57,8 +93,8 @@
left: 10%;
}
-.formattedTextBox-inner-rounded ,
-.formattedTextBox-inner {
+.formattedTextBox-inner-rounded,
+.formattedTextBox-inner {
padding: 10px 10px;
height: 100%;
}
@@ -85,19 +121,20 @@
}
.userMarkOpen {
- background: rgba(255, 255, 0, 0.267);
+ background: rgba(255, 255, 0, 0.267);
display: inline;
}
+
.userMark {
- background: rgba(255, 255, 0, 0.267);
+ background: rgba(255, 255, 0, 0.267);
font-size: 2px;
display: inline-grid;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
- width:10px;
- min-height:10px;
- text-align:center;
+ width: 10px;
+ min-height: 10px;
+ text-align: center;
align-content: center;
}
@@ -105,8 +142,9 @@ footnote {
display: inline-block;
position: relative;
cursor: pointer;
+
div {
- padding : 0 !important;
+ padding: 0 !important;
}
}
@@ -119,7 +157,7 @@ footnote::after {
.ProseMirror {
counter-reset: prosemirror-footnote;
- }
+}
.footnote-tooltip {
cursor: auto;
@@ -138,6 +176,7 @@ footnote::after {
.prosemirror-attribution {
font-size: 8px;
}
+
.footnote-tooltip::before {
border: 5px solid silver;
border-top-width: 0px;
@@ -151,46 +190,78 @@ footnote::after {
width: 0;
}
-.formattedTextBox-summarizer {
- opacity :0.5;
+
+.formattedTextBox-inlineComment {
position: relative;
- width:40px;
- height:20px;
+ width: 40px;
+ height: 20px;
+ &::before {
+ content: "→";
+ }
+ &:hover {
+ background: orange;
+ }
}
-.formattedTextBox-summarizer::after{
- content: "←" ;
+
+.formattedTextBox-summarizer {
+ opacity: 0.5;
+ position: relative;
+ width: 40px;
+ height: 20px;
+ &::after {
+ content: "←";
+ }
}
.formattedTextBox-summarizer-collapsed {
- opacity :0.5;
+ opacity: 0.5;
position: relative;
- width:40px;
- height:20px;
-}
-.formattedTextBox-summarizer-collapsed::after {
- content: "...";
+ width: 40px;
+ height: 20px;
+ &::after {
+ content: "...";
+ }
}
.ProseMirror {
-ol { counter-reset: deci1 0; padding-left: 0px; }
-.decimal1-ol {counter-reset: deci1; p { display: inline }; font-size: 24 ; ul, ol { padding-left:30px; } }
-.decimal2-ol {counter-reset: deci2; p { display: inline }; font-size: 18 ; ul, ol { padding-left:30px; } }
-.decimal3-ol {counter-reset: deci3; p { display: inline }; font-size: 14 ; ul, ol { padding-left:30px; } }
-.decimal4-ol {counter-reset: deci4; p { display: inline }; font-size: 10 ; ul, ol { padding-left:30px; } }
-.decimal5-ol {counter-reset: deci5; p { display: inline }; font-size: 10 ; ul, ol { padding-left:30px; } }
-.decimal6-ol {counter-reset: deci6; p { display: inline }; font-size: 10 ; ul, ol { padding-left:30px; } }
-.decimal7-ol {counter-reset: deci7; p { display: inline }; font-size: 10 ; ul, ol { padding-left:30px; } }
-.upper-alpha-ol {counter-reset: ualph; p { display: inline }; font-size: 18; }
-.lower-roman-ol {counter-reset: lroman; p { display: inline }; font-size: 14; }
-.lower-alpha-ol {counter-reset: lalpha; p { display: inline }; font-size: 10; }
-.decimal1:before { content: counter(deci1) ") "; counter-increment: deci1; display:inline-block; min-width: 30;}
-.decimal2:before { content: counter(deci1) "." counter(deci2) ") "; counter-increment: deci2; display:inline-block; min-width: 35}
-.decimal3:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) ") "; counter-increment: deci3; display:inline-block; min-width: 35}
-.decimal4:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) ") "; counter-increment: deci4; display:inline-block; min-width: 40}
-.decimal5:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) "." counter(deci5) ") "; counter-increment: deci5; display:inline-block; min-width: 40}
-.decimal6:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) "." counter(deci5) "." counter(deci6) ") "; counter-increment: deci6; display:inline-block; min-width: 45}
-.decimal7:before { content: counter(deci1) "." counter(deci2) "." counter(deci3) "." counter(deci4) "." counter(deci5) "." counter(deci6) "." counter(deci7) ") "; counter-increment: deci7; display:inline-block; min-width: 50}
-.upper-alpha:before { content: counter(deci1) "." counter(ualph, upper-alpha) ") "; counter-increment: ualph; display:inline-block; min-width: 35 }
-.lower-roman:before { content: counter(deci1) "." counter(ualph, upper-alpha) "." counter(lroman, lower-roman) ") "; counter-increment: lroman;display:inline-block; min-width: 50 }
-.lower-alpha:before { content: counter(deci1) "." counter(ualph, upper-alpha) "." counter(lroman, lower-roman) "." counter(lalpha, lower-alpha) ") "; counter-increment: lalpha; display:inline-block; min-width: 35}
-}
+ touch-action: none;
+ span {
+ font-family: inherit;
+ }
+
+ ol, ul {
+ counter-reset: deci1 0 multi1 0;
+ padding-left: 1em;
+ font-family: inherit;
+ }
+ ol {
+ margin-left: 1em;
+ font-family: inherit;
+ }
+
+ .decimal1-ol { counter-reset: deci1; p {display: inline; font-family: inherit} margin-left: 0; }
+ .decimal2-ol { counter-reset: deci2; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 1em;}
+ .decimal3-ol { counter-reset: deci3; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 2em;}
+ .decimal4-ol { counter-reset: deci4; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 3em;}
+ .decimal5-ol { counter-reset: deci5; p {display: inline; font-family: inherit} font-size: smaller; }
+ .decimal6-ol { counter-reset: deci6; p {display: inline; font-family: inherit} font-size: smaller; }
+ .decimal7-ol { counter-reset: deci7; p {display: inline; font-family: inherit} font-size: smaller; }
+
+ .multi1-ol { counter-reset: multi1; p {display: inline; font-family: inherit} margin-left: 0; padding-left: 1.2em }
+ .multi2-ol { counter-reset: multi2; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 1.4em;}
+ .multi3-ol { counter-reset: multi3; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 2em;}
+ .multi4-ol { counter-reset: multi4; p {display: inline; font-family: inherit} font-size: smaller; padding-left: 3.4em;}
+
+ .decimal1:before { transition: 0.5s;counter-increment: deci1; display: inline-block; margin-left: -1em; width: 1em; content: counter(deci1) ". "; }
+ .decimal2:before { transition: 0.5s;counter-increment: deci2; display: inline-block; margin-left: -2.1em; width: 2.1em; content: counter(deci1) "."counter(deci2) ". "; }
+ .decimal3:before { transition: 0.5s;counter-increment: deci3; display: inline-block; margin-left: -2.85em;width: 2.85em; content: counter(deci1) "."counter(deci2) "."counter(deci3) ". "; }
+ .decimal4:before { transition: 0.5s;counter-increment: deci4; display: inline-block; margin-left: -3.85em;width: 3.85em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) ". "; }
+ .decimal5:before { transition: 0.5s;counter-increment: deci5; display: inline-block; margin-left: -2em; width: 5em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) "."counter(deci5) ". "; }
+ .decimal6:before { transition: 0.5s;counter-increment: deci6; display: inline-block; margin-left: -2em; width: 6em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) "."counter(deci5) "."counter(deci6) ". "; }
+ .decimal7:before { transition: 0.5s;counter-increment: deci7; display: inline-block; margin-left: -2em; width: 7em; content: counter(deci1) "."counter(deci2) "."counter(deci3) "."counter(deci4) "."counter(deci5) "."counter(deci6) "."counter(deci7) ". "; }
+
+ .multi1:before { transition: 0.5s;counter-increment: multi1; display: inline-block; margin-left: -1em; width: 1.2em; content: counter(multi1, upper-alpha) ". "; }
+ .multi2:before { transition: 0.5s;counter-increment: multi2; display: inline-block; margin-left: -2em; width: 2em; content: counter(multi1, upper-alpha) "."counter(multi2, decimal) ". "; }
+ .multi3:before { transition: 0.5s;counter-increment: multi3; display: inline-block; margin-left: -2.85em; width:2.85em; content: counter(multi1, upper-alpha) "."counter(multi2, decimal) "."counter(multi3, lower-alpha) ". "; }
+ .multi4:before { transition: 0.5s;counter-increment: multi4; display: inline-block; margin-left: -4.2em; width: 4.2em; content: counter(multi1, upper-alpha) "."counter(multi2, decimal) "."counter(multi3, lower-alpha) "."counter(multi4, lower-roman) ". "; }
+} \ No newline at end of file
diff --git a/src/client/views/nodes/FormattedTextBox.tsx b/src/client/views/nodes/FormattedTextBox.tsx
index 35212b732..0d97c3029 100644
--- a/src/client/views/nodes/FormattedTextBox.tsx
+++ b/src/client/views/nodes/FormattedTextBox.tsx
@@ -1,7 +1,7 @@
import { library } from '@fortawesome/fontawesome-svg-core';
import { faEdit, faSmile, faTextHeight, faUpload } from '@fortawesome/free-solid-svg-icons';
-import _ from "lodash";
-import { action, computed, IReactionDisposer, Lambda, observable, reaction, runInAction, trace } from "mobx";
+import { isEqual } from "lodash";
+import { action, computed, IReactionDisposer, Lambda, observable, reaction, runInAction, trace, _allowStateChangesInsideComputed } from "mobx";
import { observer } from "mobx-react";
import { baseKeymap } from "prosemirror-commands";
import { history } from "prosemirror-history";
@@ -12,7 +12,7 @@ import { EditorState, NodeSelection, Plugin, TextSelection, Transaction } from "
import { ReplaceStep } from 'prosemirror-transform';
import { EditorView } from "prosemirror-view";
import { DateField } from '../../../new_fields/DateField';
-import { Doc, DocListCastAsync, Opt, WidthSym, HeightSym } from "../../../new_fields/Doc";
+import { Doc, DocListCastAsync, Opt, WidthSym, HeightSym, DataSym, Field } from "../../../new_fields/Doc";
import { Copy, Id } from '../../../new_fields/FieldSymbols';
import { RichTextField } from "../../../new_fields/RichTextField";
import { RichTextUtils } from '../../../new_fields/RichTextUtils';
@@ -27,14 +27,11 @@ import { DictationManager } from '../../util/DictationManager';
import { DragManager } from "../../util/DragManager";
import buildKeymap from "../../util/ProsemirrorExampleTransfer";
import { inpRules } from "../../util/RichTextRules";
-import { FootnoteView, ImageResizeView, DashDocView, OrderedListView, schema, SummarizedView } from "../../util/RichTextSchema";
+import { DashDocCommentView, FootnoteView, ImageResizeView, DashDocView, OrderedListView, schema, SummaryView, DashFieldView } from "../../util/RichTextSchema";
import { SelectionManager } from "../../util/SelectionManager";
-import { TooltipLinkingMenu } from "../../util/TooltipLinkingMenu";
-import { TooltipTextMenu } from "../../util/TooltipTextMenu";
import { undoBatch, UndoManager } from "../../util/UndoManager";
-import { DocAnnotatableComponent } from "../DocComponent";
+import { DocAnnotatableComponent, DocAnnotatableProps } from "../DocComponent";
import { DocumentButtonBar } from '../DocumentButtonBar';
-import { DocumentDecorations } from '../DocumentDecorations';
import { InkingControl } from "../InkingControl";
import { FieldView, FieldViewProps } from "./FieldView";
import "./FormattedTextBox.scss";
@@ -46,16 +43,15 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { documentSchema } from '../../../new_fields/documentSchemas';
import { AudioBox } from './AudioBox';
import { CollectionFreeFormView } from '../collections/collectionFreeForm/CollectionFreeFormView';
+import { InkTool } from '../../../new_fields/InkField';
+import { TraceMobx } from '../../../new_fields/util';
+import RichTextMenu from '../../util/RichTextMenu';
library.add(faEdit);
library.add(faSmile, faTextHeight, faUpload);
export interface FormattedTextBoxProps {
hideOnLeave?: boolean;
- height?: string;
- color?: string;
- outer_div?: (domminus: HTMLElement) => void;
- firstinstance?: boolean;
}
const richTextSchema = createSchema({
@@ -74,35 +70,36 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
public static LayoutString(fieldStr: string) { return FieldView.LayoutString(FormattedTextBox, fieldStr); }
public static blankState = () => EditorState.create(FormattedTextBox.Instance.config);
public static Instance: FormattedTextBox;
- public static ToolTipTextMenu: TooltipTextMenu | undefined = undefined;
+ public ProseRef?: HTMLDivElement;
private _ref: React.RefObject<HTMLDivElement> = React.createRef();
- private _proseRef?: HTMLDivElement;
+ private _scrollRef: React.RefObject<HTMLDivElement> = React.createRef();
private _editorView: Opt<EditorView>;
private _applyingChange: boolean = false;
- private _nodeClicked: any;
private _searchIndex = 0;
+ private _sidebarMovement = 0;
+ private _lastX = 0;
+ private _lastY = 0;
private _undoTyping?: UndoManager.Batch;
private _searchReactionDisposer?: Lambda;
private _scrollToRegionReactionDisposer: Opt<IReactionDisposer>;
private _reactionDisposer: Opt<IReactionDisposer>;
private _heightReactionDisposer: Opt<IReactionDisposer>;
- private _rulesReactionDisposer: Opt<IReactionDisposer>;
private _proxyReactionDisposer: Opt<IReactionDisposer>;
private _pullReactionDisposer: Opt<IReactionDisposer>;
private _pushReactionDisposer: Opt<IReactionDisposer>;
+ private _buttonBarReactionDisposer: Opt<IReactionDisposer>;
private dropDisposer?: DragManager.DragDropDisposer;
- @observable private _ruleFontSize = 0;
- @observable private _ruleFontFamily = "Arial";
- @observable private _fontAlign = "";
@observable private _entered = false;
+
+ public static FocusedBox: FormattedTextBox | undefined;
public static SelectOnLoad = "";
public static IsFragment(html: string) {
return html.indexOf("data-pm-slice") !== -1;
}
public static GetHref(html: string): string {
- let parser = new DOMParser();
- let parsedHtml = parser.parseFromString(html, 'text/html');
+ const parser = new DOMParser();
+ const parsedHtml = parser.parseFromString(html, 'text/html');
if (parsedHtml.body.childNodes.length === 1 && parsedHtml.body.childNodes[0].childNodes.length === 1 &&
(parsedHtml.body.childNodes[0].childNodes[0] as any).href) {
return (parsedHtml.body.childNodes[0].childNodes[0] as any).href;
@@ -118,18 +115,14 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
return "";
}
- public static getToolTip(ev: EditorView) {
- return this.ToolTipTextMenu ? this.ToolTipTextMenu : this.ToolTipTextMenu = new TooltipTextMenu(ev);
- }
-
@undoBatch
public setFontColor(color: string) {
- let view = this._editorView!;
+ const view = this._editorView!;
if (view.state.selection.from === view.state.selection.to) return false;
if (view.state.selection.to - view.state.selection.from > view.state.doc.nodeSize - 3) {
this.layoutDoc.color = color;
}
- let colorMark = view.state.schema.mark(view.state.schema.marks.pFontColor, { color: color });
+ const colorMark = view.state.schema.mark(view.state.schema.marks.pFontColor, { color: color });
view.dispatch(view.state.tr.addMark(view.state.selection.from, view.state.selection.to, colorMark));
return true;
}
@@ -137,6 +130,7 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
constructor(props: any) {
super(props);
FormattedTextBox.Instance = this;
+ this.updateHighlights();
}
public get CurrentDiv(): HTMLDivElement { return this._ref.current!; }
@@ -145,12 +139,12 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
doLinkOnDeselect() {
Array.from(this.linkOnDeselect.entries()).map(entry => {
- let key = entry[0];
- let value = entry[1];
- let id = Utils.GenerateDeterministicGuid(this.dataDoc[Id] + key);
+ const key = entry[0];
+ const value = entry[1];
+ const id = Utils.GenerateDeterministicGuid(this.dataDoc[Id] + key);
DocServer.GetRefField(value).then(doc => {
DocServer.GetRefField(id).then(linkDoc => {
- this.dataDoc[key] = doc || Docs.Create.FreeformDocument([], { title: value, width: 500, height: 500 }, value);
+ this.dataDoc[key] = doc || Docs.Create.FreeformDocument([], { title: value, _width: 500, _height: 500 }, value);
DocUtils.Publish(this.dataDoc[key] as Doc, value, this.props.addDocument, this.props.removeDocument);
if (linkDoc) { (linkDoc as Doc).anchor2 = this.dataDoc[key] as Doc; }
else DocUtils.MakeLink({ doc: this.dataDoc, ctx: this.props.ContainingCollectionDoc }, { doc: this.dataDoc[key] as Doc }, "Ref:" + value, "link to named target", id);
@@ -162,36 +156,40 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
dispatchTransaction = (tx: Transaction) => {
if (this._editorView) {
- let metadata = tx.selection.$from.marks().find((m: Mark) => m.type === schema.marks.metadata);
+ const metadata = tx.selection.$from.marks().find((m: Mark) => m.type === schema.marks.metadata);
if (metadata) {
- let range = tx.selection.$from.blockRange(tx.selection.$to);
+ const range = tx.selection.$from.blockRange(tx.selection.$to);
let text = range ? tx.doc.textBetween(range.start, range.end) : "";
let textEndSelection = tx.selection.to;
for (; textEndSelection < range!.end && text[textEndSelection - range!.start] !== " "; textEndSelection++) { }
text = text.substr(0, textEndSelection - range!.start);
text = text.split(" ")[text.split(" ").length - 1];
- let split = text.split("::");
+ const split = text.split("::");
if (split.length > 1 && split[1]) {
- let key = split[0];
- let value = split[split.length - 1];
+ const key = split[0];
+ const value = split[split.length - 1];
this.linkOnDeselect.set(key, value);
- let id = Utils.GenerateDeterministicGuid(this.dataDoc[Id] + key);
- const link = this._editorView.state.schema.marks.link.create({ href: `http://localhost:1050/doc/${id}`, location: "onRight", title: value });
+ const id = Utils.GenerateDeterministicGuid(this.dataDoc[Id] + key);
+ const link = this._editorView.state.schema.marks.link.create({ href: Utils.prepend("/doc/" + id), location: "onRight", title: value });
const mval = this._editorView.state.schema.marks.metadataVal.create();
- let offset = (tx.selection.to === range!.end - 1 ? -1 : 0);
+ const offset = (tx.selection.to === range!.end - 1 ? -1 : 0);
tx = tx.addMark(textEndSelection - value.length + offset, textEndSelection, link).addMark(textEndSelection - value.length + offset, textEndSelection, mval);
this.dataDoc[key] = value;
}
}
const state = this._editorView.state.apply(tx);
this._editorView.updateState(state);
+ (tx.storedMarks && !this._editorView.state.storedMarks) && (this._editorView.state.storedMarks = tx.storedMarks);
- let tsel = this._editorView.state.selection.$from;
+ const tsel = this._editorView.state.selection.$from;
tsel.marks().filter(m => m.type === this._editorView!.state.schema.marks.user_mark).map(m => AudioBox.SetScrubTime(Math.max(0, m.attrs.modified * 5000 - 1000)));
this._applyingChange = true;
- this.extensionDoc && (this.extensionDoc.lastModified = new DateField(new Date(Date.now())));
- this.dataDoc[this.props.fieldKey] = new RichTextField(JSON.stringify(state.toJSON()), state.doc.textBetween(0, state.doc.content.size, "\n\n"));
+ if (!this.props.Document._textTemplate || Doc.GetProto(this.props.Document) === this.dataDoc) {
+ this.dataDoc[this.props.fieldKey + "-lastModified"] && (this.dataDoc[this.props.fieldKey + "-backgroundColor"] = "lightGray");
+ this.dataDoc[this.props.fieldKey + "-lastModified"] = new DateField(new Date(Date.now()));
+ this.dataDoc[this.props.fieldKey] = new RichTextField(JSON.stringify(state.toJSON()), state.doc.textBetween(0, state.doc.content.size, "\n\n"));
+ }
this._applyingChange = false;
this.updateTitle();
this.tryUpdateHeight();
@@ -200,21 +198,21 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
updateTitle = () => {
if (StrCast(this.dataDoc.title).startsWith("-") && this._editorView && !this.Document.customTitle) {
- let str = this._editorView.state.doc.textContent;
- let titlestr = str.substr(0, Math.min(40, str.length));
+ const str = this._editorView.state.doc.textContent;
+ const titlestr = str.substr(0, Math.min(40, str.length));
this.dataDoc.title = "-" + titlestr + (str.length > 40 ? "..." : "");
}
}
public highlightSearchTerms = (terms: string[]) => {
- if (this._editorView && (this._editorView as any).docView) {
+ if (this._editorView && (this._editorView as any).docView && terms.some(t => t)) {
const mark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight);
const activeMark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight, { selected: true });
- let res = terms.map(term => this.findInNode(this._editorView!, this._editorView!.state.doc, term));
+ const res = terms.filter(t => t).map(term => this.findInNode(this._editorView!, this._editorView!.state.doc, term));
let tr = this._editorView.state.tr;
- let flattened: TextSelection[] = [];
+ const flattened: TextSelection[] = [];
res.map(r => r.map(h => flattened.push(h)));
- let lastSel = Math.min(flattened.length - 1, this._searchIndex);
+ const lastSel = Math.min(flattened.length - 1, this._searchIndex);
flattened.forEach((h: TextSelection, ind: number) => tr = tr.addMark(h.from, h.to, ind === lastSel ? activeMark : mark));
this._searchIndex = ++this._searchIndex > flattened.length - 1 ? 0 : this._searchIndex;
this._editorView.dispatch(tr.setSelection(new TextSelection(tr.doc.resolve(flattened[lastSel].from), tr.doc.resolve(flattened[lastSel].to))).scrollIntoView());
@@ -225,59 +223,59 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
if (this._editorView && (this._editorView as any).docView) {
const mark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight);
const activeMark = this._editorView.state.schema.mark(this._editorView.state.schema.marks.search_highlight, { selected: true });
- let end = this._editorView.state.doc.nodeSize - 2;
+ const end = this._editorView.state.doc.nodeSize - 2;
this._editorView.dispatch(this._editorView.state.tr.removeMark(0, end, mark).removeMark(0, end, activeMark));
}
}
- setAnnotation = (start: number, end: number, mark: Mark, opened: boolean, keep: boolean = false) => {
- let view = this._editorView!;
- let nmark = view.state.schema.marks.user_mark.create({ ...mark.attrs, userid: keep ? Doc.CurrentUserEmail : mark.attrs.userid, opened: opened });
+ adoptAnnotation = (start: number, end: number, mark: Mark) => {
+ const view = this._editorView!;
+ const nmark = view.state.schema.marks.user_mark.create({ ...mark.attrs, userid: Doc.CurrentUserEmail });
view.dispatch(view.state.tr.removeMark(start, end, nmark).addMark(start, end, nmark));
}
protected createDropTarget = (ele: HTMLDivElement) => {
- this._proseRef = ele;
+ this.ProseRef = ele;
this.dropDisposer && this.dropDisposer();
- ele && (this.dropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.drop.bind(this) } }));
+ ele && (this.dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this)));
}
@undoBatch
@action
drop = async (e: Event, de: DragManager.DropEvent) => {
- if (de.data instanceof DragManager.DocumentDragData) {
- const draggedDoc = de.data.draggedDocuments.length && de.data.draggedDocuments[0];
+ if (de.complete.docDragData) {
+ const draggedDoc = de.complete.docDragData.draggedDocuments.length && de.complete.docDragData.draggedDocuments[0];
// replace text contents whend dragging with Alt
- if (draggedDoc && draggedDoc.type === DocumentType.TEXT && !Doc.AreProtosEqual(draggedDoc, this.props.Document) && de.mods === "AltKey") {
+ if (draggedDoc && draggedDoc.type === DocumentType.TEXT && !Doc.AreProtosEqual(draggedDoc, this.props.Document) && de.altKey) {
if (draggedDoc.data instanceof RichTextField) {
Doc.GetProto(this.dataDoc)[this.props.fieldKey] = new RichTextField(draggedDoc.data.Data, draggedDoc.data.Text);
e.stopPropagation();
}
// apply as template when dragging with Meta
- } else if (draggedDoc && draggedDoc.type === DocumentType.TEXT && !Doc.AreProtosEqual(draggedDoc, this.props.Document) && de.mods === "MetaKey") {
+ } else if (draggedDoc && draggedDoc.type === DocumentType.TEXT && !Doc.AreProtosEqual(draggedDoc, this.props.Document) && de.metaKey) {
draggedDoc.isTemplateDoc = true;
let newLayout = Doc.Layout(draggedDoc);
if (typeof (draggedDoc.layout) === "string") {
newLayout = Doc.MakeDelegate(draggedDoc);
- newLayout.layout = StrCast(newLayout.layout).replace(/fieldKey={"[^"]*"}/, `fieldKey={"${this.props.fieldKey}"}`);
+ newLayout.layout = StrCast(newLayout.layout).replace(/fieldKey={'[^']*'}/, `fieldKey={'${this.props.fieldKey}'}`);
}
- this.Document.layoutCustom = newLayout;
- this.Document.layoutKey = "layoutCustom";
+ this.Document.layout_custom = newLayout;
+ this.Document.layoutKey = "layout_custom";
e.stopPropagation();
// embed document when dragging with a userDropAction or an embedDoc flag set
- } else if (de.data.userDropAction || de.data.embedDoc) {
- let target = de.data.droppedDocuments[0];
- const link = DocUtils.MakeLink({ doc: this.dataDoc, ctx: this.props.ContainingCollectionDoc }, { doc: target }, "Embedded Doc:" + target.title);
- if (link) {
- target.fitToBox = true;
- let node = schema.nodes.dashDoc.create({
- width: target[WidthSym](), height: target[HeightSym](),
- title: "dashDoc", docid: target[Id],
- float: "right"
- });
- let view = this._editorView!;
- view.dispatch(view.state.tr.insert(view.posAtCoords({ left: de.x, top: de.y })!.pos, node));
- this.tryUpdateHeight();
- e.stopPropagation();
- }
+ } else if (de.complete.docDragData.userDropAction || de.complete.docDragData.embedDoc) {
+ const target = de.complete.docDragData.droppedDocuments[0];
+ // const link = DocUtils.MakeLink({ doc: this.dataDoc, ctx: this.props.ContainingCollectionDoc }, { doc: target }, "Embedded Doc:" + target.title);
+ // if (link) {
+ target._fitToBox = true;
+ const node = schema.nodes.dashDoc.create({
+ width: target[WidthSym](), height: target[HeightSym](),
+ title: "dashDoc", docid: target[Id],
+ float: "right"
+ });
+ const view = this._editorView!;
+ view.dispatch(view.state.tr.insert(view.posAtCoords({ left: de.x, top: de.y })!.pos, node));
+ this.tryUpdateHeight();
+ e.stopPropagation();
+ // }
} // otherwise, fall through to outer collection to handle drop
}
}
@@ -290,7 +288,7 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
if (node.isBlock) {
// tslint:disable-next-line: prefer-for-of
for (let i = 0; i < (context.content as any).content.length; i++) {
- let result = this.getNodeEndpoints((context.content as any).content[i], node);
+ const result = this.getNodeEndpoints((context.content as any).content[i], node);
if (result) {
return {
from: result.from + offset + (context.type.name === "doc" ? 0 : 1),
@@ -311,9 +309,10 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
let ret: TextSelection[] = [];
if (node.isTextblock) {
- let index = 0, foundAt, ep = this.getNodeEndpoints(pm.state.doc, node);
+ let index = 0, foundAt;
+ const ep = this.getNodeEndpoints(pm.state.doc, node);
while (ep && (foundAt = node.textContent.slice(index).search(RegExp(find, "i"))) > -1) {
- let sel = new TextSelection(pm.state.doc.resolve(ep.from + index + foundAt + 1), pm.state.doc.resolve(ep.from + index + foundAt + find.length + 1));
+ const sel = new TextSelection(pm.state.doc.resolve(ep.from + index + foundAt + 1), pm.state.doc.resolve(ep.from + index + foundAt + find.length + 1));
ret.push(sel);
index = index + foundAt + find.length;
}
@@ -322,7 +321,7 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
}
return ret;
}
- static _highlights: string[] = [];
+ static _highlights: string[] = ["Text from Others", "Todo Items", "Important Items", "Disagree Items", "Ignore Items"];
updateHighlights = () => {
clearStyleSheetRules(FormattedTextBox._userStyleSheet);
@@ -342,24 +341,45 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "disagree", { "text-decoration": "line-through" });
}
if (FormattedTextBox._highlights.indexOf("Ignore Items") !== -1) {
- addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "ignore", { "font-size": "0" });
+ addStyleSheetRule(FormattedTextBox._userStyleSheet, "userTag-" + "ignore", { "font-size": "1" });
}
if (FormattedTextBox._highlights.indexOf("By Recent Minute") !== -1) {
addStyleSheetRule(FormattedTextBox._userStyleSheet, "userMark-" + Doc.CurrentUserEmail.replace(".", "").replace("@", ""), { opacity: "0.1" });
- let min = Math.round(Date.now() / 1000 / 60);
+ const min = Math.round(Date.now() / 1000 / 60);
numberRange(10).map(i => addStyleSheetRule(FormattedTextBox._userStyleSheet, "userMark-min-" + (min - i), { opacity: ((10 - i - 1) / 10).toString() }));
setTimeout(() => this.updateHighlights());
}
if (FormattedTextBox._highlights.indexOf("By Recent Hour") !== -1) {
addStyleSheetRule(FormattedTextBox._userStyleSheet, "userMark-" + Doc.CurrentUserEmail.replace(".", "").replace("@", ""), { opacity: "0.1" });
- let hr = Math.round(Date.now() / 1000 / 60 / 60);
+ const hr = Math.round(Date.now() / 1000 / 60 / 60);
numberRange(10).map(i => addStyleSheetRule(FormattedTextBox._userStyleSheet, "userMark-hr-" + (hr - i), { opacity: ((10 - i - 1) / 10).toString() }));
}
}
+ sidebarDown = (e: React.PointerEvent) => {
+ this._lastX = e.clientX;
+ this._lastY = e.clientY;
+ this._sidebarMovement = 0;
+ document.addEventListener("pointermove", this.sidebarMove);
+ document.addEventListener("pointerup", this.sidebarUp);
+ e.stopPropagation();
+ e.preventDefault(); // prevents text from being selected during drag
+ }
+ sidebarMove = (e: PointerEvent) => {
+ const bounds = this.CurrentDiv.getBoundingClientRect();
+ this._sidebarMovement += Math.sqrt((e.clientX - this._lastX) * (e.clientX - this._lastX) + (e.clientY - this._lastY) * (e.clientY - this._lastY));
+ this.props.Document.sidebarWidthPercent = "" + 100 * (1 - (e.clientX - bounds.left) / bounds.width) + "%";
+ }
+ sidebarUp = (e: PointerEvent) => {
+ document.removeEventListener("pointermove", this.sidebarMove);
+ document.removeEventListener("pointerup", this.sidebarUp);
+ }
+
+ toggleSidebar = () => this._sidebarMovement < 5 && (this.props.Document.sidebarWidthPercent = StrCast(this.props.Document.sidebarWidthPercent, "0%") === "0%" ? "25%" : "0%");
+
specificContextMenu = (e: React.MouseEvent): void => {
- let funcs: ContextMenuProps[] = [];
- funcs.push({ description: "Toggle Sidebar", event: () => { e.stopPropagation(); this.props.Document.sidebarWidthPercent = StrCast(this.props.Document.sidebarWidthPercent, "0%") === "0%" ? "25%" : "0%"; }, icon: "expand-arrows-alt" });
+ const funcs: ContextMenuProps[] = [];
+ funcs.push({ description: "Toggle Sidebar", event: () => { e.stopPropagation(); this.toggleSidebar(); }, icon: "expand-arrows-alt" });
funcs.push({ description: "Record Bullet", event: () => { e.stopPropagation(); this.recordBullet(); }, icon: "expand-arrows-alt" });
["My Text", "Text from Others", "Todo Items", "Important Items", "Ignore Items", "Disagree Items", "By Recent Minute", "By Recent Hour"].forEach(option =>
funcs.push({
@@ -399,8 +419,8 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
}
recordBullet = async () => {
- let completedCue = "end session";
- let results = await DictationManager.Controls.listen({
+ const completedCue = "end session";
+ const results = await DictationManager.Controls.listen({
interimHandler: this.setCurrentBulletContent,
continuous: { indefinite: false },
terminators: [completedCue, "bullet", "next"]
@@ -416,20 +436,20 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
setCurrentBulletContent = (value: string) => {
if (this._editorView) {
let state = this._editorView.state;
- let from = state.selection.from;
- let to = state.selection.to;
+ const from = state.selection.from;
+ const to = state.selection.to;
this._editorView.dispatch(state.tr.insertText(value, from, to));
state = this._editorView.state;
- let updated = TextSelection.create(state.doc, from, from + value.length);
+ const updated = TextSelection.create(state.doc, from, from + value.length);
this._editorView.dispatch(state.tr.setSelection(updated));
}
}
nextBullet = (pos: number) => {
if (this._editorView) {
- let frag = Fragment.fromArray(this.newListItems(2));
+ const frag = Fragment.fromArray(this.newListItems(2));
if (this._editorView.state.doc.resolve(pos).depth >= 2) {
- let slice = new Slice(frag, 2, 2);
+ const slice = new Slice(frag, 2, 2);
let state = this._editorView.state;
this._editorView.dispatch(state.tr.step(new ReplaceStep(pos, pos, slice)));
pos += 4;
@@ -451,11 +471,10 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
schema,
plugins: [
inputRules(inpRules),
- this.tooltipTextMenuPlugin(),
+ this.richTextMenuPlugin(),
history(),
keymap(this._keymap),
keymap(baseKeymap),
- // this.tooltipLinkingMenuPlugin(),
new Plugin({
props: {
attributes: { class: "ProseMirror-example-setup-style" }
@@ -467,17 +486,24 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
}
componentDidMount() {
- this.pullFromGoogleDoc(this.checkState);
- this.dataDoc[GoogleRef] && this.dataDoc.unchanged && runInAction(() => DocumentDecorations.Instance.isAnimatingFetch = true);
+ this._buttonBarReactionDisposer = reaction(
+ () => DocumentButtonBar.Instance,
+ instance => {
+ if (instance) {
+ this.pullFromGoogleDoc(this.checkState);
+ this.dataDoc[GoogleRef] && this.dataDoc.unchanged && runInAction(() => instance.isAnimatingFetch = true);
+ }
+ }
+ );
this._reactionDisposer = reaction(
() => {
- const field = this.dataDoc ? Cast(this.dataDoc[this.props.fieldKey], RichTextField) : undefined;
+ const field = Cast(this.props.Document._textTemplate || this.dataDoc[this.props.fieldKey], RichTextField);
return field ? field.Data : RichTextUtils.Initialize();
},
incomingValue => {
if (this._editorView && !this._applyingChange) {
- let updatedState = JSON.parse(incomingValue);
+ const updatedState = JSON.parse(incomingValue);
this._editorView.updateState(EditorState.fromJSON(this.config, updatedState));
this.tryUpdateHeight();
}
@@ -489,7 +515,7 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
() => {
if (!DocumentButtonBar.hasPulledHack) {
DocumentButtonBar.hasPulledHack = true;
- let unchanged = this.dataDoc.unchanged;
+ const unchanged = this.dataDoc.unchanged;
this.pullFromGoogleDoc(unchanged ? this.checkState : this.updateState);
}
}
@@ -506,62 +532,23 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
);
this._heightReactionDisposer = reaction(
- () => [this.layoutDoc[WidthSym](), this.layoutDoc.autoHeight],
+ () => [this.layoutDoc[WidthSym](), this.layoutDoc._autoHeight],
() => this.tryUpdateHeight()
);
+ this.setupEditor(this.config, this.props.fieldKey);
- this.setupEditor(this.config, this.dataDoc, this.props.fieldKey);
-
- this._searchReactionDisposer = reaction(() => {
- return StrCast(this.layoutDoc.search_string);
- }, searchString => {
- if (searchString) {
- this.highlightSearchTerms([searchString]);
- }
- else {
- this.unhighlightSearchTerms();
- }
- }, { fireImmediately: true });
+ this._searchReactionDisposer = reaction(() => this.layoutDoc.searchMatch,
+ search => search ? this.highlightSearchTerms([Doc.SearchQuery()]) : this.unhighlightSearchTerms(),
+ { fireImmediately: true });
-
- this._rulesReactionDisposer = reaction(() => {
- let ruleProvider = this.props.ruleProvider;
- let heading = NumCast(this.layoutDoc.heading);
- if (ruleProvider instanceof Doc) {
- return {
- align: StrCast(ruleProvider["ruleAlign_" + heading], ""),
- font: StrCast(ruleProvider["ruleFont_" + heading], "Arial"),
- size: NumCast(ruleProvider["ruleSize_" + heading], 13)
- };
- }
- return undefined;
- },
- action((rules: any) => {
- this._ruleFontFamily = rules ? rules.font : "Arial";
- this._ruleFontSize = rules ? rules.size : 0;
- rules && setTimeout(() => {
- const view = this._editorView!;
- if (this._proseRef) {
- let n = new NodeSelection(view.state.doc.resolve(0));
- if (this._editorView!.state.doc.textContent === "") {
- view.dispatch(view.state.tr.setSelection(new TextSelection(view.state.doc.resolve(0), view.state.doc.resolve(2))).
- replaceSelectionWith(this._editorView!.state.schema.nodes.paragraph.create({ align: rules.align }), true));
- } else if (n.node && n.node.type === view.state.schema.nodes.paragraph) {
- view.dispatch(view.state.tr.setNodeMarkup(0, n.node.type, { ...n.node.attrs, align: rules.align }));
- }
- this.tryUpdateHeight();
- }
- }, 0);
- }), { fireImmediately: true }
- );
this._scrollToRegionReactionDisposer = reaction(
() => StrCast(this.layoutDoc.scrollToLinkID),
async (scrollToLinkID) => {
- let findLinkFrag = (frag: Fragment, editor: EditorView) => {
+ const findLinkFrag = (frag: Fragment, editor: EditorView) => {
const nodes: Node[] = [];
frag.forEach((node, index) => {
- let examinedNode = findLinkNode(node, editor);
+ const examinedNode = findLinkNode(node, editor);
if (examinedNode && examinedNode.textContent) {
nodes.push(examinedNode);
start += index;
@@ -569,7 +556,7 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
});
return { frag: Fragment.fromArray(nodes), start: start };
};
- let findLinkNode = (node: Node, editor: EditorView) => {
+ const findLinkNode = (node: Node, editor: EditorView) => {
if (!node.isText) {
const content = findLinkFrag(node.content, editor);
return node.copy(content.frag);
@@ -581,8 +568,8 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
let start = -1;
if (this._editorView && scrollToLinkID) {
- let editor = this._editorView;
- let ret = findLinkFrag(editor.state.doc.content, editor);
+ const editor = this._editorView;
+ const ret = findLinkFrag(editor.state.doc.content, editor);
if (ret.frag.size > 2 && ret.start >= 0) {
let selection = TextSelection.near(editor.state.doc.resolve(ret.start)); // default to near the start
@@ -601,33 +588,33 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
{ fireImmediately: true }
);
- setTimeout(() => this.tryUpdateHeight(), 0);
+ setTimeout(() => this.tryUpdateHeight(NumCast(this.layoutDoc.limitHeight, 0)));
}
pushToGoogleDoc = async () => {
this.pullFromGoogleDoc(async (exportState: Opt<GoogleApiClientUtils.Docs.ImportResult>, dataDoc: Doc) => {
- let modes = GoogleApiClientUtils.Docs.WriteMode;
+ const modes = GoogleApiClientUtils.Docs.WriteMode;
let mode = modes.Replace;
let reference: Opt<GoogleApiClientUtils.Docs.Reference> = Cast(this.dataDoc[GoogleRef], "string");
if (!reference) {
mode = modes.Insert;
reference = { title: StrCast(this.dataDoc.title) };
}
- let redo = async () => {
+ const redo = async () => {
if (this._editorView && reference) {
- let content = await RichTextUtils.GoogleDocs.Export(this._editorView.state);
- let response = await GoogleApiClientUtils.Docs.write({ reference, content, mode });
+ const content = await RichTextUtils.GoogleDocs.Export(this._editorView.state);
+ const response = await GoogleApiClientUtils.Docs.write({ reference, content, mode });
response && (this.dataDoc[GoogleRef] = response.documentId);
- let pushSuccess = response !== undefined && !("errors" in response);
+ const pushSuccess = response !== undefined && !("errors" in response);
dataDoc.unchanged = pushSuccess;
DocumentButtonBar.Instance.startPushOutcome(pushSuccess);
}
};
- let undo = () => {
+ const undo = () => {
if (!exportState) {
return;
}
- let content: GoogleApiClientUtils.Docs.Content = {
+ const content: GoogleApiClientUtils.Docs.Content = {
text: exportState.text,
requests: []
};
@@ -641,8 +628,8 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
}
pullFromGoogleDoc = async (handler: PullHandler) => {
- let dataDoc = this.dataDoc;
- let documentId = StrCast(dataDoc[GoogleRef]);
+ const dataDoc = this.dataDoc;
+ const documentId = StrCast(dataDoc[GoogleRef]);
let exportState: Opt<GoogleApiClientUtils.Docs.ImportResult>;
if (documentId) {
exportState = await RichTextUtils.GoogleDocs.Import(documentId, dataDoc);
@@ -657,8 +644,8 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
dataDoc.data = new RichTextField(JSON.stringify(exportState.state.toJSON()));
setTimeout(() => {
if (this._editorView) {
- let state = this._editorView.state;
- let end = state.doc.content.size - 1;
+ const state = this._editorView.state;
+ const end = state.doc.content.size - 1;
this._editorView.dispatch(state.tr.setSelection(TextSelection.create(state.doc, end, end)));
}
}, 0);
@@ -673,9 +660,9 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
checkState = (exportState: Opt<GoogleApiClientUtils.Docs.ImportResult>, dataDoc: Doc) => {
if (exportState && this._editorView) {
- let equalContent = _.isEqual(this._editorView.state.doc, exportState.state.doc);
- let equalTitles = dataDoc.title === exportState.title;
- let unchanged = equalContent && equalTitles;
+ const equalContent = isEqual(this._editorView.state.doc, exportState.state.doc);
+ const equalTitles = dataDoc.title === exportState.title;
+ const unchanged = equalContent && equalTitles;
dataDoc.unchanged = unchanged;
DocumentButtonBar.Instance.setPullState(unchanged);
}
@@ -703,7 +690,7 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
}
handlePaste = (view: EditorView, event: Event, slice: Slice): boolean => {
- let cbe = event as ClipboardEvent;
+ const cbe = event as ClipboardEvent;
const pdfDocId = cbe.clipboardData && cbe.clipboardData.getData("dash/pdfOrigin");
const pdfRegionId = cbe.clipboardData && cbe.clipboardData.getData("dash/pdfRegion");
if (pdfDocId && pdfRegionId) {
@@ -711,20 +698,18 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
DocServer.GetRefField(pdfRegionId).then(pdfRegion => {
if ((pdfDoc instanceof Doc) && (pdfRegion instanceof Doc)) {
setTimeout(async () => {
- const extension = Doc.fieldExtensionDoc(pdfDoc, "data");
- if (extension) {
- let targetAnnotations = await DocListCastAsync(extension.annotations);// bcz: NO... this assumes the pdf is using its 'data' field. need to have the PDF's view handle updating its own annotations
- targetAnnotations && targetAnnotations.push(pdfRegion);
- }
+ const targetField = Doc.LayoutFieldKey(pdfDoc);
+ const targetAnnotations = await DocListCastAsync(pdfDoc[DataSym][targetField + "-annotations"]);// bcz: better to have the PDF's view handle updating its own annotations
+ targetAnnotations?.push(pdfRegion);
});
- let link = DocUtils.MakeLink({ doc: this.props.Document, ctx: this.props.ContainingCollectionDoc }, { doc: pdfRegion, ctx: pdfDoc }, "note on " + pdfDoc.title, "pasted PDF link");
+ const link = DocUtils.MakeLink({ doc: this.props.Document, ctx: this.props.ContainingCollectionDoc }, { doc: pdfRegion, ctx: pdfDoc }, "note on " + pdfDoc.title, "pasted PDF link");
if (link) {
cbe.clipboardData!.setData("dash/linkDoc", link[Id]);
- let linkId = link[Id];
- let frag = addMarkToFrag(slice.content, (node: Node) => addLinkMark(node, StrCast(pdfDoc.title), linkId));
+ const linkId = link[Id];
+ const frag = addMarkToFrag(slice.content, (node: Node) => addLinkMark(node, StrCast(pdfDoc.title), linkId));
slice = new Slice(frag, slice.openStart, slice.openEnd);
- var tr = view.state.tr.replaceSelection(slice);
+ const tr = view.state.tr.replaceSelection(slice);
view.dispatch(tr.scrollIntoView().setMeta("paste", true).setMeta("uiEvent", "paste"));
}
}
@@ -753,57 +738,50 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
}
}
- private setupEditor(config: any, doc: Doc, fieldKey: string) {
- let field = doc ? Cast(doc[fieldKey], RichTextField) : undefined;
- let startup = StrCast(doc.documentText);
- startup = startup.startsWith("@@@") ? startup.replace("@@@", "") : "";
- if (!field && doc) {
- let text = StrCast(doc[fieldKey]);
- if (text) {
- startup = text;
- } else if (Cast(doc[fieldKey], "number")) {
- startup = NumCast(doc[fieldKey], 99).toString();
- }
- }
- if (this._proseRef) {
- let self = this;
- this._editorView && this._editorView.destroy();
- this._editorView = new EditorView(this._proseRef, {
- state: field && field.Data ? EditorState.fromJSON(config, JSON.parse(field.Data)) : EditorState.create(config),
+ private setupEditor(config: any, fieldKey: string) {
+ const rtfField = Cast(this.props.Document._textTemplate || this.dataDoc[fieldKey], RichTextField);
+ if (this.ProseRef) {
+ const self = this;
+ this._editorView?.destroy();
+ this._editorView = new EditorView(this.ProseRef, {
+ state: rtfField?.Data ? EditorState.fromJSON(config, JSON.parse(rtfField.Data)) : EditorState.create(config),
handleScrollToSelection: (editorView) => {
- let ref = editorView.domAtPos(editorView.state.selection.from);
+ const ref = editorView.domAtPos(editorView.state.selection.from);
let refNode = ref.node as any;
while (refNode && !("getBoundingClientRect" in refNode)) refNode = refNode.parentElement;
- let r1 = refNode && refNode.getBoundingClientRect();
- let r3 = self._ref.current!.getBoundingClientRect();
+ const r1 = refNode?.getBoundingClientRect();
+ const r3 = self._ref.current!.getBoundingClientRect();
if (r1.top < r3.top || r1.top > r3.bottom) {
- r1 && (self._ref.current!.scrollTop += (r1.top - r3.top) * self.props.ScreenToLocalTransform().Scale);
+ r1 && (self._scrollRef.current!.scrollTop += (r1.top - r3.top) * self.props.ScreenToLocalTransform().Scale);
}
return true;
},
dispatchTransaction: this.dispatchTransaction,
nodeViews: {
+ dashComment(node, view, getPos) { return new DashDocCommentView(node, view, getPos); },
+ dashField(node, view, getPos) { return new DashFieldView(node, view, getPos, self); },
dashDoc(node, view, getPos) { return new DashDocView(node, view, getPos, self); },
image(node, view, getPos) { return new ImageResizeView(node, view, getPos, self.props.addDocTab); },
- star(node, view, getPos) { return new SummarizedView(node, view, getPos); },
+ summary(node, view, getPos) { return new SummaryView(node, view, getPos); },
ordered_list(node, view, getPos) { return new OrderedListView(); },
footnote(node, view, getPos) { return new FootnoteView(node, view, getPos); }
},
clipboardTextSerializer: this.clipboardTextSerializer,
handlePaste: this.handlePaste,
});
- if (startup) {
- Doc.GetProto(doc).documentText = undefined;
- this._editorView.dispatch(this._editorView.state.tr.insertText(startup));
+ this._editorView.state.schema.Document = this.props.Document;
+ const startupText = !rtfField && this._editorView && Field.toString(this.dataDoc[fieldKey] as Field);
+ if (startupText) {
+ this._editorView.dispatch(this._editorView.state.tr.insertText(startupText));
}
}
- let selectOnLoad = this.props.Document[Id] === FormattedTextBox.SelectOnLoad;
+ const selectOnLoad = this.props.Document[Id] === FormattedTextBox.SelectOnLoad;
if (selectOnLoad) {
FormattedTextBox.SelectOnLoad = "";
this.props.select(false);
}
- this._editorView!.focus();
+ (selectOnLoad /* || !rtfField?.Text*/) && this._editorView!.focus();
// add user mark for any first character that was typed since the user mark that gets set in KeyPress won't have been called yet.
this._editorView!.state.storedMarks = [...(this._editorView!.state.storedMarks ? this._editorView!.state.storedMarks : []), schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.round(Date.now() / 1000 / 5) })];
}
@@ -822,24 +800,28 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
componentWillUnmount() {
this._scrollToRegionReactionDisposer && this._scrollToRegionReactionDisposer();
- this._rulesReactionDisposer && this._rulesReactionDisposer();
this._reactionDisposer && this._reactionDisposer();
this._proxyReactionDisposer && this._proxyReactionDisposer();
this._pushReactionDisposer && this._pushReactionDisposer();
this._pullReactionDisposer && this._pullReactionDisposer();
this._heightReactionDisposer && this._heightReactionDisposer();
this._searchReactionDisposer && this._searchReactionDisposer();
+ this._buttonBarReactionDisposer && this._buttonBarReactionDisposer();
this._editorView && this._editorView.destroy();
}
+
+ static _downEvent: any;
onPointerDown = (e: React.PointerEvent): void => {
+ this.doLinkOnDeselect();
+ FormattedTextBox._downEvent = true;
FormattedTextBoxComment.textBox = this;
- let pos = this._editorView!.posAtCoords({ left: e.clientX, top: e.clientY });
- pos && (this._nodeClicked = this._editorView!.state.doc.nodeAt(pos.pos));
if (this.props.onClick && e.button === 0) {
e.preventDefault();
}
- if (e.button === 0 && this.props.isSelected() && !e.altKey && !e.ctrlKey && !e.metaKey) {
- e.stopPropagation();
+ if (e.button === 0 && this.active(true) && !e.altKey && !e.ctrlKey && !e.metaKey) {
+ if (e.clientX < this.ProseRef!.getBoundingClientRect().right) { // don't stop propagation if clicking in the sidebar
+ e.stopPropagation();
+ }
}
if (e.button === 2 || (e.button === 0 && e.ctrlKey)) {
e.preventDefault();
@@ -847,26 +829,42 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
}
onPointerUp = (e: React.PointerEvent): void => {
+ if (!FormattedTextBox._downEvent) return;
+ FormattedTextBox._downEvent = false;
if (!(e.nativeEvent as any).formattedHandled) {
FormattedTextBoxComment.textBox = this;
FormattedTextBoxComment.update(this._editorView!);
}
(e.nativeEvent as any).formattedHandled = true;
- if (e.buttons === 1 && this.props.isSelected() && !e.altKey) {
+ if (e.buttons === 1 && this.props.isSelected(true) && !e.altKey) {
e.stopPropagation();
}
}
- static InputBoxOverlay: FormattedTextBox | undefined;
@action
onFocused = (e: React.FocusEvent): void => {
- FormattedTextBox.InputBoxOverlay = this;
+ FormattedTextBox.FocusedBox = this;
this.tryUpdateHeight();
+
+ // see if we need to preserve the insertion point
+ const prosediv = this.ProseRef?.children?.[0] as any;
+ const keeplocation = prosediv?.keeplocation;
+ prosediv && (prosediv.keeplocation = undefined);
+ const pos = this._editorView?.state.selection.$from.pos || 1;
+ keeplocation && setTimeout(() => this._editorView?.dispatch(this._editorView?.state.tr.setSelection(TextSelection.create(this._editorView.state.doc, pos))));
+
+ // jump rich text menu to this textbox
+ const { current } = this._ref;
+ if (current) {
+ const x = Math.min(Math.max(current.getBoundingClientRect().left, 0), window.innerWidth - RichTextMenu.Instance.width);
+ const y = this._ref.current!.getBoundingClientRect().top - RichTextMenu.Instance.height - 50;
+ RichTextMenu.Instance.jumpTo(x, y);
+ }
}
onPointerWheel = (e: React.WheelEvent): void => {
// if a text note is not selected and scrollable, this prevents us from being able to scroll and zoom out at the same time
- if (this.props.isSelected() || e.currentTarget.scrollHeight > e.currentTarget.clientHeight) {
+ if (this.props.isSelected(true) || e.currentTarget.scrollHeight > e.currentTarget.clientHeight) {
e.stopPropagation();
}
}
@@ -875,9 +873,23 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
static _userStyleSheet: any = addStyleSheet();
onClick = (e: React.MouseEvent): void => {
+ if ((this._editorView!.root as any).getSelection().isCollapsed) { // this is a hack to allow the cursor to be placed at the end of a document when the document ends in an inline dash comment. Apparently Chrome on Windows has a bug/feature which breaks this when clicking after the end of the text.
+ const pcords = this._editorView!.posAtCoords({ left: e.clientX, top: e.clientY });
+ const node = pcords && this._editorView!.state.doc.nodeAt(pcords.pos); // get what prosemirror thinks the clicked node is (if it's null, then we didn't click on any text)
+ if (pcords && node?.type === this._editorView!.state.schema.nodes.dashComment) {
+ this._editorView!.dispatch(this._editorView!.state.tr.setSelection(TextSelection.create(this._editorView!.state.doc, pcords.pos + 2)));
+ e.preventDefault();
+ }
+ if (!node && this.ProseRef) {
+ const lastNode = this.ProseRef.children[this.ProseRef.children.length - 1].children[this.ProseRef.children[this.ProseRef.children.length - 1].children.length - 1]; // get the last prosemirror div
+ if (e.clientY > lastNode?.getBoundingClientRect().bottom) { // if we clicked below the last prosemirror div, then set the selection to be the end of the document
+ this._editorView!.dispatch(this._editorView!.state.tr.setSelection(TextSelection.create(this._editorView!.state.doc, this._editorView!.state.doc.content.size)));
+ }
+ }
+ }
if ((e.nativeEvent as any).formattedHandled) { e.stopPropagation(); return; }
(e.nativeEvent as any).formattedHandled = true;
- // if (e.button === 0 && ((!this.props.isSelected() && !e.ctrlKey) || (this.props.isSelected() && e.ctrlKey)) && !e.metaKey && e.target) {
+ // if (e.button === 0 && ((!this.props.isSelected(true) && !e.ctrlKey) || (this.props.isSelected(true) && e.ctrlKey)) && !e.metaKey && e.target) {
// let href = (e.target as any).href;
// let location: string;
// if ((e.target as any).attributes.location) {
@@ -910,31 +922,42 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
// }
// }
- this.hitBulletTargets(e.clientX, e.clientY, e.nativeEvent.offsetX, e.shiftKey);
+ this.hitBulletTargets(e.clientX, e.clientY, e.shiftKey, false);
if (this._recording) setTimeout(() => { this.stopDictation(true); setTimeout(() => this.recordDictation(), 500); }, 500);
}
// this hackiness handles clicking on the list item bullets to do expand/collapse. the bullets are ::before pseudo elements so there's no real way to hit test against them.
- hitBulletTargets(x: number, y: number, offsetX: number, select: boolean = false) {
+ hitBulletTargets(x: number, y: number, select: boolean, highlightOnly: boolean) {
clearStyleSheetRules(FormattedTextBox._bulletStyleSheet);
- if (this.props.isSelected() && offsetX < 40) {
- let pos = this._editorView!.posAtCoords({ left: x, top: y });
- if (pos && pos.pos > 0) {
- let node = this._editorView!.state.doc.nodeAt(pos.pos);
- let node2 = node && node.type === schema.nodes.paragraph ? this._editorView!.state.doc.nodeAt(pos.pos - 1) : undefined;
- if (node === this._nodeClicked && node2 && (node2.type === schema.nodes.ordered_list || node2.type === schema.nodes.list_item)) {
- let hit = this._editorView!.domAtPos(pos.pos).node as any; // let beforeEle = document.querySelector("." + hit.className) as Element;
- let before = hit ? window.getComputedStyle(hit, ':before') : undefined;
- let beforeWidth = before ? Number(before.getPropertyValue('width').replace("px", "")) : undefined;
- if (beforeWidth && offsetX < beforeWidth) {
- let ol = this._editorView!.state.doc.nodeAt(pos.pos - 2) ? this._editorView!.state.doc.nodeAt(pos.pos - 2) : undefined;
- if (ol && ol.type === schema.nodes.ordered_list && select) {
- this._editorView!.dispatch(this._editorView!.state.tr.setSelection(new NodeSelection(this._editorView!.state.doc.resolve(pos.pos - 2))));
- addStyleSheetRule(FormattedTextBox._bulletStyleSheet, hit.className + ":before", { background: "gray" });
- } else {
- this._editorView!.dispatch(this._editorView!.state.tr.setNodeMarkup(pos.pos - 1, node2.type, { ...node2.attrs, visibility: !node2.attrs.visibility }));
- }
+ const pos = this._editorView!.posAtCoords({ left: x, top: y });
+ if (pos && this.props.isSelected(true)) {
+ // let beforeEle = document.querySelector("." + hit.className) as Element; // const before = hit ? window.getComputedStyle(hit, ':before') : undefined;
+ //const node = this._editorView!.state.doc.nodeAt(pos.pos);
+ const $pos = this._editorView!.state.doc.resolve(pos.pos);
+ let list_node = $pos.node().type === schema.nodes.list_item ? $pos.node() : undefined;
+ if ($pos.node().type === schema.nodes.ordered_list) {
+ for (let off = 1; off < 100; off++) {
+ const pos = this._editorView!.posAtCoords({ left: x + off, top: y });
+ const node = pos && this._editorView!.state.doc.nodeAt(pos.pos);
+ if (node?.type === schema.nodes.list_item) {
+ list_node = node;
+ break;
+ }
+ }
+ }
+ if (list_node && pos.inside >= 0 && this._editorView!.state.doc.nodeAt(pos.inside)!.attrs.bulletStyle === list_node.attrs.bulletStyle) {
+ if (select) {
+ const $olist_pos = this._editorView!.state.doc.resolve($pos.pos - $pos.parentOffset - 1);
+ if (!highlightOnly) {
+ this._editorView!.dispatch(this._editorView!.state.tr.setSelection(new NodeSelection($olist_pos)));
+ }
+ addStyleSheetRule(FormattedTextBox._bulletStyleSheet, list_node.attrs.mapStyle + list_node.attrs.bulletStyle + ":hover:before", { background: "lightgray" });
+ } else if (Math.abs(pos.pos - pos.inside) < 2) {
+ if (!highlightOnly) {
+ this._editorView!.dispatch(this._editorView!.state.tr.setNodeMarkup(pos.inside, list_node.type, { ...list_node.attrs, visibility: !list_node.attrs.visibility }));
+ this._editorView!.dispatch(this._editorView!.state.tr.setSelection(TextSelection.create(this._editorView!.state.doc, pos.inside)));
}
+ addStyleSheetRule(FormattedTextBox._bulletStyleSheet, list_node.attrs.mapStyle + list_node.attrs.bulletStyle + ":hover:before", { background: "lightgray" });
}
}
}
@@ -942,11 +965,11 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
onMouseUp = (e: React.MouseEvent): void => {
e.stopPropagation();
- let view = this._editorView as any;
+ const view = this._editorView as any;
// this interposes on prosemirror's upHandler to prevent prosemirror's up from invoked multiple times when there
// are nested prosemirrors. We only want the lowest level prosemirror to be invoked.
if (view.mouseDown) {
- let originalUpHandler = view.mouseDown.up;
+ const originalUpHandler = view.mouseDown.up;
view.root.removeEventListener("mouseup", originalUpHandler);
view.mouseDown.up = (e: MouseEvent) => {
!(e as any).formattedHandled && originalUpHandler(e);
@@ -957,23 +980,16 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
}
}
- tooltipTextMenuPlugin() {
- let self = FormattedTextBox;
+ richTextMenuPlugin() {
+ const self = FormattedTextBox;
return new Plugin({
view(newView) {
- return self.ToolTipTextMenu = FormattedTextBox.getToolTip(newView);
+ RichTextMenu.Instance.changeView(newView);
+ return RichTextMenu.Instance;
}
});
}
- tooltipLinkingMenuPlugin() {
- let myprops = this.props;
- return new Plugin({
- view(_editorView) {
- return new TooltipLinkingMenu(_editorView, myprops);
- }
- });
- }
onBlur = (e: any) => {
//DictationManager.Controls.stop(false);
if (this._undoTyping) {
@@ -981,63 +997,99 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
this._undoTyping = undefined;
}
this.doLinkOnDeselect();
+
+ // move the richtextmenu offscreen
+ if (!RichTextMenu.Instance.Pinned && !RichTextMenu.Instance.overMenu) RichTextMenu.Instance.jumpTo(-300, -300);
}
+
+ _lastTimedMark: Mark | undefined = undefined;
onKeyPress = (e: React.KeyboardEvent) => {
+ if (e.altKey) {
+ e.preventDefault();
+ return;
+ }
+ const state = this._editorView!.state;
+ if (!state.selection.empty && e.key === "%") {
+ state.schema.EnteringStyle = true;
+ e.preventDefault();
+ e.stopPropagation();
+ return;
+ }
+
+ if (state.selection.empty || !state.schema.EnteringStyle) {
+ state.schema.EnteringStyle = false;
+ }
if (e.key === "Escape") {
+ this._editorView!.dispatch(state.tr.setSelection(TextSelection.create(state.doc, state.selection.from, state.selection.from)));
+ (document.activeElement as any).blur?.();
SelectionManager.DeselectAll();
}
e.stopPropagation();
if (e.key === "Tab" || e.key === "Enter") {
e.preventDefault();
}
- let mark = schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.round(Date.now() / 1000 / 5) });
+ const mark = e.key !== " " && this._lastTimedMark ? this._lastTimedMark : schema.marks.user_mark.create({ userid: Doc.CurrentUserEmail, modified: Math.round(Date.now() / 1000 / 5) });
+ this._lastTimedMark = mark;
this._editorView!.dispatch(this._editorView!.state.tr.removeStoredMark(schema.marks.user_mark.create({})).addStoredMark(mark));
if (!this._undoTyping) {
this._undoTyping = UndoManager.StartBatch("undoTyping");
}
- if (this._recording) { this.stopDictation(true); setTimeout(() => this.recordDictation(), 250); }
+ if (this._recording) {
+ this.stopDictation(true);
+ setTimeout(() => this.recordDictation(), 250);
+ }
}
@action
- tryUpdateHeight() {
- let scrollHeight = this._ref.current ? this._ref.current.scrollHeight : 0;
- if (!this.layoutDoc.isAnimating && this.layoutDoc.autoHeight && scrollHeight !== 0 &&
+ tryUpdateHeight(limitHeight?: number) {
+ let scrollHeight = this._ref.current?.scrollHeight;
+ if (!this.layoutDoc.animateToPos && this.layoutDoc._autoHeight && scrollHeight &&
getComputedStyle(this._ref.current!.parentElement!).top === "0px") { // if top === 0, then the text box is growing upward (as the overlay caption) which doesn't contribute to the height computation
- let nh = this.Document.isTemplateField ? 0 : NumCast(this.dataDoc.nativeHeight, 0);
- let dh = NumCast(this.layoutDoc.height, 0);
- this.layoutDoc.height = Math.max(10, (nh ? dh / nh * scrollHeight : scrollHeight) + (this.props.ChromeHeight ? this.props.ChromeHeight() : 0));
- this.dataDoc.nativeHeight = nh ? scrollHeight : undefined;
+ if (limitHeight && scrollHeight > limitHeight) {
+ scrollHeight = limitHeight;
+ this.layoutDoc.limitHeight = undefined;
+ this.layoutDoc._autoHeight = false;
+ }
+ const nh = this.Document.isTemplateForField ? 0 : NumCast(this.dataDoc._nativeHeight, 0);
+ const dh = NumCast(this.layoutDoc._height, 0);
+ const newHeight = Math.max(10, (nh ? dh / nh * scrollHeight : scrollHeight) + (this.props.ChromeHeight ? this.props.ChromeHeight() : 0));
+ if (Math.abs(newHeight - dh) > 1) { // bcz: Argh! without this, we get into a React crash if the same document is opened in a freeform view and in the treeview. no idea why, but after dragging the freeform document, selecting it, and selecting text, it will compute to 1 pixel higher than the treeview which causes a cycle
+ this.layoutDoc._height = newHeight;
+ this.dataDoc._nativeHeight = nh ? scrollHeight : undefined;
+ }
}
}
- @computed get sidebarWidthPercent() { return StrCast(this.props.Document.sidebarWidth, "0%"); }
+ @computed get sidebarWidthPercent() { return StrCast(this.props.Document.sidebarWidthPercent, "0%"); }
@computed get sidebarWidth() { return Number(this.sidebarWidthPercent.substring(0, this.sidebarWidthPercent.length - 1)) / 100 * this.props.PanelWidth(); }
- @computed get annotationsKey() { return "annotations"; }
+ @computed get sidebarColor() { return StrCast(this.layoutDoc[this.props.fieldKey + "-backgroundColor"], StrCast(this.layoutDoc[this.props.fieldKey + "-backgroundColor"], "transparent")); }
render() {
- trace();
- let rounded = StrCast(this.layoutDoc.borderRounding) === "100%" ? "-rounded" : "";
- let interactive = InkingControl.Instance.selectedTool || this.layoutDoc.isBackground;
+ TraceMobx();
+ const rounded = StrCast(this.layoutDoc.borderRounding) === "100%" ? "-rounded" : "";
+ const interactive = InkingControl.Instance.selectedTool || this.layoutDoc.isBackground;
if (this.props.isSelected()) {
- FormattedTextBox.ToolTipTextMenu!.updateFromDash(this._editorView!, undefined, this.props);
+ // TODO: ftong --> update from dash in richtextmenu
+ RichTextMenu.Instance.updateFromDash(this._editorView!, undefined, this.props);
} else if (FormattedTextBoxComment.textBox === this) {
FormattedTextBoxComment.Hide();
}
return (
<div className={`formattedTextBox-cont`} ref={this._ref}
style={{
- height: this.layoutDoc.autoHeight ? "max-content" : this.props.height ? this.props.height : undefined,
+ height: this.layoutDoc._autoHeight ? "max-content" : undefined,
background: this.props.hideOnLeave ? "rgba(0,0,0 ,0.4)" : undefined,
opacity: this.props.hideOnLeave ? (this._entered ? 1 : 0.1) : 1,
- color: this.props.color ? this.props.color : this.props.hideOnLeave ? "white" : "inherit",
+ color: this.props.hideOnLeave ? "white" : "inherit",
pointerEvents: interactive ? "none" : "all",
- fontSize: this._ruleFontSize ? this._ruleFontSize : NumCast(this.layoutDoc.fontSize, 13),
- fontFamily: this._ruleFontFamily ? this._ruleFontFamily : StrCast(this.layoutDoc.fontFamily, "Crimson Text"),
+ fontSize: NumCast(this.layoutDoc.fontSize, 13),
+ fontFamily: StrCast(this.layoutDoc.fontFamily, "Crimson Text"),
}}
onContextMenu={this.specificContextMenu}
onKeyDown={this.onKeyPress}
onFocus={this.onFocused}
onClick={this.onClick}
+ onPointerMove={e => this.hitBulletTargets(e.clientX, e.clientY, e.shiftKey, true)}
onBlur={this.onBlur}
onPointerUp={this.onPointerUp}
onPointerDown={this.onPointerDown}
@@ -1046,32 +1098,35 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
onPointerEnter={action(() => this._entered = true)}
onPointerLeave={action(() => this._entered = false)}
>
- <div className={`formattedTextBox-outer`} style={{ width: `calc(100% - ${this.sidebarWidthPercent})`, }}>
+ <div className={`formattedTextBox-outer`} style={{ width: `calc(100% - ${this.sidebarWidthPercent})`, }} ref={this._scrollRef}>
<div className={`formattedTextBox-inner${rounded}`} style={{ whiteSpace: "pre-wrap", pointerEvents: ((this.Document.isButton || this.props.onClick) && !this.props.isSelected()) ? "none" : undefined }} ref={this.createDropTarget} />
</div>
- {this.sidebarWidthPercent === "0%" ? (null) : <div style={{ borderLeft: "solid 1px black", width: `${this.sidebarWidthPercent}`, height: "100%", display: "inline-block" }}>
- <CollectionFreeFormView {...this.props}
- PanelHeight={() => this.props.PanelHeight()}
- PanelWidth={() => this.sidebarWidth}
- annotationsKey={this.annotationsKey}
- isAnnotationOverlay={true}
- focus={this.props.focus}
- isSelected={this.props.isSelected}
- select={emptyFunction}
- active={this.active}
- ContentScaling={returnOne}
- whenActiveChanged={this.whenActiveChanged}
- removeDocument={this.removeDocument}
- moveDocument={this.moveDocument}
- addDocument={this.addDocument}
- CollectionView={undefined}
- ScreenToLocalTransform={() => this.props.ScreenToLocalTransform().translate(-(this.props.PanelWidth() - this.sidebarWidth), 0)}
- ruleProvider={undefined}
- renderDepth={this.props.renderDepth + 1}
- ContainingCollectionDoc={this.props.ContainingCollectionDoc}
- chromeCollapsed={true}>
- </CollectionFreeFormView>
- </div>}
+ {this.props.Document._hideSidebar ? (null) : this.sidebarWidthPercent === "0%" ?
+ <div className="formattedTextBox-sidebar-handle" onPointerDown={this.sidebarDown} onClick={e => this.toggleSidebar()} /> :
+ <div className={"formattedTextBox-sidebar" + (InkingControl.Instance.selectedTool !== InkTool.None ? "-inking" : "")}
+ style={{ width: `${this.sidebarWidthPercent}`, backgroundColor: `${this.sidebarColor}` }}>
+ <CollectionFreeFormView {...this.props}
+ PanelHeight={this.props.PanelHeight}
+ PanelWidth={() => this.sidebarWidth}
+ annotationsKey={this.annotationKey}
+ isAnnotationOverlay={false}
+ focus={this.props.focus}
+ isSelected={this.props.isSelected}
+ select={emptyFunction}
+ active={this.annotationsActive}
+ ContentScaling={returnOne}
+ whenActiveChanged={this.whenActiveChanged}
+ removeDocument={this.removeDocument}
+ moveDocument={this.moveDocument}
+ addDocument={(doc: Doc) => { doc._hideSidebar = true; return this.addDocument(doc); }}
+ CollectionView={undefined}
+ ScreenToLocalTransform={() => this.props.ScreenToLocalTransform().translate(-(this.props.PanelWidth() - this.sidebarWidth), 0)}
+ renderDepth={this.props.renderDepth + 1}
+ ContainingCollectionDoc={this.props.ContainingCollectionDoc}
+ chromeCollapsed={true}>
+ </CollectionFreeFormView>
+ <div className="formattedTextBox-sidebar-handle" onPointerDown={this.sidebarDown} onClick={e => this.toggleSidebar()} />
+ </div>}
<div className="formattedTextBox-dictation"
onClick={e => {
this._recording ? this.stopDictation(true) : this.recordDictation();
@@ -1079,7 +1134,7 @@ export class FormattedTextBox extends DocAnnotatableComponent<(FieldViewProps &
e.stopPropagation();
}} >
<FontAwesomeIcon className="formattedTExtBox-audioFont"
- style={{ color: this._recording ? "red" : "blue", opacity: this._recording ? 1 : 0.2 }} icon={"microphone"} size="sm" />
+ style={{ color: this._recording ? "red" : "blue", opacity: this._recording ? 1 : 0.5, display: this.props.isSelected() ? "" : "none" }} icon={"microphone"} size="sm" />
</div>
</div>
);
diff --git a/src/client/views/nodes/FormattedTextBoxComment.tsx b/src/client/views/nodes/FormattedTextBoxComment.tsx
index c076fd34a..fda3e3285 100644
--- a/src/client/views/nodes/FormattedTextBoxComment.tsx
+++ b/src/client/views/nodes/FormattedTextBoxComment.tsx
@@ -4,7 +4,7 @@ import { EditorView } from "prosemirror-view";
import * as ReactDOM from 'react-dom';
import { Doc } from "../../../new_fields/Doc";
import { Cast, FieldValue, NumCast } from "../../../new_fields/Types";
-import { emptyFunction, returnEmptyString, returnFalse, Utils } from "../../../Utils";
+import { emptyFunction, returnEmptyString, returnFalse, Utils, emptyPath } from "../../../Utils";
import { DocServer } from "../../DocServer";
import { DocumentManager } from "../../util/DocumentManager";
import { schema } from "../../util/RichTextSchema";
@@ -57,7 +57,6 @@ export class FormattedTextBoxComment {
static start: number;
static end: number;
static mark: Mark;
- static opened: boolean;
static textBox: FormattedTextBox | undefined;
static linkDoc: Doc | undefined;
constructor(view: any) {
@@ -81,19 +80,18 @@ export class FormattedTextBoxComment {
FormattedTextBoxComment.tooltip.style.display = "none";
FormattedTextBoxComment.tooltip.appendChild(FormattedTextBoxComment.tooltipInput);
FormattedTextBoxComment.tooltip.onpointerdown = (e: PointerEvent) => {
- let keep = e.target && (e.target as any).type === "checkbox" ? true : false;
+ const keep = e.target && (e.target as any).type === "checkbox" ? true : false;
const textBox = FormattedTextBoxComment.textBox;
if (FormattedTextBoxComment.linkDoc && !keep && textBox) {
DocumentManager.Instance.FollowLink(FormattedTextBoxComment.linkDoc, textBox.props.Document,
(doc: Doc, maxLocation: string) => textBox.props.addDocTab(doc, undefined, e.ctrlKey ? "inTab" : "onRight"));
} else if (textBox && (FormattedTextBoxComment.tooltipText as any).href) {
- textBox.props.addDocTab(Docs.Create.WebDocument((FormattedTextBoxComment.tooltipText as any).href, { title: (FormattedTextBoxComment.tooltipText as any).href, width: 200, height: 400 }), undefined, "onRight");
+ textBox.props.addDocTab(Docs.Create.WebDocument((FormattedTextBoxComment.tooltipText as any).href, { title: (FormattedTextBoxComment.tooltipText as any).href, _width: 200, _height: 400 }), undefined, "onRight");
}
- FormattedTextBoxComment.opened = keep || !FormattedTextBoxComment.opened;
- textBox && FormattedTextBoxComment.start !== undefined && textBox.setAnnotation(
- FormattedTextBoxComment.start, FormattedTextBoxComment.end, FormattedTextBoxComment.mark,
- FormattedTextBoxComment.opened, keep);
+ keep && textBox && FormattedTextBoxComment.start !== undefined && textBox.adoptAnnotation(
+ FormattedTextBoxComment.start, FormattedTextBoxComment.end, FormattedTextBoxComment.mark);
e.stopPropagation();
+ e.preventDefault();
};
root && root.appendChild(FormattedTextBoxComment.tooltip);
}
@@ -103,17 +101,16 @@ export class FormattedTextBoxComment {
FormattedTextBoxComment.textBox = undefined;
FormattedTextBoxComment.tooltip && (FormattedTextBoxComment.tooltip.style.display = "none");
}
- public static SetState(textBox: any, opened: boolean, start: number, end: number, mark: Mark) {
+ public static SetState(textBox: any, start: number, end: number, mark: Mark) {
FormattedTextBoxComment.textBox = textBox;
FormattedTextBoxComment.start = start;
FormattedTextBoxComment.end = end;
FormattedTextBoxComment.mark = mark;
- FormattedTextBoxComment.opened = opened;
FormattedTextBoxComment.tooltip && (FormattedTextBoxComment.tooltip.style.display = "");
}
static update(view: EditorView, lastState?: EditorState) {
- let state = view.state;
+ const state = view.state;
// Don't do anything if the document/selection didn't change
if (lastState && lastState.doc.eq(state.doc) &&
lastState.selection.eq(state.selection)) {
@@ -136,13 +133,13 @@ export class FormattedTextBoxComment {
// this section checks to see if the insertion point is over text entered by a different user. If so, it sets ths comment text to indicate the user and the modification date
if (state.selection.$from) {
nbef = findStartOfMark(state.selection.$from, view, findOtherUserMark);
- let naft = findEndOfMark(state.selection.$from, view, findOtherUserMark);
- let noselection = view.state.selection.$from === view.state.selection.$to;
+ const naft = findEndOfMark(state.selection.$from, view, findOtherUserMark);
+ const noselection = view.state.selection.$from === view.state.selection.$to;
let child: any = null;
state.doc.nodesBetween(state.selection.from, state.selection.to, (node: any, pos: number, parent: any) => !child && node.marks.length && (child = node));
- let mark = child && findOtherUserMark(child.marks);
+ const mark = child && findOtherUserMark(child.marks);
if (mark && child && (nbef || naft) && (!mark.attrs.opened || noselection)) {
- FormattedTextBoxComment.SetState(FormattedTextBoxComment.textBox, mark.attrs.opened, state.selection.$from.pos - nbef, state.selection.$from.pos + naft, mark);
+ FormattedTextBoxComment.SetState(FormattedTextBoxComment.textBox, state.selection.$from.pos - nbef, state.selection.$from.pos + naft, mark);
}
if (mark && child && ((nbef && naft) || !noselection)) {
FormattedTextBoxComment.tooltipText.textContent = mark.attrs.userid + " date=" + (new Date(mark.attrs.modified * 5000)).toDateString();
@@ -153,39 +150,41 @@ export class FormattedTextBoxComment {
// this checks if the selection is a hyperlink. If so, it displays the target doc's text for internal links, and the url of the target for external links.
if (set === "none" && state.selection.$from) {
nbef = findStartOfMark(state.selection.$from, view, findLinkMark);
- let naft = findEndOfMark(state.selection.$from, view, findLinkMark);
+ const naft = findEndOfMark(state.selection.$from, view, findLinkMark);
let child: any = null;
state.doc.nodesBetween(state.selection.from, state.selection.to, (node: any, pos: number, parent: any) => !child && node.marks.length && (child = node));
- let mark = child && findLinkMark(child.marks);
- if (mark && child && nbef && naft) {
+ const mark = child && findLinkMark(child.marks);
+ if (mark && child && nbef && naft && mark.attrs.showPreview) {
FormattedTextBoxComment.tooltipText.textContent = "external => " + mark.attrs.href;
+ (FormattedTextBoxComment.tooltipText as any).href = mark.attrs.href;
if (mark.attrs.href.startsWith("https://en.wikipedia.org/wiki/")) {
wiki().page(mark.attrs.href.replace("https://en.wikipedia.org/wiki/", "")).then(page => page.summary().then(summary => FormattedTextBoxComment.tooltipText.textContent = summary.substring(0, 500)));
} else {
FormattedTextBoxComment.tooltipText.style.whiteSpace = "pre";
FormattedTextBoxComment.tooltipText.style.overflow = "hidden";
}
- (FormattedTextBoxComment.tooltipText as any).href = mark.attrs.href;
if (mark.attrs.href.indexOf(Utils.prepend("/doc/")) === 0) {
- let docTarget = mark.attrs.href.replace(Utils.prepend("/doc/"), "").split("?")[0];
+ FormattedTextBoxComment.tooltipText.textContent = "target not found...";
+ (FormattedTextBoxComment.tooltipText as any).href = "";
+ const docTarget = mark.attrs.href.replace(Utils.prepend("/doc/"), "").split("?")[0];
docTarget && DocServer.GetRefField(docTarget).then(linkDoc => {
if (linkDoc instanceof Doc) {
+ (FormattedTextBoxComment.tooltipText as any).href = mark.attrs.href;
FormattedTextBoxComment.linkDoc = linkDoc;
- const target = FieldValue(Doc.AreProtosEqual(FieldValue(Cast(linkDoc.anchor1, Doc)), textBox.props.Document) ? Cast(linkDoc.anchor2, Doc) : Cast(linkDoc.anchor1, Doc));
+ const target = FieldValue(Doc.AreProtosEqual(FieldValue(Cast(linkDoc.anchor1, Doc)), textBox.props.Document) ? Cast(linkDoc.anchor2, Doc) : (Cast(linkDoc.anchor1, Doc)) || linkDoc);
try {
ReactDOM.unmountComponentAtNode(FormattedTextBoxComment.tooltipText);
} catch (e) { }
if (target) {
ReactDOM.render(<ContentFittingDocumentView
- fitToBox={true}
Document={target}
+ LibraryPath={emptyPath}
+ fitToBox={true}
moveDocument={returnFalse}
getTransform={Transform.Identity}
active={returnFalse}
- setPreviewScript={returnEmptyString}
addDocument={returnFalse}
removeDocument={returnFalse}
- ruleProvider={undefined}
addDocTab={returnFalse}
pinToPres={returnFalse}
dontRegisterView={true}
@@ -210,12 +209,12 @@ export class FormattedTextBoxComment {
if (set !== "none") {
// These are in screen coordinates
// let start = view.coordsAtPos(state.selection.from), end = view.coordsAtPos(state.selection.to);
- let start = view.coordsAtPos(state.selection.from - nbef), end = view.coordsAtPos(state.selection.from - nbef);
+ const start = view.coordsAtPos(state.selection.from - nbef), end = view.coordsAtPos(state.selection.from - nbef);
// The box in which the tooltip is positioned, to use as base
- let box = (document.getElementById("mainView-container") as any).getBoundingClientRect();
+ const box = (document.getElementById("mainView-container") as any).getBoundingClientRect();
// Find a center-ish x position from the selection endpoints (when
// crossing lines, end may be more to the left)
- let left = Math.max((start.left + end.left) / 2, start.left + 3);
+ const left = Math.max((start.left + end.left) / 2, start.left + 3);
FormattedTextBoxComment.tooltip.style.left = (left - box.left) + "px";
FormattedTextBoxComment.tooltip.style.bottom = (box.bottom - start.top) + "px";
}
diff --git a/src/client/views/nodes/IconBox.tsx b/src/client/views/nodes/IconBox.tsx
index 60f547b1e..172338eb6 100644
--- a/src/client/views/nodes/IconBox.tsx
+++ b/src/client/views/nodes/IconBox.tsx
@@ -51,7 +51,7 @@ export class IconBox extends React.Component<FieldViewProps> {
}
public static DocumentIcon(layout: string) {
- let button = layout.indexOf("PDFBox") !== -1 ? faFilePdf :
+ const button = layout.indexOf("PDFBox") !== -1 ? faFilePdf :
layout.indexOf("ImageBox") !== -1 ? faImage :
layout.indexOf("Formatted") !== -1 ? faStickyNote :
layout.indexOf("Video") !== -1 ? faFilm :
@@ -65,21 +65,21 @@ export class IconBox extends React.Component<FieldViewProps> {
}
specificContextMenu = (): void => {
- let cm = ContextMenu.Instance;
+ const cm = ContextMenu.Instance;
cm.addItem({ description: this.props.Document.hideLabel ? "Show label with icon" : "Remove label from icon", event: this.setLabelField, icon: "tag" });
if (!this.props.Document.hideLabel) {
cm.addItem({ description: "Use Target Title", event: () => IconBox.AutomaticTitle(this.props.Document), icon: "text-height" });
}
}
render() {
- let label = this.props.Document.hideLabel ? "" : this.props.Document.title;
+ const label = this.props.Document.hideLabel ? "" : this.props.Document.title;
return (
<div className="iconBox-container" onContextMenu={this.specificContextMenu}>
{this.minimizedIcon}
<Measure offset onResize={(r) => runInAction(() => {
if (r.offset!.width || this.props.Document.hideLabel) {
this.props.Document.iconWidth = (r.offset!.width + Number(MINIMIZED_ICON_SIZE));
- if (this.props.Document.height === Number(MINIMIZED_ICON_SIZE)) this.props.Document.width = this.props.Document.iconWidth;
+ if (this.props.Document._height === Number(MINIMIZED_ICON_SIZE)) this.props.Document._width = this.props.Document.iconWidth;
}
})}>
{({ measureRef }) =>
diff --git a/src/client/views/nodes/ImageBox.scss b/src/client/views/nodes/ImageBox.scss
index 57c024bbf..43f4a0ba9 100644
--- a/src/client/views/nodes/ImageBox.scss
+++ b/src/client/views/nodes/ImageBox.scss
@@ -1,4 +1,32 @@
-.imageBox-cont, .imageBox-cont-interactive {
+.imageBox,
+.imageBox-dragging {
+ pointer-events: all;
+ border-radius: inherit;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ transform-origin: top left;
+
+ .imageBox-fader {
+ pointer-events: all;
+ }
+}
+
+.imageBox-dragging {
+ .imageBox-fader {
+ pointer-events: none;
+ }
+}
+
+#upload-icon {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width: 20px;
+ height: 20px;
+}
+
+.imageBox-cont {
padding: 0vw;
position: absolute;
text-align: center;
@@ -7,18 +35,13 @@
max-width: 100%;
max-height: 100%;
pointer-events: none;
- background:transparent;
-}
+ background: transparent;
-.imageBox-container {
- border-radius: inherit;
- width:100%;
- height:100%;
- position: absolute;
-}
-
-.imageBox-cont-interactive {
- pointer-events: all;
+ img {
+ height: auto;
+ width: 100%;
+ pointer-events: all;
+ }
}
.imageBox-dot {
@@ -31,16 +54,6 @@
background: gray;
}
-.imageBox-cont img {
- height: auto;
- width: 100%;
-}
-
-.imageBox-cont-interactive img {
- height: auto;
- width: 100%;
-}
-
#google-photos {
transition: all 0.5s ease 0s;
width: 30px;
@@ -53,9 +66,10 @@
padding: 3px;
background: white;
cursor: pointer;
- opacity:0.15;
+ opacity: 0.15;
}
-#google-photos:hover{
+
+#google-photos:hover {
opacity: 1;
}
@@ -98,18 +112,18 @@
}
}
-#cf {
+.imageBox-fader {
position: relative;
width: 100%;
margin: 0 auto;
display: flex;
- align-items: center;
height: 100%;
overflow: hidden;
.imageBox-fadeBlocker {
width: 100%;
height: 100%;
+ position: absolute;
background: black;
display: flex;
flex-direction: row;
@@ -124,7 +138,7 @@
}
}
-#cf img {
+.imageBox-fader img {
position: absolute;
left: 0;
}
@@ -136,10 +150,12 @@
transition: opacity 1s ease-in-out;
}
-.imageBox-fadeBlocker:hover {
- -webkit-transition: opacity 1s ease-in-out;
- -moz-transition: opacity 1s ease-in-out;
- -o-transition: opacity 1s ease-in-out;
- transition: opacity 1s ease-in-out;
- opacity: 0;
+.imageBox:hover {
+ .imageBox-fadeBlocker {
+ -webkit-transition: opacity 1s ease-in-out;
+ -moz-transition: opacity 1s ease-in-out;
+ -o-transition: opacity 1s ease-in-out;
+ transition: opacity 1s ease-in-out;
+ opacity: 0;
+ }
} \ No newline at end of file
diff --git a/src/client/views/nodes/ImageBox.tsx b/src/client/views/nodes/ImageBox.tsx
index fa8eb7736..207546936 100644
--- a/src/client/views/nodes/ImageBox.tsx
+++ b/src/client/views/nodes/ImageBox.tsx
@@ -4,14 +4,13 @@ import { faAsterisk, faFileAudio, faImage, faPaintBrush, faBrain } from '@fortaw
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { action, computed, observable, runInAction, trace } from 'mobx';
import { observer } from "mobx-react";
-import { Doc, DocListCast, HeightSym, WidthSym } from '../../../new_fields/Doc';
+import { Doc, DocListCast, HeightSym, WidthSym, DataSym } from '../../../new_fields/Doc';
import { List } from '../../../new_fields/List';
import { createSchema, listSpec, makeInterface } from '../../../new_fields/Schema';
import { ComputedField } from '../../../new_fields/ScriptField';
-import { BoolCast, Cast, FieldValue, NumCast, StrCast } from '../../../new_fields/Types';
+import { Cast, NumCast, StrCast } from '../../../new_fields/Types';
import { AudioField, ImageField } from '../../../new_fields/URLField';
-import { RouteStore } from '../../../server/RouteStore';
-import { Utils, returnOne, emptyFunction, OmitKeys } from '../../../Utils';
+import { Utils, returnOne, emptyFunction } from '../../../Utils';
import { CognitiveServices, Confidence, Service, Tag } from '../../cognitive_services/CognitiveServices';
import { Docs } from '../../documents/Documents';
import { DragManager } from '../../util/DragManager';
@@ -19,7 +18,6 @@ import { undoBatch } from '../../util/UndoManager';
import { ContextMenu } from "../../views/ContextMenu";
import { ContextMenuProps } from '../ContextMenuItem';
import { DocAnnotatableComponent } from '../DocComponent';
-import { InkingControl } from '../InkingControl';
import FaceRectangles from './FaceRectangles';
import { FieldView, FieldViewProps } from './FieldView';
import "./ImageBox.scss";
@@ -28,9 +26,14 @@ import { SearchUtil } from '../../util/SearchUtil';
import { ClientRecommender } from '../../ClientRecommender';
import { CollectionFreeFormView } from '../collections/collectionFreeForm/CollectionFreeFormView';
import { documentSchema } from '../../../new_fields/documentSchemas';
-import { Id } from '../../../new_fields/FieldSymbols';
-var requestImageSize = require('../../util/request-image-size');
-var path = require('path');
+import { Id, Copy } from '../../../new_fields/FieldSymbols';
+import { TraceMobx } from '../../../new_fields/util';
+import { SelectionManager } from '../../util/SelectionManager';
+import { cache } from 'sharp';
+import { ObjectField } from '../../../new_fields/ObjectField';
+import { Networking } from '../../Network';
+const requestImageSize = require('../../util/request-image-size');
+const path = require('path');
const { Howl } = require('howler');
@@ -41,7 +44,6 @@ library.add(faFileAudio, faAsterisk);
export const pageSchema = createSchema({
curPage: "number",
fitWidth: "boolean",
- rotation: "number",
googlePhotosUrl: "string",
googlePhotosTags: "string"
});
@@ -58,6 +60,13 @@ declare class MediaRecorder {
type ImageDocument = makeInterface<[typeof pageSchema, typeof documentSchema]>;
const ImageDocument = makeInterface(pageSchema, documentSchema);
+const uploadIcons = {
+ idle: "downarrow.png",
+ loading: "loading.gif",
+ success: "greencheck.png",
+ failure: "redx.png"
+};
+
@observer
export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocument>(ImageDocument) {
public static LayoutString(fieldKey: string) { return FieldView.LayoutString(ImageBox, fieldKey); }
@@ -65,33 +74,40 @@ export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocum
private _dropDisposer?: DragManager.DragDropDisposer;
@observable private _audioState = 0;
@observable static _showControls: boolean;
+ @observable uploadIcon = uploadIcons.idle;
protected createDropTarget = (ele: HTMLDivElement) => {
this._dropDisposer && this._dropDisposer();
- ele && (this._dropDisposer = DragManager.MakeDropTarget(ele, { handlers: { drop: this.drop.bind(this) } }));
+ ele && (this._dropDisposer = DragManager.MakeDropTarget(ele, this.drop.bind(this)));
}
@undoBatch
@action
drop = (e: Event, de: DragManager.DropEvent) => {
- if (de.data instanceof DragManager.DocumentDragData) {
- if (de.mods === "AltKey" && de.data.draggedDocuments.length && de.data.draggedDocuments[0].data instanceof ImageField) {
- Doc.GetProto(this.dataDoc)[this.props.fieldKey] = new ImageField(de.data.draggedDocuments[0].data.url);
- e.stopPropagation();
+ if (de.complete.docDragData) {
+ if (de.metaKey) {
+ de.complete.docDragData.droppedDocuments.forEach(action((drop: Doc) => {
+ Doc.AddDocToList(this.dataDoc, this.props.fieldKey + "-alternates", drop);
+ e.stopPropagation();
+ }));
+ } else if (de.altKey || !this.dataDoc[this.props.fieldKey]) {
+ const layoutDoc = de.complete.docDragData?.draggedDocuments[0];
+ const targetField = Doc.LayoutFieldKey(layoutDoc);
+ if (layoutDoc?.[DataSym][targetField] instanceof ImageField) {
+ this.dataDoc[this.props.fieldKey] = ObjectField.MakeCopy(layoutDoc[DataSym][targetField] as ImageField);
+ this.dataDoc[this.props.fieldKey + "-nativeWidth"] = NumCast(layoutDoc[DataSym][targetField + "-nativeWidth"]);
+ this.dataDoc[this.props.fieldKey + "-nativeHeight"] = NumCast(layoutDoc[DataSym][targetField + "-nativeHeight"]);
+ e.stopPropagation();
+ }
}
- de.mods === "MetaKey" && de.data.droppedDocuments.forEach(action((drop: Doc) => {
- this.extensionDoc && Doc.AddDocToList(Doc.GetProto(this.extensionDoc), "Alternates", drop);
- e.stopPropagation();
- }));
}
}
recordAudioAnnotation = () => {
let gumStream: any;
let recorder: any;
- let self = this;
- const extensionDoc = this.extensionDoc;
- extensionDoc && navigator.mediaDevices.getUserMedia({
+ const self = this;
+ navigator.mediaDevices.getUserMedia({
audio: true
}).then(function (stream) {
gumStream = stream;
@@ -99,18 +115,18 @@ export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocum
recorder.ondataavailable = async function (e: any) {
const formData = new FormData();
formData.append("file", e.data);
- const res = await fetch(Utils.prepend(RouteStore.upload), {
+ const res = await fetch(Utils.prepend("/uploadFormData"), {
method: 'POST',
body: formData
});
const files = await res.json();
const url = Utils.prepend(files[0].path);
// upload to server with known URL
- let audioDoc = Docs.Create.AudioDocument(url, { title: "audio test", width: 200, height: 32 });
+ const audioDoc = Docs.Create.AudioDocument(url, { title: "audio test", _width: 200, _height: 32 });
audioDoc.treeViewExpandedView = "layout";
- let audioAnnos = Cast(extensionDoc.audioAnnotations, listSpec(Doc));
+ const audioAnnos = Cast(this.dataDoc[this.props.fieldKey + "-audioAnnotations"], listSpec(Doc));
if (audioAnnos === undefined) {
- extensionDoc.audioAnnotations = new List([audioDoc]);
+ this.dataDoc[this.props.fieldKey + "-audioAnnotations"] = new List([audioDoc]);
} else {
audioAnnos.push(audioDoc);
}
@@ -127,26 +143,26 @@ export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocum
@undoBatch
rotate = action(() => {
- let nw = this.Document.nativeWidth;
- let nh = this.Document.nativeHeight;
- let w = this.Document.width;
- let h = this.Document.height;
- this.Document.rotation = ((this.Document.rotation || 0) + 90) % 360;
- this.Document.nativeWidth = nh;
- this.Document.nativeHeight = nw;
- this.Document.width = h;
- this.Document.height = w;
+ const nw = NumCast(this.Document[this.props.fieldKey + "-nativeWidth"]);
+ const nh = NumCast(this.Document[this.props.fieldKey + "-nativeHeight"]);
+ const w = this.Document._width;
+ const h = this.Document._height;
+ this.dataDoc[this.props.fieldKey + "-rotation"] = (NumCast(this.dataDoc[this.props.fieldKey + "-rotation"]) + 90) % 360;
+ this.dataDoc[this.props.fieldKey + "-nativeWidth"] = nh;
+ this.dataDoc[this.props.fieldKey + "-nativeHeight"] = nw;
+ this.Document._width = h;
+ this.Document._height = w;
});
specificContextMenu = (e: React.MouseEvent): void => {
const field = Cast(this.Document[this.props.fieldKey], ImageField);
if (field) {
- let funcs: ContextMenuProps[] = [];
+ const funcs: ContextMenuProps[] = [];
funcs.push({ description: "Copy path", event: () => Utils.CopyText(field.url.href), icon: "expand-arrows-alt" });
funcs.push({ description: "Rotate", event: this.rotate, icon: "expand-arrows-alt" });
- let existingAnalyze = ContextMenu.Instance.findByDescription("Analyzers...");
- let modes: ContextMenuProps[] = existingAnalyze && "subitems" in existingAnalyze ? existingAnalyze.subitems : [];
+ const existingAnalyze = ContextMenu.Instance.findByDescription("Analyzers...");
+ const modes: ContextMenuProps[] = existingAnalyze && "subitems" in existingAnalyze ? existingAnalyze.subitems : [];
modes.push({ description: "Generate Tags", event: this.generateMetadata, icon: "tag" });
modes.push({ description: "Find Faces", event: this.extractFaces, icon: "camera" });
//modes.push({ description: "Recommend", event: this.extractText, icon: "brain" });
@@ -157,33 +173,33 @@ export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocum
}
extractFaces = () => {
- let converter = (results: any) => {
- let faceDocs = new List<Doc>();
+ const converter = (results: any) => {
+ const faceDocs = new List<Doc>();
results.reduce((face: CognitiveServices.Image.Face, faceDocs: List<Doc>) => faceDocs.push(Docs.Get.DocumentHierarchyFromJson(face, `Face: ${face.faceId}`)!), new List<Doc>());
return faceDocs;
};
- this.url && this.extensionDoc && CognitiveServices.Image.Appliers.ProcessImage(this.extensionDoc, ["faces"], this.url, Service.Face, converter);
+ this.url && CognitiveServices.Image.Appliers.ProcessImage(this.dataDoc, [this.props.fieldKey + "-faces"], this.url, Service.Face, converter);
}
generateMetadata = (threshold: Confidence = Confidence.Excellent) => {
- let converter = (results: any) => {
- let tagDoc = new Doc;
- let tagsList = new List();
+ const converter = (results: any) => {
+ const tagDoc = new Doc;
+ const tagsList = new List();
results.tags.map((tag: Tag) => {
tagsList.push(tag.name);
- let sanitized = tag.name.replace(" ", "_");
+ const sanitized = tag.name.replace(" ", "_");
tagDoc[sanitized] = ComputedField.MakeFunction(`(${tag.confidence} >= this.confidence) ? ${tag.confidence} : "${ComputedField.undefined}"`);
});
- this.extensionDoc && (this.extensionDoc.generatedTags = tagsList);
+ this.dataDoc[this.props.fieldKey + "-generatedTags"] = tagsList;
tagDoc.title = "Generated Tags Doc";
tagDoc.confidence = threshold;
return tagDoc;
};
- this.url && this.extensionDoc && CognitiveServices.Image.Appliers.ProcessImage(this.extensionDoc, ["generatedTagsDoc"], this.url, Service.ComputerVision, converter);
+ this.url && CognitiveServices.Image.Appliers.ProcessImage(this.dataDoc, [this.props.fieldKey + "-generatedTagsDoc"], this.url, Service.ComputerVision, converter);
}
@computed private get url() {
- let data = Cast(this.dataDoc[this.props.fieldKey], ImageField);
+ const data = Cast(this.dataDoc[this.props.fieldKey], ImageField);
return data ? data.url.href : undefined;
}
@@ -196,7 +212,7 @@ export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocum
} else if (!(lower.endsWith(".png") || lower.endsWith(".jpg") || lower.endsWith(".jpeg"))) {
return url.href;//Why is this here
}
- let ext = path.extname(url.href);
+ const ext = path.extname(url.href);
const suffix = this.props.renderDepth < 1 ? "_o" : this._curSuffix;
return url.href.replace(ext, suffix + ext);
}
@@ -209,37 +225,54 @@ export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocum
if (this._curSuffix === "_m") this._mediumRetryCount++;
if (this._curSuffix === "_l") this._largeRetryCount++;
}
- @action onError = () => {
- let timeout = this._curSuffix === "_s" ? this._smallRetryCount : this._curSuffix === "_m" ? this._mediumRetryCount : this._largeRetryCount;
+ @action onError = (error: any) => {
+ const timeout = this._curSuffix === "_s" ? this._smallRetryCount : this._curSuffix === "_m" ? this._mediumRetryCount : this._largeRetryCount;
if (timeout < 10) {
- setTimeout(this.retryPath, Math.min(10000, timeout * 5));
+ // setTimeout(this.retryPath, 500);
+ }
+ const original = StrCast(this.dataDoc.originalUrl);
+ if (error.type === "error" && original) {
+ this.dataDoc[this.props.fieldKey] = new ImageField(original);
}
}
_curSuffix = "_m";
- resize = (srcpath: string) => {
- requestImageSize(srcpath)
- .then((size: any) => {
- let rotation = NumCast(this.dataDoc.rotation) % 180;
- let realsize = rotation === 90 || rotation === 270 ? { height: size.width, width: size.height } : size;
- let aspect = realsize.height / realsize.width;
- if (this.Document.width && (Math.abs(1 - NumCast(this.Document.height) / NumCast(this.Document.width) / (realsize.height / realsize.width)) > 0.1)) {
- setTimeout(action(() => {
- this.Document.height = this.Document[WidthSym]() * aspect;
- this.Document.nativeHeight = realsize.height;
- this.Document.nativeWidth = realsize.width;
- }), 0);
- }
+ resize = (imgPath: string) => {
+ const cachedNativeSize = {
+ width: NumCast(this.dataDoc[this.props.fieldKey + "-nativeWidth"]),
+ height: NumCast(this.dataDoc[this.props.fieldKey + "-nativeHeight"])
+ };
+ const cachedImgPath = this.dataDoc[this.props.fieldKey + "-imgPath"];
+ if (!cachedNativeSize.width || !cachedNativeSize.height || imgPath !== cachedImgPath) {
+ (!this.layoutDoc.isTemplateDoc || this.dataDoc !== this.layoutDoc) && requestImageSize(imgPath).then((inquiredSize: any) => {
+ const rotation = NumCast(this.dataDoc[this.props.fieldKey + "-rotation"]) % 180;
+ const rotatedNativeSize = rotation === 90 || rotation === 270 ? { height: inquiredSize.width, width: inquiredSize.height } : inquiredSize;
+ const rotatedAspect = rotatedNativeSize.height / rotatedNativeSize.width;
+ const docAspect = this.Document[HeightSym]() / this.Document[WidthSym]();
+ setTimeout(action(() => {
+ if (this.Document[WidthSym]() && (!cachedNativeSize.width || !cachedNativeSize.height || Math.abs(1 - docAspect / rotatedAspect) > 0.1)) {
+ this.Document._height = this.Document[WidthSym]() * rotatedAspect;
+ this.dataDoc[this.props.fieldKey + "-nativeWidth"] = this.Document._nativeWidth = rotatedNativeSize.width;
+ this.dataDoc[this.props.fieldKey + "-nativeHeight"] = this.Document._nativeHeight = rotatedNativeSize.height;
+ }
+ this.dataDoc[this.props.fieldKey + "-imgPath"] = imgPath;
+ }), 0);
})
- .catch((err: any) => console.log(err));
+ .catch((err: any) => console.log(err));
+ } else if (this.Document._nativeHeight !== cachedNativeSize.width || this.Document._nativeWidth !== cachedNativeSize.height) {
+ !(this.Document[StrCast(this.props.Document.layoutKey)] instanceof Doc) && setTimeout(() => {
+ this.Document._nativeWidth = cachedNativeSize.width;
+ this.Document._nativeHeight = cachedNativeSize.height;
+ }, 0);
+ }
}
@action
onPointerEnter = () => {
- let self = this;
- let audioAnnos = this.extensionDoc && DocListCast(this.extensionDoc.audioAnnotations);
+ const self = this;
+ const audioAnnos = DocListCast(this.dataDoc[this.props.fieldKey + "-audioAnnotations"]);
if (audioAnnos && audioAnnos.length && this._audioState === 0) {
- let anno = audioAnnos[Math.floor(Math.random() * audioAnnos.length)];
+ const anno = audioAnnos[Math.floor(Math.random() * audioAnnos.length)];
anno.data instanceof AudioField && new Howl({
src: [anno.data.url.href],
format: ["mp3"],
@@ -270,80 +303,130 @@ export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocum
return !tags ? (null) : (<img id={"google-tags"} src={"/assets/google_tags.png"} />);
}
- @computed get content() {
- const extensionDoc = this.extensionDoc;
- if (!extensionDoc) return (null);
- // let transform = this.props.ScreenToLocalTransform().inverse();
- let pw = typeof this.props.PanelWidth === "function" ? this.props.PanelWidth() : typeof this.props.PanelWidth === "number" ? (this.props.PanelWidth as any) as number : 50;
- // var [sptX, sptY] = transform.transformPoint(0, 0);
- // let [bptX, bptY] = transform.transformPoint(pw, this.props.PanelHeight());
- // let w = bptX - sptX;
-
- let nativeWidth = (this.Document.nativeWidth || pw);
- let nativeHeight = (this.Document.nativeHeight || 0);
+ @computed
+ private get considerDownloadIcon() {
+ const data = this.dataDoc[this.props.fieldKey];
+ if (!(data instanceof ImageField)) {
+ return (null);
+ }
+ const primary = data.url.href;
+ if (primary.includes(window.location.origin)) {
+ return (null);
+ }
+ return (
+ <img
+ id={"upload-icon"}
+ src={`/assets/${this.uploadIcon}`}
+ onClick={async () => {
+ const { dataDoc } = this;
+ const { success, failure, idle, loading } = uploadIcons;
+ runInAction(() => this.uploadIcon = loading);
+ const [{ clientAccessPath }] = await Networking.PostToServer("/uploadRemoteImage", { sources: [primary] });
+ dataDoc.originalUrl = primary;
+ let succeeded = true;
+ let data: ImageField | undefined;
+ try {
+ data = new ImageField(Utils.prepend(clientAccessPath));
+ } catch {
+ succeeded = false;
+ }
+ runInAction(() => this.uploadIcon = succeeded ? success : failure);
+ setTimeout(action(() => {
+ this.uploadIcon = idle;
+ if (data) {
+ dataDoc[this.props.fieldKey] = data;
+ }
+ }), 2000);
+ }}
+ />
+ );
+ }
+
+ @computed get nativeSize() {
+ const pw = typeof this.props.PanelWidth === "function" ? this.props.PanelWidth() : typeof this.props.PanelWidth === "number" ? (this.props.PanelWidth as any) as number : 50;
+ const nativeWidth = NumCast(this.dataDoc[this.props.fieldKey + "-nativeWidth"], pw);
+ const nativeHeight = NumCast(this.dataDoc[this.props.fieldKey + "-nativeHeight"], 1);
+ return { nativeWidth, nativeHeight };
+ }
+
+ @computed get paths() {
let paths = [Utils.CorsProxy("http://www.cs.brown.edu/~bcz/noImage.png")];
// this._curSuffix = "";
// if (w > 20) {
- let alts = DocListCast(extensionDoc.Alternates);
- let altpaths = alts.filter(doc => doc.data instanceof ImageField).map(doc => this.choosePath((doc.data as ImageField).url));
- let field = this.dataDoc[this.props.fieldKey];
+ const alts = DocListCast(this.dataDoc[this.props.fieldKey + "-alternates"]);
+ const altpaths = alts.filter(doc => doc.data instanceof ImageField).map(doc => this.choosePath((doc.data as ImageField).url));
+ const field = this.dataDoc[this.props.fieldKey];
// if (w < 100 && this._smallRetryCount < 10) this._curSuffix = "_s";
// else if (w < 600 && this._mediumRetryCount < 10) this._curSuffix = "_m";
// else if (this._largeRetryCount < 10) this._curSuffix = "_l";
if (field instanceof ImageField) paths = [this.choosePath(field.url)];
paths.push(...altpaths);
- // }
- let interactive = InkingControl.Instance.selectedTool || this.Document.isBackground ? "" : "-interactive";
- let rotation = NumCast(this.Document.rotation, 0);
- let aspect = (rotation % 180) ? this.Document[HeightSym]() / this.Document[WidthSym]() : 1;
- let shift = (rotation % 180) ? (nativeHeight - nativeWidth / aspect) / 2 : 0;
- let srcpath = paths[Math.min(paths.length - 1, (this.Document.curPage || 0))];
- let fadepath = paths[Math.min(paths.length - 1, 1)];
+ return paths;
+ }
+
+ @computed get content() {
+ TraceMobx();
+
+ const srcpath = this.paths[NumCast(this.props.Document.curPage, 0)];
+ const fadepath = this.paths[Math.min(1, this.paths.length - 1)];
+ const { nativeWidth, nativeHeight } = this.nativeSize;
+ const rotation = NumCast(this.dataDoc[this.props.fieldKey + "-rotation"]);
+ const aspect = (rotation % 180) ? this.Document[HeightSym]() / this.Document[WidthSym]() : 1;
+ const shift = (rotation % 180) ? (nativeHeight - nativeWidth / aspect) / 2 : 0;
!this.Document.ignoreAspect && this.resize(srcpath);
- return (
- <div className={`imageBox-cont${interactive}`} key={this.props.Document[Id]} ref={this.createDropTarget} onContextMenu={this.specificContextMenu}>
- <div id="cf">
- <img
- key={this._smallRetryCount + (this._mediumRetryCount << 4) + (this._largeRetryCount << 8)} // force cache to update on retrys
- src={srcpath}
- style={{ transform: `translate(0px, ${shift}px) rotate(${rotation}deg) scale(${aspect})` }}
- width={nativeWidth}
- ref={this._imgRef}
- onError={this.onError} />
- {fadepath === srcpath ? (null) : <div className="imageBox-fadeBlocker"> <img className="imageBox-fadeaway"
+ return <div className="imageBox-cont" key={this.props.Document[Id]} ref={this.createDropTarget} onContextMenu={this.specificContextMenu}>
+ <div className="imageBox-fader" >
+ <img key={this._smallRetryCount + (this._mediumRetryCount << 4) + (this._largeRetryCount << 8)} // force cache to update on retrys
+ src={srcpath}
+ style={{ transform: `translate(0px, ${shift}px) rotate(${rotation}deg) scale(${aspect})` }}
+ width={nativeWidth}
+ ref={this._imgRef}
+ onError={this.onError} />
+ {fadepath === srcpath ? (null) : <div className="imageBox-fadeBlocker">
+ <img className="imageBox-fadeaway"
key={"fadeaway" + this._smallRetryCount + (this._mediumRetryCount << 4) + (this._largeRetryCount << 8)} // force cache to update on retrys
src={fadepath}
- style={{ transform: `translate(0px, ${shift}px) rotate(${rotation}deg) scale(${aspect})` }}
+ style={{ transform: `translate(0px, ${shift}px) rotate(${rotation}deg) scale(${aspect})`, }}
width={nativeWidth}
ref={this._imgRef}
onError={this.onError} /></div>}
- </div>
- <div className="imageBox-audioBackground"
- onPointerDown={this.audioDown}
- onPointerEnter={this.onPointerEnter}
- style={{ height: `calc(${.1 * nativeHeight / nativeWidth * 100}%)` }}
- >
- <FontAwesomeIcon className="imageBox-audioFont"
- style={{ color: [DocListCast(extensionDoc.audioAnnotations).length ? "blue" : "gray", "green", "red"][this._audioState] }} icon={!DocListCast(extensionDoc.audioAnnotations).length ? "microphone" : faFileAudio} size="sm" />
- </div>
- {this.considerGooglePhotosLink()}
- <FaceRectangles document={extensionDoc} color={"#0000FF"} backgroundColor={"#0000FF"} />
- </div>);
+ </div>
+ <div className="imageBox-audioBackground"
+ onPointerDown={this.audioDown}
+ onPointerEnter={this.onPointerEnter}
+ style={{ height: `calc(${.1 * nativeHeight / nativeWidth * 100}%)` }}
+ >
+ <FontAwesomeIcon className="imageBox-audioFont"
+ style={{ color: [DocListCast(this.dataDoc[this.props.fieldKey + "-audioAnnotations"]).length ? "blue" : "gray", "green", "red"][this._audioState] }}
+ icon={!DocListCast(this.dataDoc[this.props.fieldKey + "-audioAnnotations"]).length ? "microphone" : faFileAudio} size="sm" />
+ </div>
+ {this.considerDownloadIcon}
+ {this.considerGooglePhotosLink()}
+ <FaceRectangles document={this.dataDoc} color={"#0000FF"} backgroundColor={"#0000FF"} />
+ </div>;
}
+ contentFunc = () => [this.content];
render() {
- return (<div className={"imageBox-container"} onContextMenu={this.specificContextMenu}>
+ TraceMobx();
+ const dragging = !SelectionManager.GetIsDragging() ? "" : "-dragging";
+ return (<div className={`imageBox${dragging}`} onContextMenu={this.specificContextMenu}
+ style={{
+ transform: `scale(${this.props.ContentScaling()})`,
+ width: `${100 / this.props.ContentScaling()}%`,
+ height: `${100 / this.props.ContentScaling()}%`
+ }} >
<CollectionFreeFormView {...this.props}
PanelHeight={this.props.PanelHeight}
PanelWidth={this.props.PanelWidth}
- annotationsKey={this.annotationsKey}
+ annotationsKey={this.annotationKey}
isAnnotationOverlay={true}
focus={this.props.focus}
isSelected={this.props.isSelected}
select={emptyFunction}
- active={this.active}
+ active={this.annotationsActive}
ContentScaling={returnOne}
whenActiveChanged={this.whenActiveChanged}
removeDocument={this.removeDocument}
@@ -351,11 +434,10 @@ export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocum
addDocument={this.addDocument}
CollectionView={undefined}
ScreenToLocalTransform={this.props.ScreenToLocalTransform}
- ruleProvider={undefined}
renderDepth={this.props.renderDepth + 1}
ContainingCollectionDoc={this.props.ContainingCollectionDoc}
chromeCollapsed={true}>
- {() => [this.content]}
+ {this.contentFunc}
</CollectionFreeFormView>
</div >);
}
diff --git a/src/client/views/nodes/KeyValueBox.tsx b/src/client/views/nodes/KeyValueBox.tsx
index 35e9e4862..7aad6f90e 100644
--- a/src/client/views/nodes/KeyValueBox.tsx
+++ b/src/client/views/nodes/KeyValueBox.tsx
@@ -53,30 +53,30 @@ export class KeyValueBox extends React.Component<FieldViewProps> {
}
}
public static CompileKVPScript(value: string): KVPScript | undefined {
- let eq = value.startsWith("=");
+ const eq = value.startsWith("=");
value = eq ? value.substr(1) : value;
const dubEq = value.startsWith(":=") ? "computed" : value.startsWith(";=") ? "script" : false;
value = dubEq ? value.substr(2) : value;
- let options: ScriptOptions = { addReturn: true, params: { this: "Doc" } };
+ const options: ScriptOptions = { addReturn: true, params: { this: "Doc", _last_: "any" }, editable: false };
if (dubEq) options.typecheck = false;
- let script = CompileScript(value, options);
+ const script = CompileScript(value, options);
if (!script.compiled) {
return undefined;
}
return { script, type: dubEq, onDelegate: eq };
}
- public static ApplyKVPScript(doc: Doc, key: string, kvpScript: KVPScript): boolean {
+ public static ApplyKVPScript(doc: Doc, key: string, kvpScript: KVPScript, forceOnDelegate?: boolean): boolean {
const { script, type, onDelegate } = kvpScript;
//const target = onDelegate ? Doc.Layout(doc.layout) : Doc.GetProto(doc); // bcz: TODO need to be able to set fields on layout templates
- const target = onDelegate ? doc : Doc.GetProto(doc);
+ const target = forceOnDelegate || onDelegate ? doc : Doc.GetProto(doc);
let field: Field;
if (type === "computed") {
field = new ComputedField(script);
} else if (type === "script") {
field = new ScriptField(script);
} else {
- let res = script.run({ this: target }, console.log);
+ const res = script.run({ this: target }, console.log);
if (!res.success) return false;
field = res.result;
}
@@ -88,14 +88,14 @@ export class KeyValueBox extends React.Component<FieldViewProps> {
}
@undoBatch
- public static SetField(doc: Doc, key: string, value: string) {
+ public static SetField(doc: Doc, key: string, value: string, forceOnDelegate?: boolean) {
const script = this.CompileKVPScript(value);
if (!script) return false;
- return this.ApplyKVPScript(doc, key, script);
+ return this.ApplyKVPScript(doc, key, script, forceOnDelegate);
}
onPointerDown = (e: React.PointerEvent): void => {
- if (e.buttons === 1 && this.props.isSelected()) {
+ if (e.buttons === 1 && this.props.isSelected(true)) {
e.stopPropagation();
}
}
@@ -106,14 +106,14 @@ export class KeyValueBox extends React.Component<FieldViewProps> {
rowHeight = () => 30;
createTable = () => {
- let doc = this.fieldDocToLayout;
+ const doc = this.fieldDocToLayout;
if (!doc) {
return <tr><td>Loading...</td></tr>;
}
- let realDoc = doc;
+ const realDoc = doc;
- let ids: { [key: string]: string } = {};
- let protos = Doc.GetAllPrototypes(doc);
+ const ids: { [key: string]: string } = {};
+ const protos = Doc.GetAllPrototypes(doc);
for (const proto of protos) {
Object.keys(proto).forEach(key => {
if (!(key in ids) && realDoc[key] !== ComputedField.undefined) {
@@ -122,10 +122,10 @@ export class KeyValueBox extends React.Component<FieldViewProps> {
});
}
- let rows: JSX.Element[] = [];
+ const rows: JSX.Element[] = [];
let i = 0;
const self = this;
- for (let key of Object.keys(ids).slice().sort()) {
+ for (const key of Object.keys(ids).slice().sort()) {
rows.push(<KeyValuePair doc={realDoc} addDocTab={this.props.addDocTab} PanelWidth={this.props.PanelWidth} PanelHeight={this.rowHeight}
ref={(function () {
let oldEl: KeyValuePair | undefined;
@@ -163,7 +163,7 @@ export class KeyValueBox extends React.Component<FieldViewProps> {
@action
onDividerMove = (e: PointerEvent): void => {
- let nativeWidth = this._mainCont.current!.getBoundingClientRect();
+ const nativeWidth = this._mainCont.current!.getBoundingClientRect();
this.props.Document.schemaSplitPercentage = Math.max(0, 100 - Math.round((e.clientX - nativeWidth.left) / nativeWidth.width * 100));
}
@action
@@ -179,10 +179,10 @@ export class KeyValueBox extends React.Component<FieldViewProps> {
}
getTemplate = async () => {
- let parent = Docs.Create.StackingDocument([], { width: 800, height: 800, title: "Template" });
+ const parent = Docs.Create.StackingDocument([], { _width: 800, _height: 800, title: "Template" });
parent.singleColumn = false;
parent.columnWidth = 100;
- for (let row of this.rows.filter(row => row.isChecked)) {
+ for (const row of this.rows.filter(row => row.isChecked)) {
await this.createTemplateField(parent, row);
row.uncheck();
}
@@ -190,32 +190,32 @@ export class KeyValueBox extends React.Component<FieldViewProps> {
}
createTemplateField = async (parentStackingDoc: Doc, row: KeyValuePair) => {
- let metaKey = row.props.keyName;
- let sourceDoc = await Cast(this.props.Document.data, Doc);
+ const metaKey = row.props.keyName;
+ const sourceDoc = await Cast(this.props.Document.data, Doc);
if (!sourceDoc) {
return;
}
- let fieldTemplate = await this.inferType(sourceDoc[metaKey], metaKey);
+ const fieldTemplate = await this.inferType(sourceDoc[metaKey], metaKey);
if (!fieldTemplate) {
return;
}
- let previousViewType = fieldTemplate.viewType;
+ const previousViewType = fieldTemplate._viewType;
Doc.MakeMetadataFieldTemplate(fieldTemplate, Doc.GetProto(parentStackingDoc));
- previousViewType && (fieldTemplate.viewType = previousViewType);
+ previousViewType && (fieldTemplate._viewType = previousViewType);
Cast(parentStackingDoc.data, listSpec(Doc))!.push(fieldTemplate);
}
inferType = async (data: FieldResult, metaKey: string) => {
- let options = { width: 300, height: 300, title: metaKey };
+ const options = { _width: 300, _height: 300, title: metaKey };
if (data instanceof RichTextField || typeof data === "string" || typeof data === "number") {
- return Docs.Create.TextDocument(options);
+ return Docs.Create.TextDocument("", options);
} else if (data instanceof List) {
if (data.length === 0) {
return Docs.Create.StackingDocument([], options);
}
- let first = await Cast(data[0], Doc);
+ const first = await Cast(data[0], Doc);
if (!first || !first.data) {
return Docs.Create.StackingDocument([], options);
}
@@ -235,7 +235,7 @@ export class KeyValueBox extends React.Component<FieldViewProps> {
}
render() {
- let dividerDragger = this.splitPercentage === 0 ? (null) :
+ const dividerDragger = this.splitPercentage === 0 ? (null) :
<div className="keyValueBox-dividerDragger" style={{ transform: `translate(calc(${100 - this.splitPercentage}% - 5px), 0px)` }}>
<div className="keyValueBox-dividerDraggerThumb" onPointerDown={this.onDividerDown} />
</div>;
diff --git a/src/client/views/nodes/KeyValuePair.tsx b/src/client/views/nodes/KeyValuePair.tsx
index 225565964..e6b512adf 100644
--- a/src/client/views/nodes/KeyValuePair.tsx
+++ b/src/client/views/nodes/KeyValuePair.tsx
@@ -5,7 +5,6 @@ import { emptyFunction, returnFalse, returnOne, returnZero } from '../../../Util
import { Docs } from '../../documents/Documents';
import { Transform } from '../../util/Transform';
import { undoBatch } from '../../util/UndoManager';
-import { CollectionDockingView } from '../collections/CollectionDockingView';
import { ContextMenu } from '../ContextMenu';
import { EditableView } from "../EditableView";
import { FieldView, FieldViewProps } from './FieldView';
@@ -47,18 +46,18 @@ export class KeyValuePair extends React.Component<KeyValuePairProps> {
if (value instanceof Doc) {
e.stopPropagation();
e.preventDefault();
- ContextMenu.Instance.addItem({ description: "Open Fields", event: () => this.props.addDocTab(Docs.Create.KVPDocument(value, { width: 300, height: 300 }), undefined, "onRight"), icon: "layer-group" });
+ ContextMenu.Instance.addItem({ description: "Open Fields", event: () => this.props.addDocTab(Docs.Create.KVPDocument(value, { _width: 300, _height: 300 }), undefined, "onRight"), icon: "layer-group" });
ContextMenu.Instance.displayMenu(e.clientX, e.clientY);
}
}
render() {
- let props: FieldViewProps = {
+ const props: FieldViewProps = {
Document: this.props.doc,
DataDoc: this.props.doc,
+ LibraryPath: [],
ContainingCollectionView: undefined,
ContainingCollectionDoc: undefined,
- ruleProvider: undefined,
fieldKey: this.props.keyName,
isSelected: returnFalse,
select: emptyFunction,
@@ -73,7 +72,7 @@ export class KeyValuePair extends React.Component<KeyValuePairProps> {
pinToPres: returnZero,
ContentScaling: returnOne
};
- let contents = <FieldView {...props} />;
+ const contents = <FieldView {...props} />;
// let fieldKey = Object.keys(props.Document).indexOf(props.fieldKey) !== -1 ? props.fieldKey : "(" + props.fieldKey + ")";
let protoCount = 0;
let doc: Doc | undefined = props.Document;
@@ -85,9 +84,9 @@ export class KeyValuePair extends React.Component<KeyValuePairProps> {
doc = doc.proto;
}
const parenCount = Math.max(0, protoCount - 1);
- let keyStyle = protoCount === 0 ? "black" : "blue";
+ const keyStyle = protoCount === 0 ? "black" : "blue";
- let hover = { transition: "0.3s ease opacity", opacity: this.isPointerOver || this.isChecked ? 1 : 0 };
+ const hover = { transition: "0.3s ease opacity", opacity: this.isPointerOver || this.isChecked ? 1 : 0 };
return (
<tr className={this.props.rowStyle} onPointerEnter={action(() => this.isPointerOver = true)} onPointerLeave={action(() => this.isPointerOver = false)}>
diff --git a/src/client/views/nodes/PDFBox.scss b/src/client/views/nodes/PDFBox.scss
index 2d92c9581..c7d6f988c 100644
--- a/src/client/views/nodes/PDFBox.scss
+++ b/src/client/views/nodes/PDFBox.scss
@@ -1,35 +1,172 @@
-.pdfBox-cont,
-.pdfBox-cont-interactive {
+.pdfBox,
+.pdfBox-interactive {
display: inline-block;
- flex-direction: row;
+ position: absolute;
height: 100%;
- width:100%;
+ width: 100%;
overflow: hidden;
- position:absolute;
cursor:auto;
transform-origin: top left;
-}
-
-.pdfBox-title-outer {
z-index: 0;
- position: absolute;
- width: 100%;
- height: 100%;
- background: lightslategray;
- .pdfBox-cont, .pdfBox-cont-interactive{
+ .pdfBox-ui {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+ pointer-events: none;
+
+ .pdfBox-overlayButton {
+ border-bottom-left-radius: 50%;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+ height: 20px;
+ background: none;
+ padding: 0;
+ position: absolute;
+ pointer-events: all;
+
+ .pdfBox-overlayButton-arrow {
+ width: 0;
+ height: 0;
+ border-top: 10px solid transparent;
+ border-bottom: 10px solid transparent;
+ border-right: 15px solid #121721;
+ transition: all 0.5s;
+ }
+
+ .pdfBox-overlayButton-iconCont {
+ background: #121721;
+ height: 20px;
+ width: 25px;
+ display: flex;
+ position: relative;
+ align-items: center;
+ justify-content: center;
+ border-radius: 3px;
+ pointer-events: all;
+ }
+ }
+
+ .pdfBox-nextIcon,
+ .pdfBox-prevIcon {
+ background: #121721;
+ height: 20px;
+ width: 25px;
+ display: flex;
+ position: relative;
+ align-items: center;
+ justify-content: center;
+ border-radius: 3px;
+ pointer-events: all;
+ padding: 0px;
+ }
+
+ .pdfBox-overlayButton:hover {
+ background: none;
+ }
+
+
+ .pdfBox-settingsCont {
+ position: absolute;
+ right: 0;
+ top: 3;
+ pointer-events: all;
+
+ .pdfBox-settingsButton {
+ border-bottom-left-radius: 50%;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+ height: 20px;
+ background: none;
+ padding: 0;
+
+ .pdfBox-settingsButton-arrow {
+ width: 0;
+ height: 0;
+ border-top: 10px solid transparent;
+ border-bottom: 10px solid transparent;
+ border-right: 15px solid #121721;
+ transition: all 0.5s;
+ }
+
+ .pdfBox-settingsButton-iconCont {
+ background: #121721;
+ height: 20px;
+ width: 25px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-left: -2px;
+ border-radius: 3px;
+ }
+ }
+
+ .pdfBox-settingsButton:hover {
+ background: none;
+ }
+
+ .pdfBox-settingsFlyout {
+ position: absolute;
+ background: #323232;
+ box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25);
+ right: 20px;
+ border-radius: 7px;
+ padding: 20px;
+ display: flex;
+ flex-direction: column;
+ font-size: 14px;
+ transition: all 0.5s;
+
+ .pdfBox-settingsFlyout-title {
+ color: white;
+ }
+
+ .pdfBox-settingsFlyout-kvpInput {
+ margin-top: 20px;
+ display: grid;
+ grid-template-columns: 47.5% 5% 47.5%;
+ }
+ }
+ }
+
+ .pdfBox-overlayCont {
+ position: absolute;
+ width: calc(100% - 40px);
+ height: 20px;
+ background: #121721;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ overflow: hidden;
+ transition: left .5s;
+ pointer-events: all;
+
+ .pdfBox-searchBar {
+ width: 70%;
+ font-size: 14px;
+ }
+ }
+ }
+ .pdfBox-title-outer {
width: 150%;
height: 100%;
position: relative;
display: grid;
+ z-index: 0;
+ background: lightslategray;
+ transform-origin: top left;
.pdfBox-title {
color:lightgray;
margin-top: auto;
margin-bottom: auto;
- transform-origin: 42% -18%;
+ transform-origin: 42% 15%;
width: 100%;
transform: rotate(55deg);
- font-size: 144;
+ font-size: 200;
padding: 5%;
overflow: hidden;
display: inline-block;
@@ -40,15 +177,13 @@
}
}
-
-.pdfBox-cont {
+.pdfBox {
pointer-events: none;
.collectionFreeFormView-none {
pointer-events: none;
}
.pdfViewer-text {
.textLayer {
- will-change: transform;
span {
user-select: none;
}
@@ -56,144 +191,13 @@
}
}
-.pdfBox-cont-interactive {
+.pdfBox-interactive {
pointer-events: all;
.pdfViewer-text {
.textLayer {
- will-change: transform;
span {
user-select: text;
}
}
}
-}
-
-
-.pdfBox-settingsCont {
- position: absolute;
- right: 0;
- top: 3;
- pointer-events: all;
-
- .pdfBox-settingsButton {
- border-bottom-left-radius: 50%;
- display: flex;
- justify-content: space-evenly;
- align-items: center;
- height: 30px;
- background: none;
- padding: 0;
-
- .pdfBox-settingsButton-arrow {
- width: 0;
- height: 0;
- border-top: 15px solid transparent;
- border-bottom: 15px solid transparent;
- border-right: 15px solid #121721;
- transition: all 0.5s;
- }
-
- .pdfBox-settingsButton-iconCont {
- background: #121721;
- height: 30px;
- width: 70px;
- display: flex;
- justify-content: center;
- align-items: center;
- margin-left: -2px;
- border-radius: 3px;
- }
- }
-
- .pdfBox-settingsButton:hover {
- background: none;
- }
-
- .pdfBox-settingsFlyout {
- position: absolute;
- background: #323232;
- box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25);
- right: 20px;
- border-radius: 7px;
- padding: 20px;
- display: flex;
- flex-direction: column;
- font-size: 14px;
- transition: all 0.5s;
-
- .pdfBox-settingsFlyout-title {
- color: white;
- }
-
- .pdfBox-settingsFlyout-kvpInput {
- margin-top: 20px;
- display: grid;
- grid-template-columns: 47.5% 5% 47.5%;
- }
- }
-}
-
-.pdfBox-overlayCont {
- position: absolute;
- width: 100%;
- height: 40px;
- background: #121721;
- bottom: 0;
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 20px;
- overflow: hidden;
- transition: left .5s;
- pointer-events: all;
-
- .pdfBox-searchBar {
- width: 70%;
- font-size: 14px;
- }
-}
-
-.pdfBox-overlayButton {
- border-bottom-left-radius: 50%;
- display: flex;
- justify-content: space-evenly;
- align-items: center;
- height: 30px;
- background: none;
- padding: 0;
- position: absolute;
- pointer-events: all;
-
- .pdfBox-overlayButton-arrow {
- width: 0;
- height: 0;
- border-top: 15px solid transparent;
- border-bottom: 15px solid transparent;
- border-right: 15px solid #121721;
- transition: all 0.5s;
- }
-
- .pdfBox-overlayButton-iconCont,
- .pdfBox-nextIcon,
- .pdfBox-prevIcon {
- background: #121721;
- height: 30px;
- width: 70px;
- display: flex;
- justify-content: center;
- align-items: center;
- margin-left: -2px;
- border-radius: 3px;
- }
-}
-
-.pdfBox-overlayButton:hover {
- background: none;
-}
-
-.pdfBox-nextIcon {
- left: 20; top: 5; height: 30px; position: absolute;
-}
-.pdfBox-prevIcon {
- left: 50; top: 5; height: 30px; position: absolute;
-}
+} \ No newline at end of file
diff --git a/src/client/views/nodes/PDFBox.tsx b/src/client/views/nodes/PDFBox.tsx
index 8e0515f8a..e1c5fd27f 100644
--- a/src/client/views/nodes/PDFBox.tsx
+++ b/src/client/views/nodes/PDFBox.tsx
@@ -3,11 +3,11 @@ import { action, observable, runInAction, reaction, IReactionDisposer, trace, un
import { observer } from "mobx-react";
import * as Pdfjs from "pdfjs-dist";
import "pdfjs-dist/web/pdf_viewer.css";
-import { Opt, WidthSym, Doc } from "../../../new_fields/Doc";
+import { Opt, WidthSym, Doc, HeightSym } from "../../../new_fields/Doc";
import { makeInterface } from "../../../new_fields/Schema";
import { ScriptField } from '../../../new_fields/ScriptField';
-import { Cast } from "../../../new_fields/Types";
-import { PdfField } from "../../../new_fields/URLField";
+import { Cast, NumCast, StrCast } from "../../../new_fields/Types";
+import { PdfField, URLField } from "../../../new_fields/URLField";
import { Utils } from '../../../Utils';
import { KeyCodes } from '../../northstar/utils/KeyCodes';
import { undoBatch } from '../../util/UndoManager';
@@ -21,6 +21,7 @@ import { pageSchema } from "./ImageBox";
import "./PDFBox.scss";
import React = require("react");
import { documentSchema } from '../../../new_fields/documentSchemas';
+import { url } from 'inspector';
type PdfDocument = makeInterface<[typeof documentSchema, typeof panZoomSchema, typeof pageSchema]>;
const PdfDocument = makeInterface(documentSchema, panZoomSchema, pageSchema);
@@ -49,28 +50,50 @@ export class PDFBox extends DocAnnotatableComponent<FieldViewProps, PdfDocument>
constructor(props: any) {
super(props);
this._initialScale = this.props.ScreenToLocalTransform().Scale;
+ const nw = this.Document._nativeWidth = NumCast(this.dataDoc[this.props.fieldKey + "-nativeWidth"], NumCast(this.Document._nativeWidth, 927));
+ const nh = this.Document._nativeHeight = NumCast(this.dataDoc[this.props.fieldKey + "-nativeHeight"], NumCast(this.Document._nativeHeight, 1200));
+ !this.Document._fitWidth && !this.Document.ignoreAspect && (this.Document._height = this.Document[WidthSym]() * (nh / nw));
+
+ const backup = "oldPath";
+ const { Document } = this.props;
+ const { url: { href } } = Cast(Document[this.props.fieldKey], PdfField)!;
+ const pathCorrectionTest = /upload\_[a-z0-9]{32}.(.*)/g;
+ const matches = pathCorrectionTest.exec(href);
+ console.log("\nHere's the { url } being fed into the outer regex:");
+ console.log(href);
+ console.log("And here's the 'properPath' build from the captured filename:\n");
+ if (matches !== null && href.startsWith(window.location.origin)) {
+ const properPath = Utils.prepend(`/files/pdfs/${matches[0]}`);
+ console.log(properPath);
+ if (!properPath.includes(href)) {
+ console.log(`The two (url and proper path) were not equal`);
+ const proto = Doc.GetProto(Document);
+ proto[this.props.fieldKey] = new PdfField(properPath);
+ proto[backup] = href;
+ } else {
+ console.log(`The two (url and proper path) were equal`);
+ }
+ } else {
+ console.log("Outer matches was null!");
+ }
}
componentWillUnmount() {
this._selectReactionDisposer && this._selectReactionDisposer();
}
componentDidMount() {
- const pdfUrl = Cast(this.dataDoc[this.props.fieldKey], PdfField);
- if (pdfUrl instanceof PdfField) {
- Pdfjs.getDocument(pdfUrl.url.pathname).promise.then(pdf => runInAction(() => this._pdf = pdf));
- }
this._selectReactionDisposer = reaction(() => this.props.isSelected(),
() => {
document.removeEventListener("keydown", this.onKeyDown);
- this.props.isSelected() && document.addEventListener("keydown", this.onKeyDown);
+ this.props.isSelected(true) && document.addEventListener("keydown", this.onKeyDown);
}, { fireImmediately: true });
}
loaded = (nw: number, nh: number, np: number) => {
- this.dataDoc.numPages = np;
- this.Document.nativeWidth = nw * 96 / 72;
- this.Document.nativeHeight = nh * 96 / 72;
- !this.Document.fitWidth && !this.Document.ignoreAspect && (this.Document.height = this.Document[WidthSym]() * (nh / nw));
+ this.dataDoc[this.props.fieldKey + "-numPages"] = np;
+ this.dataDoc[this.props.fieldKey + "-nativeWidth"] = this.Document._nativeWidth = nw * 96 / 72;
+ this.dataDoc[this.props.fieldKey + "-nativeHeight"] = this.Document._nativeHeight = nh * 96 / 72;
+ !this.Document._fitWidth && !this.Document.ignoreAspect && (this.Document._height = this.Document[WidthSym]() * (nh / nw));
}
public search(string: string, fwd: boolean) { this._pdfViewer && this._pdfViewer.search(string, fwd); }
@@ -95,7 +118,7 @@ export class PDFBox extends DocAnnotatableComponent<FieldViewProps, PdfDocument>
@undoBatch
@action
private applyFilter = () => {
- let scriptText = this._scriptValue ? this._scriptValue :
+ const scriptText = this._scriptValue ? this._scriptValue :
this._keyValue && this._valueValue ? `this.${this._keyValue} === ${this._valueValue}` : "true";
this.props.Document.filterScript = ScriptField.MakeFunction(scriptText);
}
@@ -111,53 +134,51 @@ export class PDFBox extends DocAnnotatableComponent<FieldViewProps, PdfDocument>
private newValueChange = (e: React.ChangeEvent<HTMLInputElement>) => this._valueValue = e.currentTarget.value;
private newScriptChange = (e: React.ChangeEvent<HTMLInputElement>) => this._scriptValue = e.currentTarget.value;
- whenActiveChanged = (isActive: boolean) => this.props.whenActiveChanged(this._isChildActive = isActive);
+ whenActiveChanged = action((isActive: boolean) => this.props.whenActiveChanged(this._isChildActive = isActive));
setPdfViewer = (pdfViewer: PDFViewer) => { this._pdfViewer = pdfViewer; };
searchStringChanged = (e: React.ChangeEvent<HTMLInputElement>) => this._searchString = e.currentTarget.value;
settingsPanel() {
- let pageBtns = <>
+ const pageBtns = <>
<button className="pdfBox-overlayButton-iconCont" key="back" title="Page Back"
- onPointerDown={e => e.stopPropagation()} onClick={this.backPage}
- style={{ left: 50, top: 5, height: "30px", position: "absolute", pointerEvents: "all" }}>
+ onPointerDown={e => e.stopPropagation()} onClick={e => this.backPage()} style={{ left: 45, top: 5 }}>
<FontAwesomeIcon style={{ color: "white" }} icon={"arrow-left"} size="sm" />
</button>
<button className="pdfBox-overlayButton-iconCont" key="fwd" title="Page Forward"
- onPointerDown={e => e.stopPropagation()} onClick={this.forwardPage}
- style={{ left: 80, top: 5, height: "30px", position: "absolute", pointerEvents: "all" }}>
+ onPointerDown={e => e.stopPropagation()} onClick={e => this.forwardPage()} style={{ left: 45, top: 5 }}>
<FontAwesomeIcon style={{ color: "white" }} icon={"arrow-right"} size="sm" />
</button>
</>;
return !this.active() ? (null) :
(<div className="pdfBox-ui" onKeyDown={e => e.keyCode === KeyCodes.BACKSPACE || e.keyCode === KeyCodes.DELETE ? e.stopPropagation() : true}
- onPointerDown={e => e.stopPropagation()} style={{ display: this.active() ? "flex" : "none", position: "absolute", width: "100%", height: "100%", zIndex: 1, pointerEvents: "none" }}>
+ onPointerDown={e => e.stopPropagation()} style={{ display: this.active() ? "flex" : "none" }}>
<div className="pdfBox-overlayCont" key="cont" onPointerDown={(e) => e.stopPropagation()} style={{ left: `${this._searching ? 0 : 100}%` }}>
<button className="pdfBox-overlayButton" title="Open Search Bar" />
<input className="pdfBox-searchBar" placeholder="Search" ref={this._searchRef} onChange={this.searchStringChanged} onKeyDown={e => e.keyCode === KeyCodes.ENTER && this.search(this._searchString, !e.shiftKey)} />
<button title="Search" onClick={e => this.search(this._searchString, !e.shiftKey)}>
<FontAwesomeIcon icon="search" size="sm" color="white" /></button>
<button className="pdfBox-prevIcon " title="Previous Annotation" onClick={this.prevAnnotation} >
- <FontAwesomeIcon style={{ color: "white" }} icon={"arrow-up"} size="sm" />
+ <FontAwesomeIcon style={{ color: "white" }} icon={"arrow-up"} size="lg" />
</button>
<button className="pdfBox-nextIcon" title="Next Annotation" onClick={this.nextAnnotation} >
- <FontAwesomeIcon style={{ color: "white" }} icon={"arrow-down"} size="sm" />
+ <FontAwesomeIcon style={{ color: "white" }} icon={"arrow-down"} size="lg" />
</button>
</div>
- <button className="pdfBox-overlayButton" key="search" onClick={action(() => this._searching = !this._searching)} title="Open Search Bar" style={{ bottom: 8, right: 0 }}>
+ <button className="pdfBox-overlayButton" key="search" onClick={action(() => this._searching = !this._searching)} title="Open Search Bar" style={{ bottom: 0, right: 0 }}>
<div className="pdfBox-overlayButton-arrow" onPointerDown={(e) => e.stopPropagation()}></div>
<div className="pdfBox-overlayButton-iconCont" onPointerDown={(e) => e.stopPropagation()}>
- <FontAwesomeIcon style={{ color: "white", padding: 5 }} icon={this._searching ? "times" : "search"} size="3x" /></div>
+ <FontAwesomeIcon style={{ color: "white" }} icon={this._searching ? "times" : "search"} size="lg" /></div>
</button>
<input value={`${(this.Document.curPage || 1)}`}
onChange={e => this.gotoPage(Number(e.currentTarget.value))}
- style={{ left: 20, top: 5, height: "30px", width: "30px", position: "absolute", pointerEvents: "all" }}
+ style={{ left: 5, top: 5, height: "20px", width: "20px", position: "absolute", pointerEvents: "all" }}
onClick={action(() => this._pageControls = !this._pageControls)} />
{this._pageControls ? pageBtns : (null)}
<div className="pdfBox-settingsCont" key="settings" onPointerDown={(e) => e.stopPropagation()}>
<button className="pdfBox-settingsButton" onClick={action(() => this._flyout = !this._flyout)} title="Open Annotation Settings" >
<div className="pdfBox-settingsButton-arrow" style={{ transform: `scaleX(${this._flyout ? -1 : 1})` }} />
<div className="pdfBox-settingsButton-iconCont">
- <FontAwesomeIcon style={{ color: "white", padding: 5 }} icon="cog" size="3x" />
+ <FontAwesomeIcon style={{ color: "white" }} icon="cog" size="lg" />
</div>
</button>
<div className="pdfBox-settingsFlyout" style={{ right: `${this._flyout ? 20 : -600}px` }} >
@@ -188,53 +209,60 @@ export class PDFBox extends DocAnnotatableComponent<FieldViewProps, PdfDocument>
specificContextMenu = (e: React.MouseEvent): void => {
const pdfUrl = Cast(this.dataDoc[this.props.fieldKey], PdfField);
- let funcs: ContextMenuProps[] = [];
+ const funcs: ContextMenuProps[] = [];
pdfUrl && funcs.push({ description: "Copy path", event: () => Utils.CopyText(pdfUrl.url.pathname), icon: "expand-arrows-alt" });
- funcs.push({ description: "Toggle Fit Width " + (this.Document.fitWidth ? "Off" : "On"), event: () => this.Document.fitWidth = !this.Document.fitWidth, icon: "expand-arrows-alt" });
+ funcs.push({ description: "Toggle Fit Width " + (this.Document._fitWidth ? "Off" : "On"), event: () => this.Document._fitWidth = !this.Document._fitWidth, icon: "expand-arrows-alt" });
ContextMenu.Instance.addItem({ description: "Pdf Funcs...", subitems: funcs, icon: "asterisk" });
}
+ @computed get contentScaling() { return this.props.ContentScaling(); }
@computed get renderTitleBox() {
- let classname = "pdfBox-cont" + (this.active() ? "-interactive" : "");
- return <div className="pdfBox-title-outer" >
- <div className={classname} >
- <strong className="pdfBox-title" >{` ${this.props.Document.title}`}</strong>
+ const classname = "pdfBox" + (this.active() ? "-interactive" : "");
+ return <div className={classname} style={{
+ width: !this.props.Document._fitWidth ? this.Document._nativeWidth || 0 : `${100 / this.contentScaling}%`,
+ height: !this.props.Document._fitWidth ? this.Document._nativeHeight || 0 : `${100 / this.contentScaling}%`,
+ transform: `scale(${this.contentScaling})`
+ }} >
+ <div className="pdfBox-title-outer">
+ <strong className="pdfBox-title" >{this.props.Document.title}</strong>
</div>
</div>;
}
+ isChildActive = (outsideReaction?: boolean) => this._isChildActive;
@computed get renderPdfView() {
- trace();
const pdfUrl = Cast(this.dataDoc[this.props.fieldKey], PdfField);
- let classname = "pdfBox-cont" + (this.active() ? "-interactive" : "");
- return <div className={classname} style={{
- width: this.props.Document.fitWidth ? `${100 / this.props.ContentScaling()}%` : undefined,
- height: this.props.Document.fitWidth ? `${100 / this.props.ContentScaling()}%` : undefined,
- transform: `scale(${this.props.Document.fitWidth ? this.props.ContentScaling() : 1})`
- }} onContextMenu={this.specificContextMenu} onPointerDown={e => {
- let hit = document.elementFromPoint(e.clientX, e.clientY);
- if (hit && hit.localName === "span" && this.props.isSelected()) { // drag selecting text stops propagation
- e.button === 0 && e.stopPropagation();
- }
- }}>
+ return <div className={"pdfBox"} onContextMenu={this.specificContextMenu}>
<PDFViewer {...this.props} pdf={this._pdf!} url={pdfUrl!.url.pathname} active={this.props.active} loaded={this.loaded}
setPdfViewer={this.setPdfViewer} ContainingCollectionView={this.props.ContainingCollectionView}
renderDepth={this.props.renderDepth} PanelHeight={this.props.PanelHeight} PanelWidth={this.props.PanelWidth}
- Document={this.props.Document} DataDoc={this.dataDoc} ContentScaling={this.props.ContentScaling}
addDocTab={this.props.addDocTab} focus={this.props.focus}
pinToPres={this.props.pinToPres} addDocument={this.addDocument}
+ Document={this.props.Document} DataDoc={this.dataDoc} ContentScaling={this.props.ContentScaling}
ScreenToLocalTransform={this.props.ScreenToLocalTransform} select={this.props.select}
isSelected={this.props.isSelected} whenActiveChanged={this.whenActiveChanged}
+ isChildActive={this.isChildActive}
fieldKey={this.props.fieldKey} startupLive={this._initialScale < 2.5 ? true : false} />
{this.settingsPanel()}
</div>;
}
+ _pdfjsRequested = false;
render() {
const pdfUrl = Cast(this.dataDoc[this.props.fieldKey], PdfField, null);
if (this.props.isSelected() || this.props.Document.scrollY !== undefined) this._everActive = true;
- return !pdfUrl || !this._pdf || !this.extensionDoc || (!this._everActive && this.props.ScreenToLocalTransform().Scale > 2.5) ?
- this.renderTitleBox : this.renderPdfView;
+ if (pdfUrl && (this._everActive || (this.dataDoc[this.props.fieldKey + "-nativeWidth"] && this.props.ScreenToLocalTransform().Scale < 2.5))) {
+ if (pdfUrl instanceof PdfField && this._pdf) {
+ return this.renderPdfView;
+ }
+ if (!this._pdfjsRequested) {
+ this._pdfjsRequested = true;
+ const promise = Pdfjs.getDocument(pdfUrl.url.href).promise;
+ promise.then(pdf => { runInAction(() => { this._pdf = pdf; console.log("promise"); }) });
+
+ }
+ }
+ return this.renderTitleBox;
}
} \ No newline at end of file
diff --git a/src/client/views/nodes/PresBox.tsx b/src/client/views/nodes/PresBox.tsx
index cbb83b511..428e9aa7b 100644
--- a/src/client/views/nodes/PresBox.tsx
+++ b/src/client/views/nodes/PresBox.tsx
@@ -42,9 +42,9 @@ export class PresBox extends React.Component<FieldViewProps> {
if (value) {
value.forEach((item, i) => {
if (item instanceof Doc && item.type !== DocumentType.PRESELEMENT) {
- let pinDoc = Docs.Create.PresElementBoxDocument({ backgroundColor: "transparent" });
+ const pinDoc = Docs.Create.PresElementBoxDocument({ backgroundColor: "transparent" });
Doc.GetProto(pinDoc).presentationTargetDoc = item;
- Doc.GetProto(pinDoc).title = ComputedField.MakeFunction('(this.presentationTargetDoc instanceof Doc) && this.presentationTargetDoc.title.toString()');
+ Doc.GetProto(pinDoc).title = ComputedField.MakeFunction('this.presentationTargetDoc?.title?.toString()');
value.splice(i, 1, pinDoc);
}
});
@@ -61,9 +61,9 @@ export class PresBox extends React.Component<FieldViewProps> {
next = async () => {
const current = NumCast(this.props.Document.selectedDoc);
//asking to get document at current index
- let docAtCurrentNext = await this.getDocAtIndex(current + 1);
+ const docAtCurrentNext = await this.getDocAtIndex(current + 1);
if (docAtCurrentNext !== undefined) {
- let presDocs = DocListCast(this.props.Document[this.props.fieldKey]);
+ const presDocs = DocListCast(this.props.Document[this.props.fieldKey]);
let nextSelected = current + 1;
for (; nextSelected < presDocs.length - 1; nextSelected++) {
@@ -78,15 +78,15 @@ export class PresBox extends React.Component<FieldViewProps> {
back = async () => {
const current = NumCast(this.props.Document.selectedDoc);
//requesting for the doc at current index
- let docAtCurrent = await this.getDocAtIndex(current);
+ const docAtCurrent = await this.getDocAtIndex(current);
if (docAtCurrent !== undefined) {
//asking for its presentation id.
let prevSelected = current;
let zoomOut: boolean = false;
- let presDocs = await DocListCastAsync(this.props.Document[this.props.fieldKey]);
- let currentsArray: Doc[] = [];
+ const presDocs = await DocListCastAsync(this.props.Document[this.props.fieldKey]);
+ const currentsArray: Doc[] = [];
for (; presDocs && prevSelected > 0 && presDocs[prevSelected].groupButton; prevSelected--) {
currentsArray.push(presDocs[prevSelected]);
}
@@ -104,8 +104,8 @@ export class PresBox extends React.Component<FieldViewProps> {
//If so making sure to zoom out, which goes back to state before zooming action
if (current > 0) {
if (zoomOut || docAtCurrent.showButton) {
- let prevScale = NumCast(this.childDocs[prevSelected].viewScale, null);
- let curScale = DocumentManager.Instance.getScaleOfDocView(this.childDocs[current]);
+ const prevScale = NumCast(this.childDocs[prevSelected].viewScale, null);
+ const curScale = DocumentManager.Instance.getScaleOfDocView(this.childDocs[current]);
if (prevScale !== undefined && prevScale !== curScale) {
DocumentManager.Instance.zoomIntoScale(docAtCurrent, prevScale);
}
@@ -162,13 +162,13 @@ export class PresBox extends React.Component<FieldViewProps> {
* te option open, navigates to that element.
*/
navigateToElement = async (curDoc: Doc, fromDocIndex: number) => {
- let fromDoc = this.childDocs[fromDocIndex].presentationTargetDoc as Doc;
+ const fromDoc = this.childDocs[fromDocIndex].presentationTargetDoc as Doc;
let docToJump = curDoc;
let willZoom = false;
- let presDocs = DocListCast(this.props.Document[this.props.fieldKey]);
+ const presDocs = DocListCast(this.props.Document[this.props.fieldKey]);
let nextSelected = presDocs.indexOf(curDoc);
- let currentDocGroups: Doc[] = [];
+ const currentDocGroups: Doc[] = [];
for (; nextSelected < presDocs.length - 1; nextSelected++) {
if (!presDocs[nextSelected + 1].groupButton) {
break;
@@ -190,11 +190,11 @@ export class PresBox extends React.Component<FieldViewProps> {
//docToJump stayed same meaning, it was not in the group or was the last element in the group
if (docToJump === curDoc) {
//checking if curDoc has navigation open
- let target = await curDoc.presentationTargetDoc as Doc;
+ const target = await curDoc.presentationTargetDoc as Doc;
if (curDoc.navButton) {
DocumentManager.Instance.jumpToDocument(target, false);
} else if (curDoc.showButton) {
- let curScale = DocumentManager.Instance.getScaleOfDocView(fromDoc);
+ const curScale = DocumentManager.Instance.getScaleOfDocView(fromDoc);
//awaiting jump so that new scale can be found, since jumping is async
await DocumentManager.Instance.jumpToDocument(target, true);
curDoc.viewScale = DocumentManager.Instance.getScaleOfDocView(target);
@@ -207,11 +207,11 @@ export class PresBox extends React.Component<FieldViewProps> {
}
return;
}
- let curScale = DocumentManager.Instance.getScaleOfDocView(fromDoc);
+ const curScale = DocumentManager.Instance.getScaleOfDocView(fromDoc);
//awaiting jump so that new scale can be found, since jumping is async
await DocumentManager.Instance.jumpToDocument(await docToJump.presentationTargetDoc as Doc, willZoom);
- let newScale = DocumentManager.Instance.getScaleOfDocView(await curDoc.presentationTargetDoc as Doc);
+ const newScale = DocumentManager.Instance.getScaleOfDocView(await curDoc.presentationTargetDoc as Doc);
curDoc.viewScale = newScale;
//saving the scale that user was on
if (curScale !== 1) {
@@ -238,7 +238,7 @@ export class PresBox extends React.Component<FieldViewProps> {
public removeDocument = (doc: Doc) => {
const value = FieldValue(Cast(this.props.Document[this.props.fieldKey], listSpec(Doc)));
if (value) {
- let indexOfDoc = value.indexOf(doc);
+ const indexOfDoc = value.indexOf(doc);
if (indexOfDoc !== - 1) {
value.splice(indexOfDoc, 1)[0];
return true;
@@ -336,14 +336,14 @@ export class PresBox extends React.Component<FieldViewProps> {
*/
@action
initializeScaleViews = (docList: Doc[], viewtype: number) => {
- this.props.Document.chromeStatus = "disabled";
- let hgt = (viewtype === CollectionViewType.Tree) ? 50 : 72;
+ this.props.Document._chromeStatus = "disabled";
+ const hgt = (viewtype === CollectionViewType.Tree) ? 50 : 72;
docList.forEach((doc: Doc) => {
doc.presBox = this.props.Document;
doc.presBoxKey = this.props.fieldKey;
doc.collapsedHeight = hgt;
- doc.height = ComputedField.MakeFunction("this.collapsedHeight + Number(this.embedOpen ? 100:0)");
- let curScale = NumCast(doc.viewScale, null);
+ doc._height = ComputedField.MakeFunction("this.collapsedHeight + Number(this.embedOpen ? 100:0)");
+ const curScale = NumCast(doc.viewScale, null);
if (curScale === undefined) {
doc.viewScale = 1;
}
@@ -352,7 +352,7 @@ export class PresBox extends React.Component<FieldViewProps> {
selectElement = (doc: Doc) => {
- let index = DocListCast(this.props.Document[this.props.fieldKey]).indexOf(doc);
+ const index = DocListCast(this.props.Document[this.props.fieldKey]).indexOf(doc);
index !== -1 && this.gotoDocument(index, NumCast(this.props.Document.selectedDoc));
}
@@ -360,7 +360,7 @@ export class PresBox extends React.Component<FieldViewProps> {
return this.props.ScreenToLocalTransform().translate(-10, -50);// listBox padding-left and pres-box-cont minHeight
}
render() {
- this.initializeScaleViews(this.childDocs, NumCast(this.props.Document.viewType));
+ this.initializeScaleViews(this.childDocs, NumCast(this.props.Document._viewType));
return (
<div className="presBox-cont" onContextMenu={this.specificContextMenu}>
<div className="presBox-buttons">
diff --git a/src/client/views/nodes/RadialMenu.scss b/src/client/views/nodes/RadialMenu.scss
new file mode 100644
index 000000000..ce0c263ef
--- /dev/null
+++ b/src/client/views/nodes/RadialMenu.scss
@@ -0,0 +1,83 @@
+@import "../globalCssVariables";
+
+.radialMenu-cont {
+ position: absolute;
+ z-index: $radialMenu-zindex;
+ flex-direction: column;
+}
+
+.radialMenu-subMenu-cont {
+ position: absolute;
+ display: flex;
+ z-index: 1000;
+ flex-direction: column;
+ border-radius: 15px;
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
+.radialMenu-item {
+ // width: 11vw; //10vw
+ display: flex; //comment out to allow search icon to be inline with search text
+ align-items: center;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ transition: all .1s;
+ border-style: none;
+ white-space: nowrap;
+ font-size: 13px;
+ letter-spacing: 2px;
+ text-transform: uppercase;
+}
+
+s
+.radialMenu-itemSelected {
+ border-style: none;
+}
+
+.radialMenu-group {
+ // width: 11vw; //10vw
+ display: flex; //comment out to allow search icon to be inline with search text
+ justify-content: left;
+ align-items: center;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ transition: all .1s;
+ border-width: .11px;
+ border-style: none;
+ border-color: $intermediate-color; // rgb(187, 186, 186);
+ // padding: 10px 0px 10px 0px;
+ white-space: nowrap;
+ font-size: 13px;
+ text-transform: uppercase;
+ letter-spacing: 2px;
+ padding-left: 5px;
+}
+
+
+.radialMenu-description {
+ margin-left: 5px;
+ text-align: left;
+ display: inline; //need this?
+}
+
+
+
+.icon-background {
+ pointer-events: all;
+ height:100%;
+ margin-top: 15px;
+ background-color: transparent;
+ width: 35px;
+ text-align: center;
+ font-size: 20px;
+ margin-left: 5px;
+} \ No newline at end of file
diff --git a/src/client/views/nodes/RadialMenu.tsx b/src/client/views/nodes/RadialMenu.tsx
new file mode 100644
index 000000000..74c5f53bd
--- /dev/null
+++ b/src/client/views/nodes/RadialMenu.tsx
@@ -0,0 +1,224 @@
+import React = require("react");
+import { observer } from "mobx-react";
+import { action, observable, computed, IReactionDisposer, reaction, runInAction } from "mobx";
+import { RadialMenuItem, RadialMenuProps } from "./RadialMenuItem";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import Measure from "react-measure";
+import "./RadialMenu.scss";
+
+@observer
+export class RadialMenu extends React.Component {
+ static Instance: RadialMenu;
+ static readonly buffer = 20;
+
+ constructor(props: Readonly<{}>) {
+ super(props);
+
+ RadialMenu.Instance = this;
+ }
+
+ @observable private _mouseX: number = -1;
+ @observable private _mouseY: number = -1;
+ @observable private _shouldDisplay: boolean = false;
+ @observable private _mouseDown: boolean = false;
+ private _reactionDisposer?: IReactionDisposer;
+
+
+ @action
+ onPointerDown = (e: PointerEvent) => {
+ this._mouseDown = true;
+ this._mouseX = e.clientX;
+ this._mouseY = e.clientY;
+ document.addEventListener("pointermove", this.onPointerMove);
+ }
+
+ @observable
+ private _closest: number = -1;
+
+ @action
+ onPointerMove = (e: PointerEvent) => {
+ const curX = e.clientX;
+ const curY = e.clientY;
+ const deltX = this._mouseX - curX;
+ const deltY = this._mouseY - curY;
+ const scale = Math.hypot(deltY, deltX);
+
+ if (scale < 150 && scale > 50) {
+ const rad = Math.atan2(deltY, deltX) + Math.PI;
+ let closest = 0;
+ let closestval = 999999999;
+ for (let x = 0; x < this._items.length; x++) {
+ const curmin = (x / this._items.length) * 2 * Math.PI;
+ if (rad - curmin < closestval && rad - curmin > 0) {
+ closestval = rad - curmin;
+ closest = x;
+ }
+ }
+ this._closest = closest;
+ }
+ else {
+ this._closest = -1;
+ }
+ }
+ @action
+ onPointerUp = (e: PointerEvent) => {
+ this._mouseDown = false;
+ const curX = e.clientX;
+ const curY = e.clientY;
+ if (this._mouseX !== curX || this._mouseY !== curY) {
+ this._shouldDisplay = false;
+ }
+ this._shouldDisplay && (this._display = true);
+ document.removeEventListener("pointermove", this.onPointerMove);
+ if (this._closest !== -1) {
+ this._items[this._closest]?.event();
+ }
+ }
+ componentWillUnmount() {
+ document.removeEventListener("pointerdown", this.onPointerDown);
+
+ document.removeEventListener("pointerup", this.onPointerUp);
+ this._reactionDisposer && this._reactionDisposer();
+ }
+
+ @action
+ componentDidMount = () => {
+ document.addEventListener("pointerdown", this.onPointerDown);
+ document.addEventListener("pointerup", this.onPointerUp);
+ this.previewcircle();
+ this._reactionDisposer = reaction(
+ () => this._shouldDisplay,
+ () => this._shouldDisplay && !this._mouseDown && runInAction(() => this._display = true)
+ );
+ }
+
+ componentDidUpdate = () => {
+ this.previewcircle();
+ }
+
+ @observable private _pageX: number = 0;
+ @observable private _pageY: number = 0;
+ @observable private _display: boolean = false;
+ @observable private _yRelativeToTop: boolean = true;
+
+
+ @observable private _width: number = 0;
+ @observable private _height: number = 0;
+
+
+ getItems() {
+ return this._items;
+ }
+
+ @action
+ addItem(item: RadialMenuProps) {
+ if (this._items.indexOf(item) === -1) {
+ this._items.push(item);
+ }
+ }
+
+ @observable
+ private _items: Array<RadialMenuProps> = [];
+
+ @action
+ displayMenu = (x: number, y: number) => {
+ //maxX and maxY will change if the UI/font size changes, but will work for any amount
+ //of items added to the menu
+
+ this._pageX = x;
+ this._pageY = y;
+ this._shouldDisplay = true;
+ }
+
+ get pageX() {
+ const x = this._pageX;
+ if (x < 0) {
+ return 0;
+ }
+ const width = this._width;
+ if (x + width > window.innerWidth - RadialMenu.buffer) {
+ return window.innerWidth - RadialMenu.buffer - width;
+ }
+ return x;
+ }
+
+ get pageY() {
+ const y = this._pageY;
+ if (y < 0) {
+ return 0;
+ }
+ const height = this._height;
+ if (y + height > window.innerHeight - RadialMenu.buffer) {
+ return window.innerHeight - RadialMenu.buffer - height;
+ }
+ return y;
+ }
+
+ @computed get menuItems() {
+ return this._items.map((item, index) => <RadialMenuItem {...item} key={item.description} closeMenu={this.closeMenu} max={this._items.length} min={index} selected={this._closest} />);
+ }
+
+ @action
+ closeMenu = () => {
+ this.clearItems();
+ this._display = false;
+ this._shouldDisplay = false;
+ }
+
+ @action
+ openMenu = () => {
+ this._shouldDisplay;
+ this._display = true;
+ }
+
+ @action
+ clearItems() {
+ this._items = [];
+ }
+
+
+ previewcircle() {
+ if (document.getElementById("newCanvas") !== null) {
+ const c: any = document.getElementById("newCanvas");
+ if (c.getContext) {
+ const ctx = c.getContext("2d");
+ ctx.beginPath();
+ ctx.arc(150, 150, 50, 0, 2 * Math.PI);
+ ctx.fillStyle = "white";
+ ctx.fill();
+ ctx.font = "12px Arial";
+ ctx.fillStyle = "black";
+ ctx.textAlign = "center";
+ let description = "";
+ if (this._closest !== -1) {
+ description = this._items[this._closest].description;
+ }
+ if (description.length > 15) {
+ description = description.slice(0, 12);
+ description += "...";
+ }
+ ctx.fillText(description, 150, 150, 90);
+ }
+ }
+ }
+
+
+ render() {
+ if (!this._display) {
+ return null;
+ }
+ const style = this._yRelativeToTop ? { left: this._mouseX - 150, top: this._mouseY - 150 } :
+ { left: this._mouseX - 150, top: this._mouseY - 150 };
+
+ return (
+
+ <div className="radialMenu-cont" style={style}>
+ <canvas id="newCanvas" style={{ position: "absolute" }} height="300" width="300"> Your browser does not support the HTML5 canvas tag.</canvas>
+ {this.menuItems}
+ </div>
+
+ );
+ }
+
+
+} \ No newline at end of file
diff --git a/src/client/views/nodes/RadialMenuItem.tsx b/src/client/views/nodes/RadialMenuItem.tsx
new file mode 100644
index 000000000..fdc732d3f
--- /dev/null
+++ b/src/client/views/nodes/RadialMenuItem.tsx
@@ -0,0 +1,117 @@
+import React = require("react");
+import { observable, action } from "mobx";
+import { observer } from "mobx-react";
+import { IconProp, library } from '@fortawesome/fontawesome-svg-core';
+import { faAngleRight } from '@fortawesome/free-solid-svg-icons';
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import { UndoManager } from "../../util/UndoManager";
+
+library.add(faAngleRight);
+
+export interface RadialMenuProps {
+ description: string;
+ event: (stuff?: any) => void;
+ undoable?: boolean;
+ icon: IconProp;
+ closeMenu?: () => void;
+ min?: number;
+ max?: number;
+ selected: number;
+}
+
+
+@observer
+export class RadialMenuItem extends React.Component<RadialMenuProps> {
+
+ componentDidMount = () => {
+ this.setcircle();
+ }
+
+ componentDidUpdate = () => {
+ this.setcircle();
+ }
+
+ handleEvent = async (e: React.PointerEvent) => {
+ this.props.closeMenu && this.props.closeMenu();
+ let batch: UndoManager.Batch | undefined;
+ if (this.props.undoable !== false) {
+ batch = UndoManager.StartBatch(`Context menu event: ${this.props.description}`);
+ }
+ await this.props.event({ x: e.clientX, y: e.clientY });
+ batch && batch.end();
+ }
+
+
+ setcircle() {
+ let circlemin = 0;
+ let circlemax = 1
+ this.props.min ? circlemin = this.props.min : null;
+ this.props.max ? circlemax = this.props.max : null;
+ if (document.getElementById("myCanvas") !== null) {
+ var c: any = document.getElementById("myCanvas");
+ let color = "white"
+ switch (circlemin % 3) {
+ case 1:
+ color = "#c2c2c5";
+ break;
+ case 0:
+ color = "#f1efeb";
+ break;
+ case 2:
+ color = "lightgray";
+ break;
+ }
+ if (circlemax % 3 === 1 && circlemin === circlemax - 1) {
+ color = "#c2c2c5";
+ }
+
+ if (this.props.selected === this.props.min) {
+ color = "#808080";
+
+ }
+ if (c.getContext) {
+ var ctx = c.getContext("2d");
+ ctx.beginPath();
+ ctx.arc(150, 150, 150, (circlemin / circlemax) * 2 * Math.PI, ((circlemin + 1) / circlemax) * 2 * Math.PI);
+ ctx.arc(150, 150, 50, ((circlemin + 1) / circlemax) * 2 * Math.PI, (circlemin / circlemax) * 2 * Math.PI, true);
+ ctx.fillStyle = color;
+ ctx.fill()
+ }
+ }
+ }
+
+ calculatorx() {
+ let circlemin = 0;
+ let circlemax = 1
+ this.props.min ? circlemin = this.props.min : null;
+ this.props.max ? circlemax = this.props.max : null;
+ let avg = ((circlemin / circlemax) + ((circlemin + 1) / circlemax)) / 2;
+ let degrees = 360 * avg;
+ let x = 100 * Math.cos(degrees * Math.PI / 180);
+ let y = -125 * Math.sin(degrees * Math.PI / 180);
+ return x;
+ }
+
+ calculatory() {
+
+ let circlemin = 0;
+ let circlemax = 1
+ this.props.min ? circlemin = this.props.min : null;
+ this.props.max ? circlemax = this.props.max : null;
+ let avg = ((circlemin / circlemax) + ((circlemin + 1) / circlemax)) / 2;
+ let degrees = 360 * avg;
+ let x = 125 * Math.cos(degrees * Math.PI / 180);
+ let y = -100 * Math.sin(degrees * Math.PI / 180);
+ return y;
+ }
+
+
+ render() {
+ return (
+ <div className={"radialMenu-item" + (this.props.selected ? " radialMenu-itemSelected" : "")} onPointerUp={this.handleEvent}>
+ <canvas id="myCanvas" height="300" width="300"> Your browser does not support the HTML5 canvas tag.</canvas>
+ <FontAwesomeIcon icon={this.props.icon} size="3x" style={{ position: "absolute", left: this.calculatorx() + 150 - 19, top: this.calculatory() + 150 - 19 }} />
+ </div>
+ );
+ }
+} \ No newline at end of file
diff --git a/src/client/views/nodes/VideoBox.scss b/src/client/views/nodes/VideoBox.scss
index 5829c1bd9..fabbf5196 100644
--- a/src/client/views/nodes/VideoBox.scss
+++ b/src/client/views/nodes/VideoBox.scss
@@ -1,5 +1,9 @@
-.videoBox-container {
+.videoBox {
pointer-events: all;
+ transform-origin: top left;
+ .videoBox-viewer {
+ opacity: 0.99; // hack! overcomes some kind of Chrome weirdness where buttons (e.g., snapshot) disappear at some point as the video is resized larger
+ }
.inkingCanvas-paths-markers {
opacity : 0.4; // we shouldn't have to do this, but since chrome crawls to a halt with z-index unset in videoBox-content, this is a workaround
}
diff --git a/src/client/views/nodes/VideoBox.tsx b/src/client/views/nodes/VideoBox.tsx
index 53baea4ae..d12a8d151 100644
--- a/src/client/views/nodes/VideoBox.tsx
+++ b/src/client/views/nodes/VideoBox.tsx
@@ -9,10 +9,9 @@ import { Doc } from "../../../new_fields/Doc";
import { InkTool } from "../../../new_fields/InkField";
import { createSchema, makeInterface } from "../../../new_fields/Schema";
import { ScriptField } from "../../../new_fields/ScriptField";
-import { Cast, StrCast } from "../../../new_fields/Types";
+import { Cast, StrCast, NumCast } from "../../../new_fields/Types";
import { VideoField } from "../../../new_fields/URLField";
-import { RouteStore } from "../../../server/RouteStore";
-import { emptyFunction, returnOne, Utils } from "../../../Utils";
+import { Utils, emptyFunction, returnOne } from "../../../Utils";
import { Docs, DocUtils } from "../../documents/Documents";
import { CollectionFreeFormView } from "../collections/collectionFreeForm/CollectionFreeFormView";
import { ContextMenu } from "../ContextMenu";
@@ -23,7 +22,7 @@ import { InkingControl } from "../InkingControl";
import { FieldView, FieldViewProps } from './FieldView';
import "./VideoBox.scss";
import { documentSchema, positionSchema } from "../../../new_fields/documentSchemas";
-var path = require('path');
+const path = require('path');
export const timeSchema = createSchema({
currentTimecode: "number", // the current time of a video or other linear, time-based document. Note, should really get set on an extension field, but that's more complicated when it needs to be set since the extension doc needs to be found first
@@ -55,13 +54,13 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
}
videoLoad = () => {
- let aspect = this.player!.videoWidth / this.player!.videoHeight;
- var nativeWidth = (this.Document.nativeWidth || 0);
- var nativeHeight = (this.Document.nativeHeight || 0);
+ const aspect = this.player!.videoWidth / this.player!.videoHeight;
+ const nativeWidth = (this.Document._nativeWidth || 0);
+ const nativeHeight = (this.Document._nativeHeight || 0);
if (!nativeWidth || !nativeHeight) {
- if (!this.Document.nativeWidth) this.Document.nativeWidth = this.player!.videoWidth;
- this.Document.nativeHeight = (this.Document.nativeWidth || 0) / aspect;
- this.Document.height = (this.Document.width || 0) / aspect;
+ if (!this.Document._nativeWidth) this.Document._nativeWidth = this.player!.videoWidth;
+ this.Document._nativeHeight = (this.Document._nativeWidth || 0) / aspect;
+ this.Document._height = (this.Document._width || 0) / aspect;
}
if (!this.Document.duration) this.Document.duration = this.player!.duration;
}
@@ -102,12 +101,12 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
}
@action public Snapshot() {
- let width = this.Document.width || 0;
- let height = this.Document.height || 0;
- var canvas = document.createElement('canvas');
+ const width = this.Document._width || 0;
+ const height = this.Document._height || 0;
+ const canvas = document.createElement('canvas');
canvas.width = 640;
- canvas.height = 640 * (this.Document.nativeHeight || 0) / (this.Document.nativeWidth || 1);
- var ctx = canvas.getContext('2d');//draw image to canvas. scale to target dimensions
+ canvas.height = 640 * (this.Document._nativeHeight || 0) / (this.Document._nativeWidth || 1);
+ const ctx = canvas.getContext('2d');//draw image to canvas. scale to target dimensions
if (ctx) {
ctx.rect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = "blue";
@@ -116,22 +115,22 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
}
if (!this._videoRef) { // can't find a way to take snapshots of videos
- let b = Docs.Create.ButtonDocument({
+ const b = Docs.Create.ButtonDocument({
x: (this.Document.x || 0) + width, y: (this.Document.y || 0),
- width: 150, height: 50, title: (this.Document.currentTimecode || 0).toString()
+ _width: 150, _height: 50, title: (this.Document.currentTimecode || 0).toString()
});
b.onClick = ScriptField.MakeScript(`this.currentTimecode = ${(this.Document.currentTimecode || 0)}`);
} else {
//convert to desired file format
- var dataUrl = canvas.toDataURL('image/png'); // can also use 'image/png'
+ const dataUrl = canvas.toDataURL('image/png'); // can also use 'image/png'
// if you want to preview the captured image,
- let filename = path.basename(encodeURIComponent("snapshot" + StrCast(this.Document.title).replace(/\..*$/, "") + "_" + (this.Document.currentTimecode || 0).toString().replace(/\./, "_")));
+ const filename = path.basename(encodeURIComponent("snapshot" + StrCast(this.Document.title).replace(/\..*$/, "") + "_" + (this.Document.currentTimecode || 0).toString().replace(/\./, "_")));
VideoBox.convertDataUri(dataUrl, filename).then(returnedFilename => {
if (returnedFilename) {
- let url = this.choosePath(Utils.prepend(returnedFilename));
- let imageSummary = Docs.Create.ImageDocument(url, {
+ const url = this.choosePath(Utils.prepend(returnedFilename));
+ const imageSummary = Docs.Create.ImageDocument(url, {
x: (this.Document.x || 0) + width, y: (this.Document.y || 0),
- width: 150, height: height / width * 150, title: "--snapshot" + (this.Document.currentTimecode || 0) + " image-"
+ _width: 150, _height: height / width * 150, title: "--snapshot" + (this.Document.currentTimecode || 0) + " image-"
});
imageSummary.isButton = true;
this.props.addDocument && this.props.addDocument(imageSummary);
@@ -151,13 +150,13 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
if (this.props.setVideoBox) this.props.setVideoBox(this);
if (this.youtubeVideoId) {
- let youtubeaspect = 400 / 315;
- var nativeWidth = (this.Document.nativeWidth || 0);
- var nativeHeight = (this.Document.nativeHeight || 0);
+ const youtubeaspect = 400 / 315;
+ const nativeWidth = (this.Document._nativeWidth || 0);
+ const nativeHeight = (this.Document._nativeHeight || 0);
if (!nativeWidth || !nativeHeight) {
- if (!this.Document.nativeWidth) this.Document.nativeWidth = 600;
- this.Document.nativeHeight = (this.Document.nativeWidth || 0) / youtubeaspect;
- this.Document.height = (this.Document.width || 0) / youtubeaspect;
+ if (!this.Document._nativeWidth) this.Document._nativeWidth = 600;
+ this.Document._nativeHeight = (this.Document._nativeWidth || 0) / youtubeaspect;
+ this.Document._height = (this.Document._width || 0) / youtubeaspect;
}
}
}
@@ -182,7 +181,7 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
public static async convertDataUri(imageUri: string, returnedFilename: string) {
try {
- let posting = Utils.prepend(RouteStore.dataUriToImage);
+ const posting = Utils.prepend("/uploadURI");
const returnedUri = await rp.post(posting, {
body: {
uri: imageUri,
@@ -197,10 +196,10 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
}
}
specificContextMenu = (e: React.MouseEvent): void => {
- let field = Cast(this.dataDoc[this.props.fieldKey], VideoField);
+ const field = Cast(this.dataDoc[this.props.fieldKey], VideoField);
if (field) {
- let url = field.url.href;
- let subitems: ContextMenuProps[] = [];
+ const url = field.url.href;
+ const subitems: ContextMenuProps[] = [];
subitems.push({ description: "Copy path", event: () => { Utils.CopyText(url); }, icon: "expand-arrows-alt" });
subitems.push({ description: "Toggle Show Controls", event: action(() => VideoBox._showControls = !VideoBox._showControls), icon: "expand-arrows-alt" });
subitems.push({ description: "Take Snapshot", event: () => this.Snapshot(), icon: "expand-arrows-alt" });
@@ -209,9 +208,9 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
}
@computed get content() {
- let field = Cast(this.dataDoc[this.props.fieldKey], VideoField);
- let interactive = InkingControl.Instance.selectedTool || !this.props.isSelected() ? "" : "-interactive";
- let style = "videoBox-content" + (this._fullScreen ? "-fullScreen" : "") + interactive;
+ const field = Cast(this.dataDoc[this.props.fieldKey], VideoField);
+ const interactive = InkingControl.Instance.selectedTool || !this.props.isSelected() ? "" : "-interactive";
+ const style = "videoBox-content" + (this._fullScreen ? "-fullScreen" : "") + interactive;
return !field ? <div>Loading</div> :
<video className={`${style}`} key="video" ref={this.setVideoRef} onCanPlay={this.videoLoad} controls={VideoBox._showControls}
onPlay={() => this.Play()} onSeeked={this.updateTimecode} onPause={() => this.Pause()} onClick={e => e.preventDefault()}>
@@ -221,7 +220,7 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
}
@computed get youtubeVideoId() {
- let field = Cast(this.dataDoc[this.props.fieldKey], VideoField);
+ const field = Cast(this.dataDoc[this.props.fieldKey], VideoField);
return field && field.url.href.indexOf("youtube") !== -1 ? ((arr: string[]) => arr[arr.length - 1])(field.url.href.split("/")) : "";
}
@@ -232,9 +231,9 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
}
else this._youtubeContentCreated = false;
- let iframe = e.target;
+ const iframe = e.target;
let started = true;
- let onYoutubePlayerStateChange = (event: any) => runInAction(() => {
+ const onYoutubePlayerStateChange = (event: any) => runInAction(() => {
if (started && event.data === YT.PlayerState.PLAYING) {
started = false;
this._youtubePlayer && this._youtubePlayer.unMute();
@@ -244,12 +243,12 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
if (event.data === YT.PlayerState.PLAYING && !this._playing) this.Play(false);
if (event.data === YT.PlayerState.PAUSED && this._playing) this.Pause(false);
});
- let onYoutubePlayerReady = (event: any) => {
+ const onYoutubePlayerReady = (event: any) => {
this._reactionDisposer && this._reactionDisposer();
this._youtubeReactionDisposer && this._youtubeReactionDisposer();
this._reactionDisposer = reaction(() => this.Document.currentTimecode, () => !this._playing && this.Seek(this.Document.currentTimecode || 0));
this._youtubeReactionDisposer = reaction(() => [this.props.isSelected(), DocumentDecorations.Instance.Interacting, InkingControl.Instance.selectedTool], () => {
- let interactive = InkingControl.Instance.selectedTool === InkTool.None && this.props.isSelected() && !DocumentDecorations.Instance.Interacting;
+ const interactive = InkingControl.Instance.selectedTool === InkTool.None && this.props.isSelected(true) && !DocumentDecorations.Instance.Interacting;
iframe.style.pointerEvents = interactive ? "all" : "none";
}, { fireImmediately: true });
};
@@ -262,20 +261,20 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
}
private get uIButtons() {
- let scaling = Math.min(1.8, this.props.ScreenToLocalTransform().Scale);
- let curTime = (this.Document.currentTimecode || 0);
- return ([<div className="videoBox-time" key="time" onPointerDown={this.onResetDown} style={{ transform: `scale(${scaling})` }}>
+ const scaling = Math.min(1.8, this.props.ScreenToLocalTransform().Scale);
+ const curTime = (this.Document.currentTimecode || 0);
+ return ([<div className="videoBox-time" key="time" onPointerDown={this.onResetDown} >
<span>{"" + Math.round(curTime)}</span>
<span style={{ fontSize: 8 }}>{" " + Math.round((curTime - Math.trunc(curTime)) * 100)}</span>
</div>,
- <div className="videoBox-snapshot" key="snap" onPointerDown={this.onSnapshot} style={{ transform: `scale(${scaling})` }}>
+ <div className="videoBox-snapshot" key="snap" onPointerDown={this.onSnapshot} >
<FontAwesomeIcon icon="camera" size="lg" />
</div>,
VideoBox._showControls ? (null) : [
- <div className="videoBox-play" key="play" onPointerDown={this.onPlayDown} style={{ transform: `scale(${scaling})` }}>
+ <div className="videoBox-play" key="play" onPointerDown={this.onPlayDown} >
<FontAwesomeIcon icon={this._playing ? "pause" : "play"} size="lg" />
</div>,
- <div className="videoBox-full" key="full" onPointerDown={this.onFullDown} style={{ transform: `scale(${scaling})` }}>
+ <div className="videoBox-full" key="full" onPointerDown={this.onFullDown} >
F
</div>
]]);
@@ -319,44 +318,47 @@ export class VideoBox extends DocAnnotatableComponent<FieldViewProps, VideoDocum
@computed get youtubeContent() {
this._youtubeIframeId = VideoBox._youtubeIframeCounter++;
this._youtubeContentCreated = this._forceCreateYouTubeIFrame ? true : true;
- let style = "videoBox-content-YouTube" + (this._fullScreen ? "-fullScreen" : "");
- let start = untracked(() => Math.round(this.Document.currentTimecode || 0));
+ const style = "videoBox-content-YouTube" + (this._fullScreen ? "-fullScreen" : "");
+ const start = untracked(() => Math.round(this.Document.currentTimecode || 0));
return <iframe key={this._youtubeIframeId} id={`${this.youtubeVideoId + this._youtubeIframeId}-player`}
- onLoad={this.youtubeIframeLoaded} className={`${style}`} width={(this.Document.nativeWidth || 640)} height={(this.Document.nativeHeight || 390)}
+ onLoad={this.youtubeIframeLoaded} className={`${style}`} width={(this.Document._nativeWidth || 640)} height={(this.Document._nativeHeight || 390)}
src={`https://www.youtube.com/embed/${this.youtubeVideoId}?enablejsapi=1&rel=0&showinfo=1&autoplay=1&mute=1&start=${start}&modestbranding=1&controls=${VideoBox._showControls ? 1 : 0}`} />;
}
@action.bound
addDocumentWithTimestamp(doc: Doc): boolean {
- var curTime = (this.Document.currentTimecode || -1);
+ const curTime = (this.Document.currentTimecode || -1);
curTime !== -1 && (doc.displayTimecode = curTime);
return this.addDocument(doc);
}
+ contentFunc = () => [this.youtubeVideoId ? this.youtubeContent : this.content];
render() {
- return (<div className={"videoBox-container"} onContextMenu={this.specificContextMenu}>
- <CollectionFreeFormView {...this.props}
- PanelHeight={this.props.PanelHeight}
- PanelWidth={this.props.PanelWidth}
- annotationsKey={this.annotationsKey}
- focus={this.props.focus}
- isSelected={this.props.isSelected}
- isAnnotationOverlay={true}
- select={emptyFunction}
- active={this.active}
- ContentScaling={returnOne}
- whenActiveChanged={this.whenActiveChanged}
- removeDocument={this.removeDocument}
- moveDocument={this.moveDocument}
- addDocument={this.addDocumentWithTimestamp}
- CollectionView={undefined}
- ScreenToLocalTransform={this.props.ScreenToLocalTransform}
- ruleProvider={undefined}
- renderDepth={this.props.renderDepth + 1}
- ContainingCollectionDoc={this.props.ContainingCollectionDoc}
- chromeCollapsed={true}>
- {() => [this.youtubeVideoId ? this.youtubeContent : this.content]}
- </CollectionFreeFormView>
+ return (<div className="videoBox" onContextMenu={this.specificContextMenu}
+ style={{ transform: `scale(${this.props.ContentScaling()})`, width: `${100 / this.props.ContentScaling()}%`, height: `${100 / this.props.ContentScaling()}%` }} >
+ <div className="videoBox-viewer" >
+ <CollectionFreeFormView {...this.props}
+ PanelHeight={this.props.PanelHeight}
+ PanelWidth={this.props.PanelWidth}
+ annotationsKey={this.annotationKey}
+ focus={this.props.focus}
+ isSelected={this.props.isSelected}
+ isAnnotationOverlay={true}
+ select={emptyFunction}
+ active={this.annotationsActive}
+ ContentScaling={returnOne}
+ whenActiveChanged={this.whenActiveChanged}
+ removeDocument={this.removeDocument}
+ moveDocument={this.moveDocument}
+ addDocument={this.addDocumentWithTimestamp}
+ CollectionView={undefined}
+ ScreenToLocalTransform={this.props.ScreenToLocalTransform}
+ renderDepth={this.props.renderDepth + 1}
+ ContainingCollectionDoc={this.props.ContainingCollectionDoc}
+ chromeCollapsed={true}>
+ {this.contentFunc}
+ </CollectionFreeFormView>
+ </div>
{this.uIButtons}
</div >);
}
diff --git a/src/client/views/nodes/WebBox.tsx b/src/client/views/nodes/WebBox.tsx
index 5af743859..a48dc286e 100644
--- a/src/client/views/nodes/WebBox.tsx
+++ b/src/client/views/nodes/WebBox.tsx
@@ -34,17 +34,17 @@ export class WebBox extends DocAnnotatableComponent<FieldViewProps, WebDocument>
@observable private collapsed: boolean = true;
@observable private url: string = "";
- componentWillMount() {
+ componentDidMount() {
- let field = Cast(this.props.Document[this.props.fieldKey], WebField);
+ const field = Cast(this.props.Document[this.props.fieldKey], WebField);
if (field && field.url.href.indexOf("youtube") !== -1) {
- let youtubeaspect = 400 / 315;
- var nativeWidth = NumCast(this.layoutDoc.nativeWidth);
- var nativeHeight = NumCast(this.layoutDoc.nativeHeight);
+ const youtubeaspect = 400 / 315;
+ const nativeWidth = NumCast(this.layoutDoc._nativeWidth);
+ const nativeHeight = NumCast(this.layoutDoc._nativeHeight);
if (!nativeWidth || !nativeHeight || Math.abs(nativeWidth / nativeHeight - youtubeaspect) > 0.05) {
- if (!nativeWidth) this.layoutDoc.nativeWidth = 600;
- this.layoutDoc.nativeHeight = NumCast(this.layoutDoc.nativeWidth) / youtubeaspect;
- this.layoutDoc.height = NumCast(this.layoutDoc.width) / youtubeaspect;
+ if (!nativeWidth) this.layoutDoc._nativeWidth = 600;
+ this.layoutDoc._nativeHeight = NumCast(this.layoutDoc._nativeWidth) / youtubeaspect;
+ this.layoutDoc._height = NumCast(this.layoutDoc._width) / youtubeaspect;
}
}
@@ -65,7 +65,7 @@ export class WebBox extends DocAnnotatableComponent<FieldViewProps, WebDocument>
@action
setURL() {
- let urlField: FieldResult<WebField> = Cast(this.props.Document.data, WebField);
+ const urlField: FieldResult<WebField> = Cast(this.props.Document.data, WebField);
if (urlField) this.url = urlField.url.toString();
else this.url = "";
}
@@ -80,16 +80,15 @@ export class WebBox extends DocAnnotatableComponent<FieldViewProps, WebDocument>
switchToText = () => {
let url: string = "";
- let field = Cast(this.props.Document[this.props.fieldKey], WebField);
+ const field = Cast(this.props.Document[this.props.fieldKey], WebField);
if (field) url = field.url.href;
- let newBox = Docs.Create.TextDocument({
+ const newBox = Docs.Create.TextDocument(url, {
x: NumCast(this.props.Document.x),
y: NumCast(this.props.Document.y),
title: url,
- width: 200,
- height: 70,
- documentText: "@@@" + url
+ _width: 200,
+ _height: 70,
});
SelectionManager.SelectedDocuments().map(dv => {
@@ -167,7 +166,7 @@ export class WebBox extends DocAnnotatableComponent<FieldViewProps, WebDocument>
@computed
get content() {
- let field = this.dataDoc[this.props.fieldKey];
+ const field = this.dataDoc[this.props.fieldKey];
let view;
if (field instanceof HtmlField) {
view = <span id="webBox-htmlSpan" dangerouslySetInnerHTML={{ __html: field.html }} />;
@@ -176,15 +175,15 @@ export class WebBox extends DocAnnotatableComponent<FieldViewProps, WebDocument>
} else {
view = <iframe src={"https://crossorigin.me/https://cs.brown.edu"} style={{ position: "absolute", width: "100%", height: "100%", top: 0 }} />;
}
- let content =
+ const content =
<div style={{ width: "100%", height: "100%", position: "absolute" }} onWheel={this.onPostWheel} onPointerDown={this.onPostPointer} onPointerMove={this.onPostPointer} onPointerUp={this.onPostPointer}>
{this.urlEditor()}
{view}
</div>;
- let frozen = !this.props.isSelected() || DocumentDecorations.Instance.Interacting;
+ const frozen = !this.props.isSelected() || DocumentDecorations.Instance.Interacting;
- let classname = "webBox-cont" + (this.props.isSelected() && InkingControl.Instance.selectedTool === InkTool.None && !DocumentDecorations.Instance.Interacting ? "-interactive" : "");
+ const classname = "webBox-cont" + (this.props.isSelected() && InkingControl.Instance.selectedTool === InkTool.None && !DocumentDecorations.Instance.Interacting ? "-interactive" : "");
return (
<>
<div className={classname} >
@@ -194,11 +193,11 @@ export class WebBox extends DocAnnotatableComponent<FieldViewProps, WebDocument>
</>);
}
render() {
- return (<div className={"imageBox-container"} >
+ return (<div className={"webBox-container"} >
<CollectionFreeFormView {...this.props}
PanelHeight={this.props.PanelHeight}
PanelWidth={this.props.PanelWidth}
- annotationsKey={this.annotationsKey}
+ annotationsKey={this.annotationKey}
focus={this.props.focus}
isSelected={this.props.isSelected}
isAnnotationOverlay={true}
@@ -211,7 +210,6 @@ export class WebBox extends DocAnnotatableComponent<FieldViewProps, WebDocument>
addDocument={this.addDocument}
CollectionView={undefined}
ScreenToLocalTransform={this.props.ScreenToLocalTransform}
- ruleProvider={undefined}
renderDepth={this.props.renderDepth + 1}
ContainingCollectionDoc={this.props.ContainingCollectionDoc}
chromeCollapsed={true}>
diff --git a/src/client/views/pdf/Annotation.tsx b/src/client/views/pdf/Annotation.tsx
index 936af9ab8..d8b340db6 100644
--- a/src/client/views/pdf/Annotation.tsx
+++ b/src/client/views/pdf/Annotation.tsx
@@ -11,10 +11,11 @@ import "./Annotation.scss";
interface IAnnotationProps {
anno: Doc;
- extensionDoc: Doc;
addDocTab: (document: Doc, dataDoc: Opt<Doc>, where: string) => boolean;
pinToPres: (document: Doc) => void;
focus: (doc: Doc) => void;
+ dataDoc: Doc;
+ fieldKey: string;
}
export default class Annotation extends React.Component<IAnnotationProps> {
@@ -29,10 +30,11 @@ interface IRegionAnnotationProps {
y: number;
width: number;
height: number;
- extensionDoc: Doc;
addDocTab: (document: Doc, dataDoc: Doc | undefined, where: string) => boolean;
pinToPres: (document: Doc) => void;
document: Doc;
+ dataDoc: Doc;
+ fieldKey: string;
}
@observer
@@ -62,12 +64,12 @@ class RegionAnnotation extends React.Component<IRegionAnnotationProps> {
}
deleteAnnotation = () => {
- let annotation = DocListCast(this.props.extensionDoc.annotations);
- let group = FieldValue(Cast(this.props.document.group, Doc));
+ const annotation = DocListCast(this.props.dataDoc[this.props.fieldKey + "-annotations"]);
+ const group = FieldValue(Cast(this.props.document.group, Doc));
if (group) {
if (annotation.indexOf(group) !== -1) {
- let newAnnotations = annotation.filter(a => a !== FieldValue(Cast(this.props.document.group, Doc)));
- this.props.extensionDoc.annotations = new List<Doc>(newAnnotations);
+ const newAnnotations = annotation.filter(a => a !== FieldValue(Cast(this.props.document.group, Doc)));
+ this.props.dataDoc[this.props.fieldKey + "-annotations"] = new List<Doc>(newAnnotations);
}
DocListCast(group.annotations).forEach(anno => anno.delete = true);
@@ -77,7 +79,7 @@ class RegionAnnotation extends React.Component<IRegionAnnotationProps> {
}
pinToPres = () => {
- let group = FieldValue(Cast(this.props.document.group, Doc));
+ const group = FieldValue(Cast(this.props.document.group, Doc));
group && this.props.pinToPres(group);
}
@@ -93,7 +95,7 @@ class RegionAnnotation extends React.Component<IRegionAnnotationProps> {
e.stopPropagation();
}
else if (e.button === 0) {
- let annoGroup = await Cast(this.props.document.group, Doc);
+ const annoGroup = await Cast(this.props.document.group, Doc);
if (annoGroup) {
DocumentManager.Instance.FollowLink(undefined, annoGroup,
(doc: Doc, maxLocation: string) => this.props.addDocTab(doc, undefined, e.ctrlKey ? "inTab" : "onRight"),
@@ -105,9 +107,9 @@ class RegionAnnotation extends React.Component<IRegionAnnotationProps> {
addTag = (key: string, value: string): boolean => {
- let group = FieldValue(Cast(this.props.document.group, Doc));
+ const group = FieldValue(Cast(this.props.document.group, Doc));
if (group) {
- let valNum = parseInt(value);
+ const valNum = parseInt(value);
group[key] = isNaN(valNum) ? value : valNum;
return true;
}
diff --git a/src/client/views/pdf/PDFMenu.scss b/src/client/views/pdf/PDFMenu.scss
index 44e075153..3c08ba80d 100644
--- a/src/client/views/pdf/PDFMenu.scss
+++ b/src/client/views/pdf/PDFMenu.scss
@@ -1,36 +1,6 @@
-.pdfMenu-cont {
- position: absolute;
- z-index: 10000;
- height: 35px;
- background: #323232;
- box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.25);
- border-radius: 0px 6px 6px 6px;
- overflow: hidden;
- display: flex;
-
- .pdfMenu-button {
- background-color: transparent;
- width: 35px;
- height: 35px;
- }
-
- .pdfMenu-button:hover {
- background-color: #d4d4d4;
- }
-
- .pdfMenu-dragger {
- height: 100%;
- transition: width .2s;
- background-image: url("https://logodix.com/logo/1020374.png");
- background-size: 90% 100%;
- background-repeat: no-repeat;
- background-position: left center;
- }
-
- .pdfMenu-addTag {
- display: grid;
- width: 200px;
- padding: 5px;
- grid-template-columns: 90px 20px 90px;
- }
+.pdfMenu-addTag {
+ display: grid;
+ width: 200px;
+ padding: 5px;
+ grid-template-columns: 90px 20px 90px;
} \ No newline at end of file
diff --git a/src/client/views/pdf/PDFMenu.tsx b/src/client/views/pdf/PDFMenu.tsx
index 517a99a68..05c70b74a 100644
--- a/src/client/views/pdf/PDFMenu.tsx
+++ b/src/client/views/pdf/PDFMenu.tsx
@@ -3,39 +3,28 @@ import "./PDFMenu.scss";
import { observable, action, } from "mobx";
import { observer } from "mobx-react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { emptyFunction, returnFalse } from "../../../Utils";
+import { unimplementedFunction, returnFalse } from "../../../Utils";
+import AntimodeMenu from "../AntimodeMenu";
import { Doc, Opt } from "../../../new_fields/Doc";
@observer
-export default class PDFMenu extends React.Component {
+export default class PDFMenu extends AntimodeMenu {
static Instance: PDFMenu;
- private _offsetY: number = 0;
- private _offsetX: number = 0;
- private _mainCont: React.RefObject<HTMLDivElement> = React.createRef();
private _commentCont = React.createRef<HTMLButtonElement>();
- private _snippetButton: React.RefObject<HTMLButtonElement> = React.createRef();
- private _dragging: boolean = false;
-
- @observable private _top: number = -300;
- @observable private _left: number = -300;
- @observable private _opacity: number = 1;
- @observable private _transition: string = "opacity 0.5s";
- @observable private _transitionDelay: string = "";
+
@observable private _keyValue: string = "";
@observable private _valueValue: string = "";
@observable private _added: boolean = false;
@observable public Highlighting: boolean = false;
- @observable public Status: "pdf" | "annotation" | "snippet" | "" = "";
- @observable public Pinned: boolean = false;
+ @observable public Status: "pdf" | "annotation" | "" = "";
- public StartDrag: (e: PointerEvent, ele: HTMLElement) => void = emptyFunction;
+ public StartDrag: (e: PointerEvent, ele: HTMLElement) => void = unimplementedFunction;
public Highlight: (color: string) => Opt<Doc> = (color: string) => undefined;
- public Delete: () => void = emptyFunction;
- public Snippet: (marquee: { left: number, top: number, width: number, height: number }) => void = emptyFunction;
+ public Delete: () => void = unimplementedFunction;
public AddTag: (key: string, value: string) => boolean = returnFalse;
- public PinToPres: () => void = emptyFunction;
+ public PinToPres: () => void = unimplementedFunction;
public Marquee: { left: number; top: number; width: number; height: number; } | undefined;
constructor(props: Readonly<{}>) {
@@ -73,86 +62,11 @@ export default class PDFMenu extends React.Component {
}
@action
- jumpTo = (x: number, y: number, forceJump: boolean = false) => {
- if (!this.Pinned || forceJump) {
- this._transition = this._transitionDelay = "";
- this._opacity = 1;
- this._left = x;
- this._top = y;
- }
- }
-
- @action
- fadeOut = (forceOut: boolean) => {
- if (!this.Pinned) {
- if (this._opacity === 0.2) {
- this._transition = "opacity 0.1s";
- this._transitionDelay = "";
- this._opacity = 0;
- this._left = this._top = -300;
- }
-
- if (forceOut) {
- this._transition = "";
- this._transitionDelay = "";
- this._opacity = 0;
- this._left = this._top = -300;
- }
- }
- }
-
- @action
- pointerLeave = (e: React.PointerEvent) => {
- if (!this.Pinned) {
- this._transition = "opacity 0.5s";
- this._transitionDelay = "1s";
- this._opacity = 0.2;
- setTimeout(() => this.fadeOut(false), 3000);
- }
- }
-
- @action
- pointerEntered = (e: React.PointerEvent) => {
- this._transition = "opacity 0.1s";
- this._transitionDelay = "";
- this._opacity = 1;
- }
-
- @action
togglePin = (e: React.MouseEvent) => {
this.Pinned = !this.Pinned;
!this.Pinned && (this.Highlighting = false);
}
- dragStart = (e: React.PointerEvent) => {
- document.removeEventListener("pointermove", this.dragging);
- document.addEventListener("pointermove", this.dragging);
- document.removeEventListener("pointerup", this.dragEnd);
- document.addEventListener("pointerup", this.dragEnd);
-
- this._offsetX = this._mainCont.current!.getBoundingClientRect().width - e.nativeEvent.offsetX;
- this._offsetY = e.nativeEvent.offsetY;
-
- e.stopPropagation();
- e.preventDefault();
- }
-
- @action
- dragging = (e: PointerEvent) => {
- this._left = e.pageX - this._offsetX;
- this._top = e.pageY - this._offsetY;
-
- e.stopPropagation();
- e.preventDefault();
- }
-
- dragEnd = (e: PointerEvent) => {
- document.removeEventListener("pointermove", this.dragging);
- document.removeEventListener("pointerup", this.dragEnd);
- e.stopPropagation();
- e.preventDefault();
- }
-
@action
highlightClicked = (e: React.MouseEvent) => {
if (!this.Highlight("rgba(245, 230, 95, 0.616)") && this.Pinned) { // yellowish highlight color for a marker type highlight
@@ -164,39 +78,6 @@ export default class PDFMenu extends React.Component {
this.Delete();
}
- handleContextMenu = (e: React.MouseEvent) => {
- e.stopPropagation();
- e.preventDefault();
- }
-
- snippetStart = (e: React.PointerEvent) => {
- document.removeEventListener("pointermove", this.snippetDrag);
- document.addEventListener("pointermove", this.snippetDrag);
- document.removeEventListener("pointerup", this.snippetEnd);
- document.addEventListener("pointerup", this.snippetEnd);
-
- e.stopPropagation();
- e.preventDefault();
- }
-
- snippetDrag = (e: PointerEvent) => {
- e.stopPropagation();
- e.preventDefault();
- if (!this._dragging) {
- this._dragging = true;
-
- this.Marquee && this.Snippet(this.Marquee);
- }
- }
-
- snippetEnd = (e: PointerEvent) => {
- this._dragging = false;
- document.removeEventListener("pointermove", this.snippetDrag);
- document.removeEventListener("pointerup", this.snippetEnd);
- e.stopPropagation();
- e.preventDefault();
- }
-
@action
keyChanged = (e: React.ChangeEvent<HTMLInputElement>) => {
this._keyValue = e.currentTarget.value;
@@ -217,35 +98,27 @@ export default class PDFMenu extends React.Component {
}
render() {
- let buttons = this.Status === "pdf" || this.Status === "snippet" ?
+ const buttons = this.Status === "pdf" ?
[
- <button key="1" className="pdfMenu-button" title="Click to Highlight" onClick={this.highlightClicked} style={this.Highlighting ? { backgroundColor: "#121212" } : {}}>
+ <button key="1" className="antimodeMenu-button" title="Click to Highlight" onClick={this.highlightClicked} style={this.Highlighting ? { backgroundColor: "#121212" } : {}}>
<FontAwesomeIcon icon="highlighter" size="lg" style={{ transition: "transform 0.1s", transform: this.Highlighting ? "" : "rotate(-45deg)" }} /></button>,
- <button key="2" className="pdfMenu-button" title="Drag to Annotate" ref={this._commentCont} onPointerDown={this.pointerDown}>
+ <button key="2" className="antimodeMenu-button" title="Drag to Annotate" ref={this._commentCont} onPointerDown={this.pointerDown}>
<FontAwesomeIcon icon="comment-alt" size="lg" /></button>,
- <button key="3" className="pdfMenu-button" title="Drag to Snippetize Selection" style={{ display: this.Status === "snippet" ? "" : "none" }} onPointerDown={this.snippetStart} ref={this._snippetButton}>
- <FontAwesomeIcon icon="cut" size="lg" /></button>,
- <button key="4" className="pdfMenu-button" title="Pin Menu" onClick={this.togglePin} style={this.Pinned ? { backgroundColor: "#121212" } : {}}>
+ <button key="4" className="antimodeMenu-button" title="Pin Menu" onClick={this.togglePin} style={this.Pinned ? { backgroundColor: "#121212" } : {}}>
<FontAwesomeIcon icon="thumbtack" size="lg" style={{ transition: "transform 0.1s", transform: this.Pinned ? "rotate(45deg)" : "" }} /> </button>
] : [
- <button key="5" className="pdfMenu-button" title="Delete Anchor" onPointerDown={this.deleteClicked}>
+ <button key="5" className="antimodeMenu-button" title="Delete Anchor" onPointerDown={this.deleteClicked}>
<FontAwesomeIcon icon="trash-alt" size="lg" /></button>,
- <button key="6" className="pdfMenu-button" title="Pin to Presentation" onPointerDown={this.PinToPres}>
+ <button key="6" className="antimodeMenu-button" title="Pin to Presentation" onPointerDown={this.PinToPres}>
<FontAwesomeIcon icon="map-pin" size="lg" /></button>,
<div key="7" className="pdfMenu-addTag" >
<input onChange={this.keyChanged} placeholder="Key" style={{ gridColumn: 1 }} />
<input onChange={this.valueChanged} placeholder="Value" style={{ gridColumn: 3 }} />
</div>,
- <button key="8" className="pdfMenu-button" title={`Add tag: ${this._keyValue} with value: ${this._valueValue}`} onPointerDown={this.addTag}>
+ <button key="8" className="antimodeMenu-button" title={`Add tag: ${this._keyValue} with value: ${this._valueValue}`} onPointerDown={this.addTag}>
<FontAwesomeIcon style={{ transition: "all .2s" }} color={this._added ? "#42f560" : "white"} icon="check" size="lg" /></button>,
];
- return (
- <div className="pdfMenu-cont" onPointerLeave={this.pointerLeave} onPointerEnter={this.pointerEntered} ref={this._mainCont} onContextMenu={this.handleContextMenu}
- style={{ left: this._left, top: this._top, opacity: this._opacity, transition: this._transition, transitionDelay: this._transitionDelay }}>
- {buttons}
- <div className="pdfMenu-dragger" onPointerDown={this.dragStart} style={{ width: this.Pinned ? "20px" : "0px" }} />
- </div >
- );
+ return this.getElement(buttons);
}
} \ No newline at end of file
diff --git a/src/client/views/pdf/PDFViewer.scss b/src/client/views/pdf/PDFViewer.scss
index f6fedf3da..4f81c6f70 100644
--- a/src/client/views/pdf/PDFViewer.scss
+++ b/src/client/views/pdf/PDFViewer.scss
@@ -1,11 +1,12 @@
-.pdfViewer-viewer, .pdfViewer-viewer-zoomed {
- pointer-events: inherit;
+.pdfViewer, .pdfViewer-zoomed {
+ pointer-events: all;
width: 100%;
height: 100%;
position: absolute;
overflow-y: auto;
overflow-x: hidden;
+ transform-origin: top left;
// .canvasWrapper {
// transform: scale(0.75);
@@ -13,8 +14,7 @@
// }
.textLayer {
- mix-blend-mode: multiply;
- opacity: 0.9;
+ mix-blend-mode: multiply;// bcz: makes text fuzzy!
span {
padding-right: 5px;
padding-bottom: 4px;
@@ -35,26 +35,46 @@
pointer-events: none;
}
+ .pdfViewer-text-selected {
+ .textLayer{
+ pointer-events: all;
+ user-select: text;
+ }
+ }
+ .pdfViewer-text {
+ transform-origin: top left;
+ .textLayer {
+ will-change: transform;
+ }
+ }
+
.pdfViewer-dragAnnotationBox {
position:absolute;
background-color: transparent;
opacity: 0.1;
}
- .pdfViewer-overlay {
+ .pdfViewer-overlay, .pdfViewer-overlay-inking {
transform-origin: left top;
position: absolute;
top: 0px;
left: 0px;
display: inline-block;
width:100%;
+ pointer-events: none;
+ }
+ .pdfViewer-overlay-inking {
+ .collectionfreeformview-container {
+ pointer-events: all;
+ }
}
.pdfViewer-annotationLayer {
position: absolute;
+ transform-origin: left top;
top: 0;
width: 100%;
pointer-events: none;
- mix-blend-mode: multiply;
+ mix-blend-mode: multiply; // bcz: makes text fuzzy!
.pdfViewer-annotationBox {
position: absolute;
@@ -71,7 +91,7 @@
z-index: 10;
}
}
-.pdfViewer-viewer-zoomed {
+.pdfViewer-zoomed {
overflow-x: scroll;
}
\ No newline at end of file
diff --git a/src/client/views/pdf/PDFViewer.tsx b/src/client/views/pdf/PDFViewer.tsx
index 0cb671156..a7c1990e9 100644
--- a/src/client/views/pdf/PDFViewer.tsx
+++ b/src/client/views/pdf/PDFViewer.tsx
@@ -26,6 +26,11 @@ import { undoBatch } from "../../util/UndoManager";
import { DocAnnotatableComponent } from "../DocComponent";
import { DocumentType } from "../../documents/DocumentTypes";
import { documentSchema } from "../../../new_fields/documentSchemas";
+import { DocumentDecorations } from "../DocumentDecorations";
+import { InkingControl } from "../InkingControl";
+import { InkTool } from "../../../new_fields/InkField";
+import { TraceMobx } from "../../../new_fields/util";
+import { PdfField } from "../../../new_fields/URLField";
const PDFJSViewer = require("pdfjs-dist/web/pdf_viewer");
const pdfjsLib = require("pdfjs-dist");
@@ -35,7 +40,7 @@ export const pageSchema = createSchema({
rotation: "number",
scrollY: "number",
scrollHeight: "number",
- search_string: "string"
+ serachMatch: "boolean"
});
pdfjsLib.GlobalWorkerOptions.workerSrc = `/assets/pdf.worker.js`;
@@ -56,9 +61,10 @@ interface IViewerProps {
startupLive: boolean;
renderDepth: number;
focus: (doc: Doc) => void;
- isSelected: () => boolean;
+ isSelected: (outsideReaction?: boolean) => boolean;
loaded: (nw: number, nh: number, np: number) => void;
- active: () => boolean;
+ active: (outsideReaction?: boolean) => boolean;
+ isChildActive: (outsideReaction?: boolean) => boolean;
addDocTab: (document: Doc, dataDoc: Doc | undefined, where: string) => boolean;
pinToPres: (document: Doc) => void;
addDocument?: (doc: Doc) => boolean;
@@ -107,8 +113,8 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
private _coverPath: any;
@computed get allAnnotations() {
- return this.extensionDoc ? DocListCast(this.extensionDoc.annotations).filter(
- anno => this._script.run({ this: anno }, console.log, true).result) : [];
+ return DocListCast(this.dataDoc[this.props.fieldKey + "-annotations"]).filter(
+ anno => this._script.run({ this: anno }, console.log, true).result);
}
@computed get nonDocAnnotations() {
@@ -117,15 +123,19 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
_lastSearch: string = "";
componentDidMount = async () => {
+ !this.props.Document.lockedTransform && (this.props.Document.lockedTransform = true);
// change the address to be the file address of the PNG version of each page
// file address of the pdf
- this._coverPath = JSON.parse(await rp.get(Utils.prepend(`/thumbnail${this.props.url.substring("files/".length, this.props.url.length - ".pdf".length)}-${(this.Document.curPage || 1)}.PNG`)));
+ const { url: { href } } = Cast(this.props.Document[this.props.fieldKey], PdfField)!;
+ this._coverPath = href.startsWith(window.location.origin) ?
+ JSON.parse(await rp.get(Utils.prepend(`/thumbnail${this.props.url.substring("files/pdfs/".length, this.props.url.length - ".pdf".length)}-${(this.Document.curPage || 1)}.png`))) :
+ { width: 100, height: 100, path: "" };
runInAction(() => this._showWaiting = this._showCover = true);
this.props.startupLive && this.setupPdfJsViewer();
- this._searchReactionDisposer = reaction(() => this.Document.search_string, searchString => {
- if (searchString) {
- this.search(searchString, true);
- this._lastSearch = searchString;
+ this._searchReactionDisposer = reaction(() => this.Document.searchMatch, search => {
+ if (search) {
+ this.search(Doc.SearchQuery(), true);
+ this._lastSearch = Doc.SearchQuery();
}
else {
setTimeout(() => this._lastSearch === "mxytzlaf" && this.search("mxytzlaf", true), 200); // bcz: how do we clear search highlights?
@@ -161,8 +171,8 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
}
copy = (e: ClipboardEvent) => {
- if (this.props.active() && e.clipboardData) {
- let annoDoc = this.makeAnnotationDocument("rgba(3,144,152,0.3)"); // copied text markup color (blueish)
+ if (this.props.active(true) && e.clipboardData) {
+ const annoDoc = this.makeAnnotationDocument("rgba(3,144,152,0.3)"); // copied text markup color (blueish)
if (annoDoc) {
e.clipboardData.setData("text/plain", this._selectionText);
e.clipboardData.setData("dash/pdfOrigin", this.props.Document[Id]);
@@ -198,14 +208,14 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
await this.initialLoad();
this._annotationReactionDisposer = reaction(
- () => this.extensionDoc && DocListCast(this.extensionDoc.annotations),
- annotations => annotations && annotations.length && (this._annotations = annotations),
+ () => DocListCast(this.dataDoc[this.props.fieldKey + "-annotations"]),
+ annotations => annotations?.length && (this._annotations = annotations),
{ fireImmediately: true });
this._filterReactionDisposer = reaction(
() => ({ scriptField: Cast(this.Document.filterScript, ScriptField), annos: this._annotations.slice() }),
action(({ scriptField, annos }: { scriptField: FieldResult<ScriptField>, annos: Doc[] }) => {
- let oldScript = this._script.originalScript;
+ const oldScript = this._script.originalScript;
this._script = scriptField && scriptField.script.compiled ? scriptField.script : CompileScript("return true") as CompiledScript;
if (this._script.originalScript !== oldScript) {
this.Index = -1;
@@ -233,8 +243,8 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
this.gotoPage(this.Document.curPage || 1);
}));
document.addEventListener("pagerendered", action(() => this._showCover = this._showWaiting = false));
- var pdfLinkService = new PDFJSViewer.PDFLinkService();
- let pdfFindController = new PDFJSViewer.PDFFindController({ linkService: pdfLinkService });
+ const pdfLinkService = new PDFJSViewer.PDFLinkService();
+ const pdfFindController = new PDFJSViewer.PDFFindController({ linkService: pdfLinkService });
this._pdfViewer = new PDFJSViewer.PDFViewer({
container: this._mainCont.current,
viewer: this._viewer.current,
@@ -253,16 +263,16 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
if (this._savedAnnotations.size() === 0) return undefined;
let mainAnnoDoc = Docs.Create.InstanceFromProto(new Doc(), "", {});
let mainAnnoDocProto = Doc.GetProto(mainAnnoDoc);
- let annoDocs: Doc[] = [];
+ const annoDocs: Doc[] = [];
let maxX = -Number.MAX_VALUE;
let minY = Number.MAX_VALUE;
if ((this._savedAnnotations.values()[0][0] as any).marqueeing) {
- let anno = this._savedAnnotations.values()[0][0];
- let annoDoc = Docs.Create.FreeformDocument([], { backgroundColor: color, title: "Annotation on " + this.Document.title });
+ const anno = this._savedAnnotations.values()[0][0];
+ const annoDoc = Docs.Create.FreeformDocument([], { backgroundColor: color, title: "Annotation on " + this.Document.title });
if (anno.style.left) annoDoc.x = parseInt(anno.style.left);
if (anno.style.top) annoDoc.y = parseInt(anno.style.top);
- if (anno.style.height) annoDoc.height = parseInt(anno.style.height);
- if (anno.style.width) annoDoc.width = parseInt(anno.style.width);
+ if (anno.style.height) annoDoc._height = parseInt(anno.style.height);
+ if (anno.style.width) annoDoc._width = parseInt(anno.style.width);
annoDoc.group = mainAnnoDoc;
annoDoc.isButton = true;
annoDocs.push(annoDoc);
@@ -273,11 +283,11 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
mainAnnoDocProto.y = annoDoc.y;
} else {
this._savedAnnotations.forEach((key: number, value: HTMLDivElement[]) => value.map(anno => {
- let annoDoc = new Doc();
+ const annoDoc = new Doc();
if (anno.style.left) annoDoc.x = parseInt(anno.style.left);
if (anno.style.top) annoDoc.y = parseInt(anno.style.top);
- if (anno.style.height) annoDoc.height = parseInt(anno.style.height);
- if (anno.style.width) annoDoc.width = parseInt(anno.style.width);
+ if (anno.style.height) annoDoc._height = parseInt(anno.style.height);
+ if (anno.style.width) annoDoc._width = parseInt(anno.style.width);
annoDoc.group = mainAnnoDoc;
annoDoc.backgroundColor = color;
annoDocs.push(annoDoc);
@@ -317,7 +327,7 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
@action
scrollToAnnotation = (scrollToAnnotation: Doc) => {
if (scrollToAnnotation) {
- let offset = this.visibleHeight() / 2 * 96 / 72;
+ const offset = this.visibleHeight() / 2 * 96 / 72;
this._mainCont.current && smoothScroll(500, this._mainCont.current, NumCast(scrollToAnnotation.y) - offset);
Doc.linkFollowHighlight(scrollToAnnotation);
}
@@ -349,7 +359,7 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
this._annotationLayer.current.append(div);
div.style.backgroundColor = "yellow";
div.style.opacity = "0.5";
- let savedPage = this._savedAnnotations.getValue(page);
+ const savedPage = this._savedAnnotations.getValue(page);
if (savedPage) {
savedPage.push(div);
this._savedAnnotations.setValue(page, savedPage);
@@ -375,7 +385,7 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
});
}
else if (this._mainCont.current) {
- let executeFind = () => {
+ const executeFind = () => {
this._pdfViewer.findController.executeCommand('find', {
caseSensitive: false,
findPrevious: !fwd,
@@ -391,20 +401,24 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
@action
onPointerDown = (e: React.PointerEvent): void => {
+ const hit = document.elementFromPoint(e.clientX, e.clientY);
+ if (hit && hit.localName === "span" && this.props.isSelected(true)) { // drag selecting text stops propagation
+ e.button === 0 && e.stopPropagation();
+ }
// if alt+left click, drag and annotate
this._downX = e.clientX;
this._downY = e.clientY;
addStyleSheetRule(PDFViewer._annotationStyle, "pdfAnnotation", { "pointer-events": "none" });
if ((this.Document.scale || 1) !== 1) return;
- if ((e.button !== 0 || e.altKey) && this.active()) {
+ if ((e.button !== 0 || e.altKey) && this.active(true)) {
this._setPreviewCursor && this._setPreviewCursor(e.clientX, e.clientY, true);
+ //e.stopPropagation();
}
this._marqueeing = false;
- if (!e.altKey && e.button === 0 && this.active()) {
+ if (!e.altKey && e.button === 0 && this.active(true)) {
// clear out old marquees and initialize menu for new selection
PDFMenu.Instance.StartDrag = this.startDrag;
PDFMenu.Instance.Highlight = this.highlight;
- PDFMenu.Instance.Snippet = this.createSnippet;
PDFMenu.Instance.Status = "pdf";
PDFMenu.Instance.fadeOut(true);
this._savedAnnotations.values().forEach(v => v.forEach(a => a.remove()));
@@ -414,7 +428,7 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
}
else if (this._mainCont.current) {
// set marquee x and y positions to the spatially transformed position
- let boundingRect = this._mainCont.current.getBoundingClientRect();
+ const boundingRect = this._mainCont.current.getBoundingClientRect();
this._startX = this._marqueeX = (e.clientX - boundingRect.left) * (this._mainCont.current.offsetWidth / boundingRect.width);
this._startY = this._marqueeY = (e.clientY - boundingRect.top) * (this._mainCont.current.offsetHeight / boundingRect.height) + this._mainCont.current.scrollTop;
this._marqueeHeight = this._marqueeWidth = 0;
@@ -431,7 +445,7 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
onSelectMove = (e: PointerEvent): void => {
if (this._marqueeing && this._mainCont.current) {
// transform positions and find the width and height to set the marquee to
- let boundingRect = this._mainCont.current.getBoundingClientRect();
+ const boundingRect = this._mainCont.current.getBoundingClientRect();
this._marqueeWidth = ((e.clientX - boundingRect.left) * (this._mainCont.current.offsetWidth / boundingRect.width)) - this._startX;
this._marqueeHeight = ((e.clientY - boundingRect.top) * (this._mainCont.current.offsetHeight / boundingRect.height)) - this._startY + this._mainCont.current.scrollTop;
this._marqueeX = Math.min(this._startX, this._startX + this._marqueeWidth);
@@ -449,22 +463,22 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
@action
createTextAnnotation = (sel: Selection, selRange: Range) => {
if (this._mainCont.current) {
- let boundingRect = this._mainCont.current.getBoundingClientRect();
- let clientRects = selRange.getClientRects();
+ const boundingRect = this._mainCont.current.getBoundingClientRect();
+ const clientRects = selRange.getClientRects();
for (let i = 0; i < clientRects.length; i++) {
- let rect = clientRects.item(i);
+ const rect = clientRects.item(i);
if (rect) {
- let scaleY = this._mainCont.current.offsetHeight / boundingRect.height;
- let scaleX = this._mainCont.current.offsetWidth / boundingRect.width;
+ const scaleY = this._mainCont.current.offsetHeight / boundingRect.height;
+ const scaleX = this._mainCont.current.offsetWidth / boundingRect.width;
if (rect.width !== this._mainCont.current.clientWidth &&
(i === 0 || !intersectRect(clientRects[i], clientRects[i - 1]))) {
- let annoBox = document.createElement("div");
+ const annoBox = document.createElement("div");
annoBox.className = "pdfViewer-annotationBox";
// transforms the positions from screen onto the pdf div
- annoBox.style.top = ((rect.top - boundingRect.top) * scaleY + this._mainCont.current.scrollTop).toString();
- annoBox.style.left = ((rect.left - boundingRect.left) * scaleX).toString();
- annoBox.style.width = (rect.width * this._mainCont.current.offsetWidth / boundingRect.width).toString();
- annoBox.style.height = (rect.height * this._mainCont.current.offsetHeight / boundingRect.height).toString();
+ annoBox.style.top = ((rect.top - boundingRect.top) * scaleY / this._zoomed + this._mainCont.current.scrollTop).toString();
+ annoBox.style.left = ((rect.left - boundingRect.left) * scaleX / this._zoomed).toString();
+ annoBox.style.width = (rect.width * this._mainCont.current.offsetWidth / boundingRect.width / this._zoomed).toString();
+ annoBox.style.height = (rect.height * this._mainCont.current.offsetHeight / boundingRect.height / this._zoomed).toString();
this.createAnnotation(annoBox, this.getPageFromScroll(rect.top));
}
}
@@ -486,10 +500,10 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
this._savedAnnotations.clear();
if (this._marqueeing) {
if (this._marqueeWidth > 10 || this._marqueeHeight > 10) {
- let marquees = this._mainCont.current!.getElementsByClassName("pdfViewer-dragAnnotationBox");
+ const marquees = this._mainCont.current!.getElementsByClassName("pdfViewer-dragAnnotationBox");
if (marquees && marquees.length) { // copy the marquee and convert it to a permanent annotation.
- let style = (marquees[0] as HTMLDivElement).style;
- let copy = document.createElement("div");
+ const style = (marquees[0] as HTMLDivElement).style;
+ const copy = document.createElement("div");
copy.style.left = style.left;
copy.style.top = style.top;
copy.style.width = style.width;
@@ -502,7 +516,6 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
}
if (!e.ctrlKey) {
- PDFMenu.Instance.Status = "snippet";
PDFMenu.Instance.Marquee = { left: this._marqueeX, top: this._marqueeY, width: this._marqueeWidth, height: this._marqueeHeight };
}
PDFMenu.Instance.jumpTo(e.clientX, e.clientY);
@@ -510,9 +523,9 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
this._marqueeing = false;
}
else {
- let sel = window.getSelection();
+ const sel = window.getSelection();
if (sel && sel.type === "Range") {
- let selRange = sel.getRangeAt(0);
+ const selRange = sel.getRangeAt(0);
this.createTextAnnotation(sel, selRange);
PDFMenu.Instance.jumpTo(e.clientX, e.clientY);
}
@@ -532,7 +545,7 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
@action
highlight = (color: string) => {
// creates annotation documents for current highlights
- let annotationDoc = this.makeAnnotationDocument(color);
+ const annotationDoc = this.makeAnnotationDocument(color);
annotationDoc && this.props.addDocument && this.props.addDocument(annotationDoc);
return annotationDoc;
}
@@ -545,31 +558,26 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
startDrag = (e: PointerEvent, ele: HTMLElement): void => {
e.preventDefault();
e.stopPropagation();
- let targetDoc = Docs.Create.TextDocument({ width: 200, height: 200, title: "Note linked to " + this.props.Document.title });
+ const targetDoc = Docs.Create.TextDocument("", { _width: 200, _height: 200, title: "Note linked to " + this.props.Document.title });
const annotationDoc = this.highlight("rgba(146, 245, 95, 0.467)"); // yellowish highlight color when dragging out a text selection
if (annotationDoc) {
- let dragData = new DragManager.AnnotationDragData(this.props.Document, annotationDoc, targetDoc);
- DragManager.StartAnnotationDrag([ele], dragData, e.pageX, e.pageY, {
- handlers: {
- dragComplete: () => !(dragData as any).linkedToDoc &&
- DocUtils.MakeLink({ doc: annotationDoc }, { doc: dragData.dropDocument, ctx: dragData.targetContext }, `Annotation from ${this.Document.title}`, "link from PDF")
-
- },
- hideSource: false
+ DragManager.StartPdfAnnoDrag([ele], new DragManager.PdfAnnoDragData(this.props.Document, annotationDoc, targetDoc), e.pageX, e.pageY, {
+ dragComplete: e => !e.aborted && e.annoDragData && !e.annoDragData.linkedToDoc &&
+ DocUtils.MakeLink({ doc: annotationDoc }, { doc: e.annoDragData.dropDocument, ctx: e.annoDragData.targetContext }, `Annotation from ${this.Document.title}`, "link from PDF")
});
}
}
createSnippet = (marquee: { left: number, top: number, width: number, height: number }): void => {
- let view = Doc.MakeAlias(this.props.Document);
- let data = Doc.MakeDelegate(Doc.GetProto(this.props.Document));
+ const view = Doc.MakeAlias(this.props.Document);
+ const data = Doc.MakeDelegate(Doc.GetProto(this.props.Document));
data.title = StrCast(data.title) + "_snippet";
view.proto = data;
- view.nativeHeight = marquee.height;
- view.height = (this.Document[WidthSym]() / (this.Document.nativeWidth || 1)) * marquee.height;
- view.nativeWidth = this.Document.nativeWidth;
+ view._nativeHeight = marquee.height;
+ view._height = (this.Document[WidthSym]() / (this.Document._nativeWidth || 1)) * marquee.height;
+ view._nativeWidth = this.Document._nativeWidth;
view.startY = marquee.top;
- view.width = this.Document[WidthSym]();
+ view._width = this.Document[WidthSym]();
DragManager.StartDocumentDrag([], new DragManager.DocumentDragData([view]), 0, 0);
}
@@ -590,13 +598,14 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
getCoverImage = () => {
if (!this.props.Document[HeightSym]() || !this.props.Document.nativeHeight) {
setTimeout((() => {
- this.Document.height = this.Document[WidthSym]() * this._coverPath.height / this._coverPath.width;
- this.Document.nativeHeight = nativeWidth * this._coverPath.height / this._coverPath.width;
+ this.Document._height = this.Document[WidthSym]() * this._coverPath.height / this._coverPath.width;
+ this.Document._nativeHeight = (this.Document._nativeWidth || 0) * this._coverPath.height / this._coverPath.width;
}).bind(this), 0);
}
- let nativeWidth = (this.Document.nativeWidth || 0);
- let nativeHeight = (this.Document.nativeHeight || 0);
- return <img key={this._coverPath.path} src={this._coverPath.path} onError={action(() => this._coverPath.path = "http://www.cs.brown.edu/~bcz/face.gif")} onLoad={action(() => this._showWaiting = false)}
+ const nativeWidth = (this.Document._nativeWidth || 0);
+ const nativeHeight = (this.Document._nativeHeight || 0);
+ const resolved = Utils.prepend(this._coverPath.path);
+ return <img key={resolved} src={resolved} onError={action(() => this._coverPath.path = "http://www.cs.brown.edu/~bcz/face.gif")} onLoad={action(() => this._showWaiting = false)}
style={{ position: "absolute", display: "inline-block", top: 0, left: 0, width: `${nativeWidth}px`, height: `${nativeHeight}px` }} />;
}
@@ -604,47 +613,53 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
onZoomWheel = (e: React.WheelEvent) => {
e.stopPropagation();
if (e.ctrlKey) {
- let curScale = Number(this._pdfViewer.currentScaleValue);
- this._pdfViewer.currentScaleValue = Math.max(1, Math.min(10, curScale + curScale * e.deltaY / 1000));
+ const curScale = Number(this._pdfViewer.currentScaleValue);
+ this._pdfViewer.currentScaleValue = Math.max(1, Math.min(10, curScale - curScale * e.deltaY / 1000));
this._zoomed = Number(this._pdfViewer.currentScaleValue);
}
}
@computed get annotationLayer() {
- trace();
- return <div className="pdfViewer-annotationLayer" style={{ height: (this.Document.nativeHeight || 0) }} ref={this._annotationLayer}>
+ TraceMobx();
+ return <div className="pdfViewer-annotationLayer" style={{ height: NumCast(this.Document.nativeHeight), transform: `scale(${this._zoomed})` }} ref={this._annotationLayer}>
{this.nonDocAnnotations.sort((a, b) => NumCast(a.y) - NumCast(b.y)).map((anno, index) =>
- <Annotation {...this.props} focus={this.props.focus} extensionDoc={this.extensionDoc!} anno={anno} key={`${anno[Id]}-annotation`} />)}
- <div className="pdfViewer-overlay" id="overlay" style={{ transform: `scale(${this._zoomed})` }}>
- <CollectionFreeFormView {...this.props}
- annotationsKey={this.annotationsKey}
- setPreviewCursor={this.setPreviewCursor}
- PanelHeight={() => (this.Document.scrollHeight || this.Document.nativeHeight || 0)}
- PanelWidth={() => this._pageSizes.length && this._pageSizes[0] ? this._pageSizes[0].width : (this.Document.nativeWidth || 0)}
- VisibleHeight={this.visibleHeight}
- focus={this.props.focus}
- isSelected={this.props.isSelected}
- isAnnotationOverlay={true}
- select={emptyFunction}
- active={this.active}
- ContentScaling={returnOne}
- whenActiveChanged={this.whenActiveChanged}
- removeDocument={this.removeDocument}
- moveDocument={this.moveDocument}
- addDocument={this.addDocument}
- CollectionView={undefined}
- ScreenToLocalTransform={this.scrollXf}
- ruleProvider={undefined}
- renderDepth={this.props.renderDepth + 1}
- ContainingCollectionDoc={this.props.ContainingCollectionView && this.props.ContainingCollectionView.props.Document}
- chromeCollapsed={true}>
- </CollectionFreeFormView>
- </div>
+ <Annotation {...this.props} focus={this.props.focus} dataDoc={this.dataDoc!} fieldKey={this.props.fieldKey} anno={anno} key={`${anno[Id]}-annotation`} />)}
+ </div>;
+ }
+ overlayTransform = () => this.scrollXf().scale(1 / this._zoomed);
+ panelWidth = () => (this.Document.scrollHeight || this.Document._nativeHeight || 0);
+ panelHeight = () => this._pageSizes.length && this._pageSizes[0] ? this._pageSizes[0].width : (this.Document._nativeWidth || 0);
+ @computed get overlayLayer() {
+ return <div className={`pdfViewer-overlay${InkingControl.Instance.selectedTool !== InkTool.None ? "-inking" : ""}`} id="overlay" style={{ transform: `scale(${this._zoomed})` }}>
+ <CollectionFreeFormView {...this.props}
+ LibraryPath={this.props.ContainingCollectionView?.props.LibraryPath ?? []}
+ annotationsKey={this.annotationKey}
+ setPreviewCursor={this.setPreviewCursor}
+ PanelHeight={this.panelWidth}
+ PanelWidth={this.panelHeight}
+ VisibleHeight={this.visibleHeight}
+ focus={this.props.focus}
+ isSelected={this.props.isSelected}
+ isAnnotationOverlay={true}
+ select={emptyFunction}
+ active={this.annotationsActive}
+ ContentScaling={this.contentZoom}
+ whenActiveChanged={this.whenActiveChanged}
+ removeDocument={this.removeDocument}
+ moveDocument={this.moveDocument}
+ addDocument={this.addDocument}
+ CollectionView={undefined}
+ ScreenToLocalTransform={this.overlayTransform}
+ renderDepth={this.props.renderDepth + 1}
+ ContainingCollectionDoc={this.props.ContainingCollectionView?.props.Document}
+ chromeCollapsed={true}>
+ </CollectionFreeFormView>
</div>;
}
@computed get pdfViewerDiv() {
- return <div className="pdfViewer-text" ref={this._viewer} style={{ transformOrigin: "left top" }} />;
+ return <div className={"pdfViewer-text" + ((!DocumentDecorations.Instance.Interacting && (this.props.isSelected() || this.props.isChildActive())) ? "-selected" : "")} ref={this._viewer} />;
}
+ @computed get contentScaling() { return this.props.ContentScaling(); }
@computed get standinViews() {
return <>
{this._showCover ? this.getCoverImage() : (null)}
@@ -657,15 +672,22 @@ export class PDFViewer extends DocAnnotatableComponent<IViewerProps, PdfDocument
marqueeY = () => this._marqueeY;
marqueeing = () => this._marqueeing;
visibleHeight = () => this.props.PanelHeight() / this.props.ContentScaling() * 72 / 96;
+ contentZoom = () => this._zoomed;
render() {
- trace();
- return !this.extensionDoc ? (null) :
- <div className={"pdfViewer-viewer" + (this._zoomed !== 1 ? "-zoomed" : "")} onScroll={this.onScroll} onWheel={this.onZoomWheel} onPointerDown={this.onPointerDown} onClick={this.onClick} ref={this._mainCont}>
- {this.pdfViewerDiv}
- {this.annotationLayer}
- {this.standinViews}
- <PdfViewerMarquee isMarqueeing={this.marqueeing} width={this.marqueeWidth} height={this.marqueeHeight} x={this.marqueeX} y={this.marqueeY} />
- </div >;
+ TraceMobx();
+ return <div className={"pdfViewer" + (this._zoomed !== 1 ? "-zoomed" : "")} ref={this._mainCont}
+ onScroll={this.onScroll} onWheel={this.onZoomWheel} onPointerDown={this.onPointerDown} onClick={this.onClick}
+ style={{
+ width: !this.props.Document._fitWidth ? NumCast(this.props.Document._nativeWidth) : `${100 / this.contentScaling}%`,
+ height: !this.props.Document._fitWidth ? NumCast(this.props.Document._nativeHeight) : `${100 / this.contentScaling}%`,
+ transform: `scale(${this.props.ContentScaling()})`
+ }} >
+ {this.pdfViewerDiv}
+ {this.overlayLayer}
+ {this.annotationLayer}
+ {this.standinViews}
+ <PdfViewerMarquee isMarqueeing={this.marqueeing} width={this.marqueeWidth} height={this.marqueeHeight} x={this.marqueeX} y={this.marqueeY} />
+ </div >;
}
}
diff --git a/src/client/views/presentationview/PresElementBox.tsx b/src/client/views/presentationview/PresElementBox.tsx
index f50a3a0ef..dad55e1fd 100644
--- a/src/client/views/presentationview/PresElementBox.tsx
+++ b/src/client/views/presentationview/PresElementBox.tsx
@@ -9,7 +9,7 @@ import { documentSchema } from '../../../new_fields/documentSchemas';
import { Id } from "../../../new_fields/FieldSymbols";
import { createSchema, makeInterface } from '../../../new_fields/Schema';
import { Cast, NumCast, StrCast } from "../../../new_fields/Types";
-import { emptyFunction, returnFalse } from "../../../Utils";
+import { emptyFunction, returnFalse, emptyPath } from "../../../Utils";
import { DocumentType } from "../../documents/DocumentTypes";
import { Transform } from "../../util/Transform";
import { CollectionViewType } from '../collections/CollectionView';
@@ -161,25 +161,24 @@ export class PresElementBox extends DocComponent<FieldViewProps, PresDocument>(P
return (null);
}
- let propDocWidth = NumCast(this.layoutDoc.nativeWidth);
- let propDocHeight = NumCast(this.layoutDoc.nativeHeight);
- let scale = () => 175 / NumCast(this.layoutDoc.nativeWidth, 175);
+ const propDocWidth = NumCast(this.layoutDoc._nativeWidth);
+ const propDocHeight = NumCast(this.layoutDoc._nativeHeight);
+ const scale = () => 175 / NumCast(this.layoutDoc._nativeWidth, 175);
return (
<div className="presElementBox-embedded" style={{
- height: propDocHeight === 0 ? NumCast(this.layoutDoc.height) - NumCast(this.layoutDoc.collapsedHeight) : propDocHeight * scale(),
+ height: propDocHeight === 0 ? NumCast(this.layoutDoc._height) - NumCast(this.layoutDoc.collapsedHeight) : propDocHeight * scale(),
width: propDocWidth === 0 ? "auto" : propDocWidth * scale(),
}}>
<ContentFittingDocumentView
- fitToBox={StrCast(this.targetDoc.type).indexOf(DocumentType.COL) !== -1}
Document={this.targetDoc}
+ LibraryPath={emptyPath}
+ fitToBox={StrCast(this.targetDoc.type).indexOf(DocumentType.COL) !== -1}
addDocument={returnFalse}
removeDocument={returnFalse}
- ruleProvider={undefined}
addDocTab={returnFalse}
pinToPres={returnFalse}
PanelWidth={() => this.props.PanelWidth() - 20}
PanelHeight={() => 100}
- setPreviewScript={emptyFunction}
getTransform={Transform.Identity}
active={this.props.active}
moveDocument={this.props.moveDocument!}
@@ -193,9 +192,9 @@ export class PresElementBox extends DocComponent<FieldViewProps, PresDocument>(P
}
render() {
- let treecontainer = this.props.ContainingCollectionDoc && this.props.ContainingCollectionDoc.viewType === CollectionViewType.Tree;
- let className = "presElementBox-item" + (this.currentIndex === this.indexInPres ? " presElementBox-selected" : "");
- let pbi = "presElementBox-interaction";
+ const treecontainer = this.props.ContainingCollectionDoc?._viewType === CollectionViewType.Tree;
+ const className = "presElementBox-item" + (this.currentIndex === this.indexInPres ? " presElementBox-selected" : "");
+ const pbi = "presElementBox-interaction";
return (
<div className={className} key={this.props.Document[Id] + this.indexInPres}
style={{ outlineWidth: Doc.IsBrushed(this.targetDoc) ? `1px` : "0px", }}
diff --git a/src/client/views/search/FilterBox.tsx b/src/client/views/search/FilterBox.tsx
index 62f3aba4c..684f50766 100644
--- a/src/client/views/search/FilterBox.tsx
+++ b/src/client/views/search/FilterBox.tsx
@@ -62,15 +62,6 @@ export class FilterBox extends React.Component {
super(props);
FilterBox.Instance = this;
}
-
- componentDidMount = () => {
- document.addEventListener("pointerdown", (e) => {
- if (!e.defaultPrevented && e.timeStamp !== this._pointerTime) {
- SearchBox.Instance.closeSearch();
- }
- });
- }
-
setupAccordion() {
$('document').ready(function () {
const acc = document.getElementsByClassName('filter-header');
@@ -79,7 +70,7 @@ export class FilterBox extends React.Component {
acc[i].addEventListener("click", function (this: HTMLElement) {
this.classList.toggle("active");
- var panel = this.nextElementSibling as HTMLElement;
+ const panel = this.nextElementSibling as HTMLElement;
if (panel.style.maxHeight) {
panel.style.overflow = "hidden";
panel.style.maxHeight = "";
@@ -96,7 +87,7 @@ export class FilterBox extends React.Component {
}
});
- let el = acc[i] as HTMLElement;
+ const el = acc[i] as HTMLElement;
el.click();
}
});
@@ -105,14 +96,14 @@ export class FilterBox extends React.Component {
@action.bound
minimizeAll() {
$('document').ready(function () {
- var acc = document.getElementsByClassName('filter-header');
+ const acc = document.getElementsByClassName('filter-header');
// tslint:disable-next-line: prefer-for-of
for (var i = 0; i < acc.length; i++) {
- let classList = acc[i].classList;
+ const classList = acc[i].classList;
if (classList.contains("active")) {
acc[i].classList.toggle("active");
- var panel = acc[i].nextElementSibling as HTMLElement;
+ const panel = acc[i].nextElementSibling as HTMLElement;
panel.style.overflow = "hidden";
panel.style.maxHeight = "";
}
@@ -128,10 +119,10 @@ export class FilterBox extends React.Component {
}
basicRequireWords(query: string): string {
- let oldWords = query.split(" ");
- let newWords: string[] = [];
+ const oldWords = query.split(" ");
+ const newWords: string[] = [];
oldWords.forEach(word => {
- let newWrd = "+" + word;
+ const newWrd = "+" + word;
newWords.push(newWrd);
});
query = newWords.join(" ");
@@ -140,7 +131,7 @@ export class FilterBox extends React.Component {
}
basicFieldFilters(query: string, type: string): string {
- let oldWords = query.split(" ");
+ const oldWords = query.split(" ");
let mod = "";
if (type === Keys.AUTHOR) {
@@ -151,9 +142,9 @@ export class FilterBox extends React.Component {
mod = " title_t:";
}
- let newWords: string[] = [];
+ const newWords: string[] = [];
oldWords.forEach(word => {
- let newWrd = mod + word;
+ const newWrd = mod + word;
newWords.push(newWrd);
});
@@ -183,11 +174,11 @@ export class FilterBox extends React.Component {
//gets all of the collections of all the docviews that are selected
//if a collection is the only thing selected, search only in that collection (not its container)
getCurCollections(): Doc[] {
- let selectedDocs: DocumentView[] = SelectionManager.SelectedDocuments();
- let collections: Doc[] = [];
+ const selectedDocs: DocumentView[] = SelectionManager.SelectedDocuments();
+ const collections: Doc[] = [];
selectedDocs.forEach(async element => {
- let layout: string = StrCast(element.props.Document.baseLayout);
+ const layout: string = StrCast(element.props.Document.layout);
//checks if selected view (element) is a collection. if it is, adds to list to search through
if (layout.indexOf("Collection") > -1) {
//makes sure collections aren't added more than once
@@ -229,14 +220,14 @@ export class FilterBox extends React.Component {
}
addCollectionFilter(query: string): string {
- let collections: Doc[] = this.getCurCollections();
- let oldWords = query.split(" ");
+ const collections: Doc[] = this.getCurCollections();
+ const oldWords = query.split(" ");
- let collectionString: string[] = [];
+ const collectionString: string[] = [];
collections.forEach(doc => {
- let proto = doc.proto;
- let protoId = (proto || doc)[Id];
- let colString: string = "{!join from=data_l to=id}id:" + protoId + " ";
+ const proto = doc.proto;
+ const protoId = (proto || doc)[Id];
+ const colString: string = "{!join from=data_l to=id}id:" + protoId + " ";
collectionString.push(colString);
});
@@ -254,9 +245,9 @@ export class FilterBox extends React.Component {
if (this._icons.length === 9) {
return docs;
}
- let finalDocs: Doc[] = [];
+ const finalDocs: Doc[] = [];
docs.forEach(doc => {
- let layoutresult = Cast(doc.type, "string");
+ const layoutresult = Cast(doc.type, "string");
if (layoutresult && this._icons.includes(layoutresult)) {
finalDocs.push(doc);
}
diff --git a/src/client/views/search/IconButton.tsx b/src/client/views/search/IconButton.tsx
index d2cfe7fad..f01508141 100644
--- a/src/client/views/search/IconButton.tsx
+++ b/src/client/views/search/IconButton.tsx
@@ -108,7 +108,7 @@ export class IconButton extends React.Component<IconButtonProps>{
@action.bound
onClick = () => {
- let newList: string[] = FilterBox.Instance.getIcons();
+ const newList: string[] = FilterBox.Instance.getIcons();
if (!this._isSelected) {
this._isSelected = true;
diff --git a/src/client/views/search/NaviconButton.tsx b/src/client/views/search/NaviconButton.tsx
index 3fa36b163..0fa4a0fca 100644
--- a/src/client/views/search/NaviconButton.tsx
+++ b/src/client/views/search/NaviconButton.tsx
@@ -4,7 +4,7 @@ import "./NaviconButton.scss";
import * as $ from 'jquery';
import { observable } from 'mobx';
-export interface NaviconProps{
+export interface NaviconProps {
onClick(): void;
}
@@ -13,19 +13,21 @@ export class NaviconButton extends React.Component<NaviconProps> {
@observable private _ref: React.RefObject<HTMLAnchorElement> = React.createRef();
componentDidMount = () => {
- let that = this;
- if(this._ref.current){this._ref.current.addEventListener("click", function(e) {
- e.preventDefault();
- if(that._ref.current){
- that._ref.current.classList.toggle('active');
- return false;
- }
- });}
+ const that = this;
+ if (this._ref.current) {
+ this._ref.current.addEventListener("click", function (e) {
+ e.preventDefault();
+ if (that._ref.current) {
+ that._ref.current.classList.toggle('active');
+ return false;
+ }
+ });
+ }
}
render() {
return (
- <a id="hamburger-icon" href="#" ref = {this._ref} title="Menu">
+ <a id="hamburger-icon" href="#" ref={this._ref} title="Menu">
<span className="line line-1"></span>
<span className="line line-2"></span>
<span className="line line-3"></span>
diff --git a/src/client/views/search/SearchBox.scss b/src/client/views/search/SearchBox.scss
index bc11604a5..f492ea773 100644
--- a/src/client/views/search/SearchBox.scss
+++ b/src/client/views/search/SearchBox.scss
@@ -9,6 +9,7 @@
position: absolute;
font-size: 10px;
line-height: 1;
+ overflow: hidden;
}
.searchBox-bar {
height: 32px;
@@ -69,13 +70,8 @@
top: 300px;
display: flex;
flex-direction: column;
- // height: 560px;
height: 100%;
- // overflow: hidden;
- // overflow-y: auto;
- max-height: 560px;
- overflow: hidden;
- overflow-y: auto;
+ overflow: visible;
.no-result {
width: 500px;
diff --git a/src/client/views/search/SearchBox.tsx b/src/client/views/search/SearchBox.tsx
index 899a35f48..be13dae03 100644
--- a/src/client/views/search/SearchBox.tsx
+++ b/src/client/views/search/SearchBox.tsx
@@ -8,18 +8,15 @@ import * as rp from 'request-promise';
import { Doc } from '../../../new_fields/Doc';
import { Id } from '../../../new_fields/FieldSymbols';
import { Cast, NumCast } from '../../../new_fields/Types';
-import { RouteStore } from '../../../server/RouteStore';
import { Utils } from '../../../Utils';
import { Docs } from '../../documents/Documents';
import { SetupDrag } from '../../util/DragManager';
import { SearchUtil } from '../../util/SearchUtil';
-import { MainView } from '../MainView';
import { FilterBox } from './FilterBox';
import "./FilterBox.scss";
import "./SearchBox.scss";
import { SearchItem } from './SearchItem';
import { IconBar } from './IconBar';
-import { string } from 'prop-types';
library.add(faTimes);
@@ -86,11 +83,15 @@ export class SearchBox extends React.Component {
this._maxSearchIndex = 0;
}
- enter = (e: React.KeyboardEvent) => { if (e.key === "Enter") { this.submitSearch(); } };
+ enter = (e: React.KeyboardEvent) => {
+ if (e.key === "Enter") {
+ this.submitSearch();
+ }
+ }
public static async convertDataUri(imageUri: string, returnedFilename: string) {
try {
- let posting = Utils.prepend(RouteStore.dataUriToImage);
+ const posting = Utils.prepend("/uploadURI");
const returnedUri = await rp.post(posting, {
body: {
uri: imageUri,
@@ -145,6 +146,7 @@ export class SearchBox extends React.Component {
}
+ private NumResults = 25;
private lockPromise?: Promise<void>;
getResults = async (query: string) => {
if (this.lockPromise) {
@@ -152,7 +154,7 @@ export class SearchBox extends React.Component {
}
this.lockPromise = new Promise(async res => {
while (this._results.length <= this._endIndex && (this._numTotalResults === -1 || this._maxSearchIndex < this._numTotalResults)) {
- this._curRequest = SearchUtil.Search(query, true, { fq: this.filterQuery, start: this._maxSearchIndex, rows: 10, hl: true, "hl.fl": "*" }).then(action(async (res: SearchUtil.DocSearchResult) => {
+ this._curRequest = SearchUtil.Search(query, true, { fq: this.filterQuery, start: this._maxSearchIndex, rows: this.NumResults, hl: true, "hl.fl": "*" }).then(action(async (res: SearchUtil.DocSearchResult) => {
// happens at the beginning
if (res.numFound !== this._numTotalResults && this._numTotalResults === -1) {
@@ -166,7 +168,7 @@ export class SearchBox extends React.Component {
const docs = await Promise.all(res.docs.map(async doc => (await Cast(doc.extendsDoc, Doc)) || doc));
const highlights: typeof res.highlighting = {};
docs.forEach((doc, index) => highlights[doc[Id]] = highlightList[index]);
- let filteredDocs = FilterBox.Instance.filterDocsByType(docs);
+ const filteredDocs = FilterBox.Instance.filterDocsByType(docs);
runInAction(() => {
// this._results.push(...filteredDocs);
filteredDocs.forEach(doc => {
@@ -186,7 +188,7 @@ export class SearchBox extends React.Component {
this._curRequest = undefined;
}));
- this._maxSearchIndex += 10;
+ this._maxSearchIndex += this.NumResults;
await this._curRequest;
}
@@ -198,8 +200,8 @@ export class SearchBox extends React.Component {
collectionRef = React.createRef<HTMLSpanElement>();
startDragCollection = async () => {
- let res = await this.getAllResults(FilterBox.Instance.getFinalQuery(this._searchString));
- let filtered = FilterBox.Instance.filterDocsByType(res.docs);
+ const res = await this.getAllResults(FilterBox.Instance.getFinalQuery(this._searchString));
+ const filtered = FilterBox.Instance.filterDocsByType(res.docs);
// console.log(this._results)
const docs = filtered.map(doc => {
const isProto = Doc.GetT(doc, "isPrototype", "boolean", true);
@@ -215,16 +217,16 @@ export class SearchBox extends React.Component {
doc.x = x;
doc.y = y;
const size = 200;
- const aspect = NumCast(doc.nativeHeight) / NumCast(doc.nativeWidth, 1);
+ const aspect = NumCast(doc._nativeHeight) / NumCast(doc._nativeWidth, 1);
if (aspect > 1) {
- doc.height = size;
- doc.width = size / aspect;
+ doc._height = size;
+ doc._width = size / aspect;
} else if (aspect > 0) {
- doc.width = size;
- doc.height = size * aspect;
+ doc._width = size;
+ doc._height = size * aspect;
} else {
- doc.width = size;
- doc.height = size;
+ doc._width = size;
+ doc._height = size;
}
x += 250;
if (x > 1000) {
@@ -232,8 +234,7 @@ export class SearchBox extends React.Component {
y += 300;
}
}
- return Docs.Create.FreeformDocument(docs, { width: 400, height: 400, panX: 175, panY: 175, backgroundColor: "grey", title: `Search Docs: "${this._searchString}"` });
-
+ return Docs.Create.TreeDocument(docs, { _width: 200, _height: 400, backgroundColor: "grey", title: `Search Docs: "${this._searchString}"` });
}
@action.bound
@@ -266,10 +267,11 @@ export class SearchBox extends React.Component {
@action
resultsScrolled = (e?: React.UIEvent<HTMLDivElement>) => {
- let scrollY = e ? e.currentTarget.scrollTop : this.resultsRef.current ? this.resultsRef.current.scrollTop : 0;
- let buffer = 4;
- let startIndex = Math.floor(Math.max(0, scrollY / 70 - buffer));
- let endIndex = Math.ceil(Math.min(this._numTotalResults - 1, startIndex + (560 / 70) + buffer));
+ if (!this.resultsRef.current) return;
+ const scrollY = e ? e.currentTarget.scrollTop : this.resultsRef.current ? this.resultsRef.current.scrollTop : 0;
+ const itemHght = 53;
+ const startIndex = Math.floor(Math.max(0, scrollY / itemHght));
+ const endIndex = Math.ceil(Math.min(this._numTotalResults - 1, startIndex + (this.resultsRef.current.getBoundingClientRect().height / itemHght)));
this._endIndex = endIndex === -1 ? 12 : endIndex;
@@ -307,7 +309,7 @@ export class SearchBox extends React.Component {
this.getResults(this._searchString);
if (i < this._results.length) result = this._results[i];
if (result) {
- let highlights = Array.from([...Array.from(new Set(result[1]).values())]).filter(v => v !== "search_string");
+ const highlights = Array.from([...Array.from(new Set(result[1]).values())]);
this._visibleElements[i] = <SearchItem doc={result[0]} query={this._searchString} key={result[0][Id]} lines={result[2]} highlighting={highlights} />;
this._isSearch[i] = "search";
}
@@ -315,7 +317,7 @@ export class SearchBox extends React.Component {
else {
result = this._results[i];
if (result) {
- let highlights = Array.from([...Array.from(new Set(result[1]).values())]).filter(v => v !== "search_string");
+ const highlights = Array.from([...Array.from(new Set(result[1]).values())]);
this._visibleElements[i] = <SearchItem doc={result[0]} query={this._searchString} key={result[0][Id]} lines={result[2]} highlighting={highlights} />;
this._isSearch[i] = "search";
}
@@ -337,9 +339,9 @@ export class SearchBox extends React.Component {
render() {
return (
- <div className="searchBox-container">
+ <div className="searchBox-container" onPointerDown={e => { e.stopPropagation(); e.preventDefault(); }}>
<div className="searchBox-bar">
- <span className="searchBox-barChild searchBox-collection" onPointerDown={SetupDrag(this.collectionRef, this.startDragCollection)} ref={this.collectionRef} title="Drag Results as Collection">
+ <span className="searchBox-barChild searchBox-collection" onPointerDown={SetupDrag(this.collectionRef, () => this._searchString ? this.startDragCollection() : undefined)} ref={this.collectionRef} title="Drag Results as Collection">
<FontAwesomeIcon icon="object-group" size="lg" />
</span>
<input value={this._searchString} onChange={this.onChange} type="text" placeholder="Search..." id="search-input" ref={this.inputRef}
@@ -347,13 +349,13 @@ export class SearchBox extends React.Component {
style={{ width: this._searchbarOpen ? "500px" : "100px" }} />
<button className="searchBox-barChild searchBox-filter" title="Advanced Filtering Options" onClick={FilterBox.Instance.openFilter} onPointerDown={FilterBox.Instance.stopProp}><FontAwesomeIcon icon="ellipsis-v" color="white" /></button>
</div>
- {(this._numTotalResults > 0 || !this._searchbarOpen) ? (null) :
- (<div className="searchBox-quickFilter" onPointerDown={this.openSearch}>
- <div className="filter-panel"><IconBar /></div>
- </div>)}
+ <div className="searchBox-quickFilter" onPointerDown={this.openSearch}>
+ <div className="filter-panel"><IconBar /></div>
+ </div>
<div className="searchBox-results" onScroll={this.resultsScrolled} style={{
display: this._resultsOpen ? "flex" : "none",
- height: this.resFull ? "560px" : this.resultHeight, overflow: this.resFull ? "auto" : "visible"
+ height: this.resFull ? "auto" : this.resultHeight,
+ overflow: "visibile" // this.resFull ? "auto" : "visible"
}} ref={this.resultsRef}>
{this._visibleElements}
</div>
diff --git a/src/client/views/search/SearchItem.scss b/src/client/views/search/SearchItem.scss
index 9f12994c3..469f062b2 100644
--- a/src/client/views/search/SearchItem.scss
+++ b/src/client/views/search/SearchItem.scss
@@ -1,22 +1,14 @@
@import "../globalCssVariables";
-.search-overview {
+.searchItem-overview {
display: flex;
flex-direction: reverse;
justify-content: flex-end;
z-index: 0;
}
-.link-count {
- background: black;
- border-radius: 20px;
- color: white;
- width: 15px;
- text-align: center;
- margin-top: 5px;
-}
.searchBox-placeholder,
-.search-overview .search-item {
+.searchItem-overview .searchItem {
width: 100%;
background: $light-color-secondary;
border-color: $intermediate-color;
@@ -26,19 +18,19 @@
max-height: 150px;
height: auto;
z-index: 0;
- display: inline-block;
- overflow: auto;
+ display: flex;
+ overflow: visible;
- .main-search-info {
+ .searchItem-body {
display: flex;
flex-direction: row;
width: 100%;
- .search-title-container {
+ .searchItem-title-container {
width: 100%;
overflow: hidden;
- .search-title {
+ .searchItem-title {
text-transform: uppercase;
text-align: left;
width: 100%;
@@ -46,75 +38,28 @@
}
}
- .search-info {
+ .searchItem-info {
display: flex;
justify-content: flex-end;
- .link-container.item {
- margin-left: auto;
- margin-right: auto;
- height: 26px;
- width: 26px;
- border-radius: 13px;
- background: $dark-color;
- color: $light-color-secondary;
- display: flex;
- justify-content: center;
- align-items: center;
- -webkit-transition: all 0.2s ease-in-out;
- -moz-transition: all 0.2s ease-in-out;
- -o-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out;
- transform-origin: top right;
- overflow: hidden;
- position: relative;
-
-
- .link-extended {
- // display: none;
- visibility: hidden;
- opacity: 0;
- position: relative;
- z-index: 500;
- overflow: hidden;
- -webkit-transition: opacity 0.2s ease-in-out .2s, visibility 0s linear 0s;
- -moz-transition: opacity 0.2s ease-in-out .2s, visibility 0s linear 0s;
- -o-transition: opacity 0.2s ease-in-out .2s, visibility 0s linear 0s;
- transition: opacity 0.2s ease-in-out .2s, visibility 0s linear 0s;
- // transition-delay: 1s;
- }
-
- }
-
- .link-container.item:hover {
- width: 70px;
- }
-
- .link-container.item:hover .link-count {
- opacity: 0;
- }
-
- .link-container.item:hover .link-extended {
- opacity: 1;
- visibility: visible;
- // display: inline;
- }
-
.icon-icons {
width: 50px
}
.icon-live {
width: 175px;
+ height: 0px;
}
+ .icon-icons {
+ height:auto;
+ }
.icon-icons,
.icon-live {
- height: auto;
margin: auto;
- overflow: hidden;
+ overflow: visible;
- .search-type {
+ .searchItem-type {
display: inline-block;
width: 100%;
position: absolute;
@@ -133,11 +78,11 @@
}
}
- .search-type:hover+.search-label {
+ .searchItem-type:hover+.searchItem-label {
opacity: 1;
}
- .search-label {
+ .searchItem-label {
font-size: 10;
position: relative;
right: 0px;
@@ -151,8 +96,6 @@
}
.icon-live:hover {
- height: 175px;
-
.pdfBox-cont {
img {
width: 100% !important;
@@ -161,48 +104,51 @@
}
}
- .search-info:hover {
+ .searchItem-info:hover {
width: 60%;
}
}
}
-.search-item:hover~.searchBox-instances,
+.searchItem:hover~.searchBox-instances,
.searchBox-instances:hover,
.searchBox-instances:active {
opacity: 1;
background: $lighter-alt-accent;
- width:150px
}
-.search-item:hover {
+.searchItem:hover {
transition: all 0.2s;
background: $lighter-alt-accent;
}
-.search-highlighting {
+.searchItem-highlighting {
overflow: hidden;
text-overflow: ellipsis;
white-space: pre;
}
.searchBox-instances {
- float: left;
opacity: 1;
- width: 0px;
+ width:40px;
+ height:40px;
+ background: gray;
transition: all 0.2s ease;
color: black;
overflow: hidden;
+ right:-100;
+ display:inline-block;
}
-.search-overview:hover {
+.searchItem-overview:hover {
z-index: 1;
}
.searchBox-placeholder {
min-height: 50px;
margin-left: 150px;
+ width: calc(100% - 150px);
text-transform: uppercase;
text-align: left;
font-weight: bold;
diff --git a/src/client/views/search/SearchItem.tsx b/src/client/views/search/SearchItem.tsx
index f1d825aa0..8aea737f0 100644
--- a/src/client/views/search/SearchItem.tsx
+++ b/src/client/views/search/SearchItem.tsx
@@ -4,24 +4,24 @@ import { faCaretUp, faChartBar, faFile, faFilePdf, faFilm, faFingerprint, faGlob
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { action, computed, observable, runInAction } from "mobx";
import { observer } from "mobx-react";
-import { Doc } from "../../../new_fields/Doc";
+import { Doc, DocListCast } from "../../../new_fields/Doc";
import { Id } from "../../../new_fields/FieldSymbols";
import { Cast, NumCast, StrCast } from "../../../new_fields/Types";
-import { emptyFunction, returnEmptyString, returnFalse, returnOne, Utils } from "../../../Utils";
+import { emptyFunction, returnEmptyString, returnFalse, returnOne, Utils, emptyPath } from "../../../Utils";
import { DocumentType } from "../../documents/DocumentTypes";
import { DocumentManager } from "../../util/DocumentManager";
import { DragManager, SetupDrag } from "../../util/DragManager";
-import { LinkManager } from "../../util/LinkManager";
import { SearchUtil } from "../../util/SearchUtil";
import { Transform } from "../../util/Transform";
import { SEARCH_THUMBNAIL_SIZE } from "../../views/globalCssVariables.scss";
import { CollectionViewType } from "../collections/CollectionView";
import { CollectionDockingView } from "../collections/CollectionDockingView";
import { ContextMenu } from "../ContextMenu";
-import { DocumentView } from "../nodes/DocumentView";
import { SearchBox } from "./SearchBox";
import "./SearchItem.scss";
import "./SelectorContextMenu.scss";
+import { ContentFittingDocumentView } from "../nodes/ContentFittingDocumentView";
+import { ButtonSelector, ParentDocSelector } from "../collections/ParentDocumentSelector";
export interface SearchItemProps {
doc: Doc;
@@ -52,7 +52,7 @@ export class SelectorContextMenu extends React.Component<SearchItemProps> {
}
async fetchDocuments() {
- let aliases = (await SearchUtil.GetViewsOfDocument(this.props.doc)).filter(doc => doc !== this.props.doc);
+ const aliases = (await SearchUtil.GetViewsOfDocument(this.props.doc)).filter(doc => doc !== this.props.doc);
const { docs } = await SearchUtil.Search("", true, { fq: `data_l:"${this.props.doc[Id]}"` });
const map: Map<Doc, Doc> = new Map;
const allDocs = await Promise.all(aliases.map(doc => SearchUtil.Search("", true, { fq: `data_l:"${doc[Id]}"` }).then(result => result.docs)));
@@ -68,11 +68,11 @@ export class SelectorContextMenu extends React.Component<SearchItemProps> {
getOnClick({ col, target }: { col: Doc, target: Doc }) {
return () => {
col = Doc.IsPrototype(col) ? Doc.MakeDelegate(col) : col;
- if (NumCast(col.viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
- const newPanX = NumCast(target.x) + NumCast(target.width) / 2;
- const newPanY = NumCast(target.y) + NumCast(target.height) / 2;
- col.panX = newPanX;
- col.panY = newPanY;
+ if (NumCast(col._viewType, CollectionViewType.Invalid) === CollectionViewType.Freeform) {
+ const newPanX = NumCast(target.x) + NumCast(target._width) / 2;
+ const newPanY = NumCast(target.y) + NumCast(target._height) / 2;
+ col._panX = newPanX;
+ col._panY = newPanY;
}
CollectionDockingView.AddRightSplit(col, undefined);
};
@@ -82,7 +82,7 @@ export class SelectorContextMenu extends React.Component<SearchItemProps> {
<div className="parents">
<p className="contexts">Contexts:</p>
{[...this._docs, ...this._otherDocs].map(doc => {
- let item = React.createRef<HTMLDivElement>();
+ const item = React.createRef<HTMLDivElement>();
return <div className="collection" key={doc.col[Id] + doc.target[Id]} ref={item}>
<div className="collection-item" onPointerDown={
SetupDrag(item, () => doc.col, undefined, undefined, undefined, undefined, () => SearchBox.Instance.closeSearch())}>
@@ -135,56 +135,47 @@ export class SearchItem extends React.Component<SearchItemProps> {
@observable _displayDim = 50;
componentDidMount() {
- this.props.doc.search_string = this.props.query;
- this.props.doc.search_fields = this.props.highlighting.join(", ");
+ Doc.SetSearchQuery(this.props.query);
+ this.props.doc.searchMatch = true;
}
componentWillUnmount() {
- this.props.doc.search_string = undefined;
- this.props.doc.search_fields = undefined;
+ this.props.doc.searchMatch = undefined;
}
//@computed
@action
public DocumentIcon() {
- let layoutresult = StrCast(this.props.doc.type);
+ const layoutresult = StrCast(this.props.doc.type);
if (!this._useIcons) {
- let returnXDimension = () => this._useIcons ? 50 : Number(SEARCH_THUMBNAIL_SIZE);
- let returnYDimension = () => this._displayDim;
- let scale = () => returnXDimension() / NumCast(Doc.Layout(this.props.doc).nativeWidth, returnXDimension());
+ const returnXDimension = () => this._useIcons ? 50 : Number(SEARCH_THUMBNAIL_SIZE);
+ const returnYDimension = () => this._displayDim;
const docview = <div
onPointerDown={action(() => {
this._useIcons = !this._useIcons;
this._displayDim = this._useIcons ? 50 : Number(SEARCH_THUMBNAIL_SIZE);
})}
- onPointerEnter={action(() => this._displayDim = this._useIcons ? 50 : Number(SEARCH_THUMBNAIL_SIZE))}
- onPointerLeave={action(() => this._displayDim = 50)} >
- <DocumentView
- fitToBox={StrCast(this.props.doc.type).indexOf(DocumentType.COL) !== -1}
+ onPointerEnter={action(() => this._displayDim = this._useIcons ? 50 : Number(SEARCH_THUMBNAIL_SIZE))} >
+ <ContentFittingDocumentView
Document={this.props.doc}
+ LibraryPath={emptyPath}
+ fitToBox={StrCast(this.props.doc.type).indexOf(DocumentType.COL) !== -1}
addDocument={returnFalse}
removeDocument={returnFalse}
- ruleProvider={undefined}
- ScreenToLocalTransform={Transform.Identity}
addDocTab={returnFalse}
pinToPres={returnFalse}
+ getTransform={Transform.Identity}
renderDepth={1}
PanelWidth={returnXDimension}
PanelHeight={returnYDimension}
focus={emptyFunction}
- backgroundColor={returnEmptyString}
- parentActive={returnFalse}
+ moveDocument={returnFalse}
+ active={returnFalse}
whenActiveChanged={returnFalse}
- bringToFront={emptyFunction}
- zoomToScale={emptyFunction}
- getScale={returnOne}
- ContainingCollectionView={undefined}
- ContainingCollectionDoc={undefined}
- ContentScaling={scale}
/>
</div>;
return docview;
}
- let button = layoutresult.indexOf(DocumentType.PDF) !== -1 ? faFilePdf :
+ const button = layoutresult.indexOf(DocumentType.PDF) !== -1 ? faFilePdf :
layoutresult.indexOf(DocumentType.IMG) !== -1 ? faImage :
layoutresult.indexOf(DocumentType.TEXT) !== -1 ? faStickyNote :
layoutresult.indexOf(DocumentType.VID) !== -1 ? faFilm :
@@ -194,40 +185,28 @@ export class SearchItem extends React.Component<SearchItemProps> {
layoutresult.indexOf(DocumentType.HIST) !== -1 ? faChartBar :
layoutresult.indexOf(DocumentType.WEB) !== -1 ? faGlobeAsia :
faCaretUp;
- return <div onPointerDown={action(() => { this._useIcons = false; this._displayDim = Number(SEARCH_THUMBNAIL_SIZE); })} >
+ return <div onClick={action(() => { this._useIcons = false; this._displayDim = Number(SEARCH_THUMBNAIL_SIZE); })} >
<FontAwesomeIcon icon={button} size="2x" />
</div>;
}
collectionRef = React.createRef<HTMLDivElement>();
- startDocDrag = () => {
- let doc = this.props.doc;
- const isProto = Doc.GetT(doc, "isPrototype", "boolean", true);
- if (isProto) {
- return Doc.MakeDelegate(doc);
- } else {
- return Doc.MakeAlias(doc);
- }
- }
-
- @computed
- get linkCount() { return LinkManager.Instance.getAllRelatedLinks(this.props.doc).length; }
@action
pointerDown = (e: React.PointerEvent) => { e.preventDefault(); e.button === 0 && SearchBox.Instance.openSearch(e); }
nextHighlight = (e: React.PointerEvent) => {
- e.preventDefault(); e.button === 0 && SearchBox.Instance.openSearch(e);
- let sstring = StrCast(this.props.doc.search_string);
- this.props.doc.search_string = "";
- setTimeout(() => this.props.doc.search_string = sstring, 0);
+ e.preventDefault();
+ e.button === 0 && SearchBox.Instance.openSearch(e);
+ this.props.doc.searchMatch = false;
+ setTimeout(() => this.props.doc.searchMatch = true, 0);
}
highlightDoc = (e: React.PointerEvent) => {
if (this.props.doc.type === DocumentType.LINK) {
if (this.props.doc.anchor1 && this.props.doc.anchor2) {
- let doc1 = Cast(this.props.doc.anchor1, Doc, null);
- let doc2 = Cast(this.props.doc.anchor2, Doc, null);
+ const doc1 = Cast(this.props.doc.anchor1, Doc, null);
+ const doc2 = Cast(this.props.doc.anchor2, Doc, null);
Doc.BrushDoc(doc1);
Doc.BrushDoc(doc2);
}
@@ -241,8 +220,8 @@ export class SearchItem extends React.Component<SearchItemProps> {
if (this.props.doc.type === DocumentType.LINK) {
if (this.props.doc.anchor1 && this.props.doc.anchor2) {
- let doc1 = Cast(this.props.doc.anchor1, Doc, null);
- let doc2 = Cast(this.props.doc.anchor2, Doc, null);
+ const doc1 = Cast(this.props.doc.anchor1, Doc, null);
+ const doc2 = Cast(this.props.doc.anchor2, Doc, null);
Doc.UnBrushDoc(doc1);
Doc.UnBrushDoc(doc2);
}
@@ -264,46 +243,61 @@ export class SearchItem extends React.Component<SearchItemProps> {
ContextMenu.Instance.displayMenu(e.clientX, e.clientY);
}
+ _downX = 0;
+ _downY = 0;
+ _target: any;
onPointerDown = (e: React.PointerEvent<HTMLDivElement>) => {
+ this._downX = e.clientX;
+ this._downY = e.clientY;
e.stopPropagation();
- const doc = Doc.IsPrototype(this.props.doc) ? Doc.MakeDelegate(this.props.doc) : this.props.doc;
- DragManager.StartDocumentDrag([e.currentTarget], new DragManager.DocumentDragData([doc]), e.clientX, e.clientY, {
- handlers: { dragComplete: emptyFunction },
- hideSource: false,
- });
+ this._target = e.currentTarget;
+ document.removeEventListener("pointermove", this.onPointerMoved);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ document.addEventListener("pointermove", this.onPointerMoved);
+ document.addEventListener("pointerup", this.onPointerUp);
+ }
+ onPointerMoved = (e: PointerEvent) => {
+ if (Math.abs(e.clientX - this._downX) > Utils.DRAG_THRESHOLD ||
+ Math.abs(e.clientY - this._downY) > Utils.DRAG_THRESHOLD) {
+ document.removeEventListener("pointermove", this.onPointerMoved);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ const doc = Doc.IsPrototype(this.props.doc) ? Doc.MakeDelegate(this.props.doc) : this.props.doc;
+ DragManager.StartDocumentDrag([this._target], new DragManager.DocumentDragData([doc]), e.clientX, e.clientY);
+ }
+ }
+ onPointerUp = (e: PointerEvent) => {
+ document.removeEventListener("pointermove", this.onPointerMoved);
+ document.removeEventListener("pointerup", this.onPointerUp);
+ }
+
+ @computed
+ get contextButton() {
+ return <ParentDocSelector Views={DocumentManager.Instance.DocumentViews} Document={this.props.doc} addDocTab={(doc, data, where) => CollectionDockingView.AddRightSplit(doc, data)} />;
}
render() {
const doc1 = Cast(this.props.doc.anchor1, Doc);
const doc2 = Cast(this.props.doc.anchor2, Doc);
- return (
- <div className="search-overview" onPointerDown={this.pointerDown} onContextMenu={this.onContextMenu}>
- <div className="search-item" onPointerDown={this.nextHighlight} onPointerEnter={this.highlightDoc} onPointerLeave={this.unHighlightDoc} id="result"
- onClick={this.onClick}>
- <div className="main-search-info">
- <div title="Drag as document" onPointerDown={this.onPointerDown} style={{ marginRight: "7px" }}> <FontAwesomeIcon icon="file" size="lg" />
- <div className="link-container item">
- <div className="link-count" title={`${this.linkCount + " links"}`}>{this.linkCount}</div>
- </div>
- </div>
- <div className="search-title-container">
- <div className="search-title">{StrCast(this.props.doc.title)}</div>
- <div className="search-highlighting">{this.props.highlighting.length ? "Matched fields:" + this.props.highlighting.join(", ") : this.props.lines.length ? this.props.lines[0] : ""}</div>
- {this.props.lines.filter((m, i) => i).map((l, i) => <div id={i.toString()} className="search-highlighting">`${l}`</div>)}
- </div>
- <div className="search-info" style={{ width: this._useIcons ? "15%" : "400px" }}>
- <div className={`icon-${this._useIcons ? "icons" : "live"}`}>
- <div className="search-type" title="Click to Preview">{this.DocumentIcon()}</div>
- <div className="search-label">{this.props.doc.type ? this.props.doc.type : "Other"}</div>
- </div>
- </div>
+ return <div className="searchItem-overview" onPointerDown={this.pointerDown} onContextMenu={this.onContextMenu}>
+ <div className="searchItem" onPointerDown={this.nextHighlight} onPointerEnter={this.highlightDoc} onPointerLeave={this.unHighlightDoc}>
+ <div className="searchItem-body" onClick={this.onClick}>
+ <div className="searchItem-title-container">
+ <div className="searchItem-title">{StrCast(this.props.doc.title)}</div>
+ <div className="searchItem-highlighting">{this.props.highlighting.length ? "Matched fields:" + this.props.highlighting.join(", ") : this.props.lines.length ? this.props.lines[0] : ""}</div>
+ {this.props.lines.filter((m, i) => i).map((l, i) => <div id={i.toString()} className="searchItem-highlighting">`${l}`</div>)}
+ </div>
+ </div>
+ <div className="searchItem-info" style={{ width: this._useIcons ? "30px" : "100%" }}>
+ <div className={`icon-${this._useIcons ? "icons" : "live"}`}>
+ <div className="searchItem-type" title="Click to Preview" onPointerDown={this.onPointerDown}>{this.DocumentIcon()}</div>
+ <div className="searchItem-label">{this.props.doc.type ? this.props.doc.type : "Other"}</div>
</div>
</div>
- <div className="searchBox-instances">
+ <div className="searchItem-context" title="Drag as document">
{(doc1 instanceof Doc && doc2 instanceof Doc) && this.props.doc.type === DocumentType.LINK ? <LinkContextMenu doc1={doc1} doc2={doc2} /> :
- <SelectorContextMenu {...this.props} />}
+ this.contextButton}
</div>
</div>
- );
+ </div>;
}
} \ No newline at end of file
diff --git a/src/client/views/search/ToggleBar.tsx b/src/client/views/search/ToggleBar.tsx
index ed5ecd3ba..e4d7f2fd5 100644
--- a/src/client/views/search/ToggleBar.tsx
+++ b/src/client/views/search/ToggleBar.tsx
@@ -33,8 +33,7 @@ export class ToggleBar extends React.Component<ToggleBarProps>{
}
componentDidMount = () => {
-
- let totalWidth = 265;
+ const totalWidth = 265;
if (this._originalStatus) {
this._forwardTimeline.add({
diff --git a/src/debug/Viewer.tsx b/src/debug/Viewer.tsx
index 24db3f934..a26d2e06a 100644
--- a/src/debug/Viewer.tsx
+++ b/src/debug/Viewer.tsx
@@ -24,7 +24,7 @@ CursorField;
function applyToDoc(doc: { [index: string]: FieldResult }, key: string, scriptString: string): boolean;
function applyToDoc(doc: { [index: number]: FieldResult }, key: number, scriptString: string): boolean;
function applyToDoc(doc: any, key: string | number, scriptString: string): boolean {
- let script = CompileScript(scriptString, { addReturn: true, params: { this: doc instanceof Doc ? Doc.name : List.name } });
+ const script = CompileScript(scriptString, { addReturn: true, params: { this: doc instanceof Doc ? Doc.name : List.name } });
if (!script.compiled) {
return false;
}
@@ -85,7 +85,7 @@ class DocumentViewer extends React.Component<{ field: Doc }> {
let content;
if (this.expanded) {
const keys = Object.keys(this.props.field);
- let fields = keys.map(key => {
+ const fields = keys.map(key => {
return (
<div key={key}>
<b>({key}): </b>
diff --git a/src/mobile/ImageUpload.tsx b/src/mobile/ImageUpload.tsx
index 33a615cbf..1583e3d5d 100644
--- a/src/mobile/ImageUpload.tsx
+++ b/src/mobile/ImageUpload.tsx
@@ -1,7 +1,6 @@
import * as ReactDOM from 'react-dom';
import * as rp from 'request-promise';
import { Docs } from '../client/documents/Documents';
-import { RouteStore } from '../server/RouteStore';
import "./ImageUpload.scss";
import React = require('react');
import { DocServer } from '../client/DocServer';
@@ -12,6 +11,8 @@ import { List } from '../new_fields/List';
import { observer } from 'mobx-react';
import { observable } from 'mobx';
import { Utils } from '../Utils';
+import MobileInterface from './MobileInterface';
+import { CurrentUserUtils } from '../server/authentication/models/current_user_utils';
@@ -35,16 +36,16 @@ class Uploader extends React.Component {
try {
this.status = "initializing protos";
await Docs.Prototypes.initialize();
- let imgPrev = document.getElementById("img_preview");
+ const imgPrev = document.getElementById("img_preview");
if (imgPrev) {
- let files: FileList | null = inputRef.current!.files;
+ const files: FileList | null = inputRef.current!.files;
if (files && files.length !== 0) {
console.log(files[0]);
const name = files[0].name;
- let formData = new FormData();
+ const formData = new FormData();
formData.append("file", files[0]);
- const upload = window.location.origin + "/upload";
+ const upload = window.location.origin + "/uploadFormData";
this.status = "uploading image";
const res = await fetch(upload, {
method: 'POST',
@@ -53,12 +54,12 @@ class Uploader extends React.Component {
this.status = "upload image, getting json";
const json = await res.json();
json.map(async (file: any) => {
- let path = window.location.origin + file;
- var doc = Docs.Create.ImageDocument(path, { nativeWidth: 200, width: 200, title: name });
+ const path = window.location.origin + file;
+ const doc = Docs.Create.ImageDocument(path, { _nativeWidth: 200, _width: 200, title: name });
this.status = "getting user document";
- const res = await rp.get(Utils.prepend(RouteStore.getUserDocumentId));
+ const res = await rp.get(Utils.prepend("/getUserDocumentId"));
if (!res) {
throw new Error("No user id returned");
}
@@ -105,10 +106,25 @@ class Uploader extends React.Component {
}
-DocServer.init(window.location.protocol, window.location.hostname, 4321, "image upload");
-
-ReactDOM.render((
- <Uploader />
-),
- document.getElementById('root')
-); \ No newline at end of file
+// DocServer.init(window.location.protocol, window.location.hostname, 4321, "image upload");
+(async () => {
+ const info = await CurrentUserUtils.loadCurrentUser();
+ DocServer.init(window.location.protocol, window.location.hostname, 4321, info.email + "mobile");
+ await Docs.Prototypes.initialize();
+ if (info.id !== "__guest__") {
+ // a guest will not have an id registered
+ await CurrentUserUtils.loadUserDocument(info);
+ }
+ document.getElementById('root')!.addEventListener('wheel', event => {
+ if (event.ctrlKey) {
+ event.preventDefault();
+ }
+ }, true);
+ ReactDOM.render((
+ // <Uploader />
+ <MobileInterface />
+ ),
+ document.getElementById('root')
+ );
+}
+)(); \ No newline at end of file
diff --git a/src/mobile/MobileInterface.tsx b/src/mobile/MobileInterface.tsx
new file mode 100644
index 000000000..b1eaeaa0a
--- /dev/null
+++ b/src/mobile/MobileInterface.tsx
@@ -0,0 +1,68 @@
+import React = require('react');
+import { observer } from 'mobx-react';
+import { computed, action } from 'mobx';
+import { CurrentUserUtils } from '../server/authentication/models/current_user_utils';
+import { FieldValue, Cast } from '../new_fields/Types';
+import { Doc } from '../new_fields/Doc';
+import { Docs } from '../client/documents/Documents';
+import { CollectionView } from '../client/views/collections/CollectionView';
+import { DocumentView } from '../client/views/nodes/DocumentView';
+import { emptyPath, emptyFunction, returnFalse, returnOne, returnEmptyString, returnTrue } from '../Utils';
+import { Transform } from '../client/util/Transform';
+import { library } from '@fortawesome/fontawesome-svg-core';
+import { faPenNib, faHighlighter, faEraser, faMousePointer } from '@fortawesome/free-solid-svg-icons';
+
+@observer
+export default class MobileInterface extends React.Component {
+ @computed private get userDoc() { return CurrentUserUtils.UserDocument; }
+ @computed private get mainContainer() { return this.userDoc ? FieldValue(Cast(this.userDoc.activeMobile, Doc)) : CurrentUserUtils.GuestMobile; }
+
+ @action
+ componentDidMount = () => {
+ library.add(...[faPenNib, faHighlighter, faEraser, faMousePointer]);
+
+ if (this.userDoc && !this.mainContainer) {
+ const doc = CurrentUserUtils.setupMobileDoc(this.userDoc);
+ this.userDoc.activeMobile = doc;
+ }
+ }
+
+ @computed
+ get mainContent() {
+ if (this.mainContainer) {
+ return <DocumentView
+ Document={this.mainContainer}
+ DataDoc={undefined}
+ LibraryPath={emptyPath}
+ addDocument={undefined}
+ addDocTab={returnFalse}
+ pinToPres={emptyFunction}
+ removeDocument={undefined}
+ onClick={undefined}
+ ScreenToLocalTransform={Transform.Identity}
+ ContentScaling={returnOne}
+ PanelWidth={() => window.screen.width}
+ PanelHeight={() => window.screen.height}
+ renderDepth={0}
+ focus={emptyFunction}
+ backgroundColor={returnEmptyString}
+ parentActive={returnTrue}
+ whenActiveChanged={emptyFunction}
+ bringToFront={emptyFunction}
+ ContainingCollectionView={undefined}
+ ContainingCollectionDoc={undefined}
+ zoomToScale={emptyFunction}
+ getScale={returnOne}>
+ </DocumentView>;
+ }
+ return "hello";
+ }
+
+ render() {
+ return (
+ <div className="mobile-container">
+ {this.mainContent}
+ </div>
+ );
+ }
+} \ No newline at end of file
diff --git a/src/new_fields/CursorField.ts b/src/new_fields/CursorField.ts
index fd86031a8..28467377b 100644
--- a/src/new_fields/CursorField.ts
+++ b/src/new_fields/CursorField.ts
@@ -2,7 +2,7 @@ import { ObjectField } from "./ObjectField";
import { observable } from "mobx";
import { Deserializable } from "../client/util/SerializationHelper";
import { serializable, createSimpleSchema, object, date } from "serializr";
-import { OnUpdate, ToScriptString, Copy } from "./FieldSymbols";
+import { OnUpdate, ToScriptString, ToString, Copy } from "./FieldSymbols";
export type CursorPosition = {
x: number,
@@ -60,4 +60,7 @@ export default class CursorField extends ObjectField {
[ToScriptString]() {
return "invalid";
}
+ [ToString]() {
+ return "invalid";
+ }
} \ No newline at end of file
diff --git a/src/new_fields/DateField.ts b/src/new_fields/DateField.ts
index abec91e06..a925148c2 100644
--- a/src/new_fields/DateField.ts
+++ b/src/new_fields/DateField.ts
@@ -1,7 +1,7 @@
import { Deserializable } from "../client/util/SerializationHelper";
import { serializable, date } from "serializr";
import { ObjectField } from "./ObjectField";
-import { Copy, ToScriptString } from "./FieldSymbols";
+import { Copy, ToScriptString, ToString } from "./FieldSymbols";
import { scriptingGlobal, Scripting } from "../client/util/Scripting";
@scriptingGlobal
@@ -19,9 +19,16 @@ export class DateField extends ObjectField {
return new DateField(this.date);
}
+ toString() {
+ return `${this.date.toISOString()}`;
+ }
+
[ToScriptString]() {
return `new DateField(new Date(${this.date.toISOString()}))`;
}
+ [ToString]() {
+ return this.date.toISOString();
+ }
}
Scripting.addGlobal(function d(...dateArgs: any[]) {
diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts
index 4531fd5e0..5f78636a9 100644
--- a/src/new_fields/Doc.ts
+++ b/src/new_fields/Doc.ts
@@ -1,26 +1,28 @@
-import { observable, ObservableMap, runInAction, action } from "mobx";
+import { observable, ObservableMap, runInAction } from "mobx";
import { alias, map, serializable } from "serializr";
import { DocServer } from "../client/DocServer";
import { DocumentType } from "../client/documents/DocumentTypes";
import { Scripting, scriptingGlobal } from "../client/util/Scripting";
import { afterDocDeserialize, autoObject, Deserializable, SerializationHelper } from "../client/util/SerializationHelper";
-import { Copy, HandleUpdate, Id, OnUpdate, Parent, Self, SelfProxy, ToScriptString, Update } from "./FieldSymbols";
+import { Copy, HandleUpdate, Id, OnUpdate, Parent, Self, SelfProxy, ToScriptString, ToString, Update } from "./FieldSymbols";
import { List } from "./List";
import { ObjectField } from "./ObjectField";
import { PrefetchProxy, ProxyField } from "./Proxy";
import { FieldId, RefField } from "./RefField";
import { listSpec } from "./Schema";
-import { ComputedField } from "./ScriptField";
-import { BoolCast, Cast, FieldValue, NumCast, PromiseValue, StrCast, ToConstructor } from "./Types";
+import { ComputedField, ScriptField } from "./ScriptField";
+import { BoolCast, Cast, FieldValue, NumCast, StrCast, ToConstructor } from "./Types";
import { deleteProperty, getField, getter, makeEditable, makeReadOnly, setter, updateFunction } from "./util";
import { intersectRect } from "../Utils";
import { UndoManager } from "../client/util/UndoManager";
+import { computedFn } from "mobx-utils";
+import { RichTextField } from "./RichTextField";
export namespace Field {
export function toKeyValueString(doc: Doc, key: string): string {
const onDelegate = Object.keys(doc).includes(key);
- let field = ComputedField.WithoutComputed(() => FieldValue(doc[key]));
+ const field = ComputedField.WithoutComputed(() => FieldValue(doc[key]));
if (Field.IsField(field)) {
return (onDelegate ? "=" : "") + (field instanceof ComputedField ? `:=${field.script.originalScript}` : Field.toScriptString(field));
}
@@ -35,6 +37,18 @@ export namespace Field {
return field[ToScriptString]();
}
}
+ export function toString(field: Field): string {
+ if (typeof field === "string") {
+ return field;
+ } else if (typeof field === "number" || typeof field === "boolean") {
+ return String(field);
+ } else if (field instanceof ObjectField) {
+ return field[ToString]();
+ } else if (field instanceof RefField) {
+ return field[ToString]();
+ }
+ return "(null)";
+ }
export function IsField(field: any): field is Field;
export function IsField(field: any, includeUndefined: true): field is Field | undefined;
export function IsField(field: any, includeUndefined: boolean = false): field is Field | undefined {
@@ -74,6 +88,7 @@ export function DocListCast(field: FieldResult): Doc[] {
export const WidthSym = Symbol("Width");
export const HeightSym = Symbol("Height");
+export const DataSym = Symbol("Data");
export const UpdatingFromServer = Symbol("UpdatingFromServer");
const CachedUpdates = Symbol("Cached updates");
@@ -149,12 +164,16 @@ export class Doc extends RefField {
private [Self] = this;
private [SelfProxy]: any;
- public [WidthSym] = () => NumCast(this[SelfProxy].width);
- public [HeightSym] = () => NumCast(this[SelfProxy].height);
+ public [WidthSym] = () => NumCast(this[SelfProxy]._width);
+ public [HeightSym] = () => NumCast(this[SelfProxy]._height);
+ public get [DataSym]() { return Cast(this[SelfProxy].resolvedDataDoc, Doc, null) || this[SelfProxy]; }
[ToScriptString]() {
return "invalid";
}
+ [ToString]() {
+ return "Doc";
+ }
private [CachedUpdates]: { [key: string]: () => void | Promise<any> } = {};
public static CurrentUserEmail: string = "";
@@ -254,9 +273,9 @@ export namespace Doc {
return GetT(doc, "isPrototype", "boolean", true);
}
export async function SetInPlace(doc: Doc, key: string, value: Field | undefined, defaultProto: boolean) {
- let hasProto = doc.proto instanceof Doc;
- let onDeleg = Object.getOwnPropertyNames(doc).indexOf(key) !== -1;
- let onProto = hasProto && Object.getOwnPropertyNames(doc.proto).indexOf(key) !== -1;
+ const hasProto = doc.proto instanceof Doc;
+ const onDeleg = Object.getOwnPropertyNames(doc).indexOf(key) !== -1;
+ const onProto = hasProto && Object.getOwnPropertyNames(doc.proto).indexOf(key) !== -1;
if (onDeleg || !hasProto || (!onProto && !defaultProto)) {
doc[key] = value;
} else doc.proto![key] = value;
@@ -289,14 +308,13 @@ export namespace Doc {
* @param fields the fields to project onto the target. Its type signature defines a mapping from some string key
* to a potentially undefined field, where each entry in this mapping is optional.
*/
- export function assign<K extends string>(doc: Doc, fields: Partial<Record<K, Opt<Field>>>) {
+ export function assign<K extends string>(doc: Doc, fields: Partial<Record<K, Opt<Field>>>, skipUndefineds: boolean = false) {
for (const key in fields) {
if (fields.hasOwnProperty(key)) {
const value = fields[key];
- // Do we want to filter out undefineds?
- // if (value !== undefined) {
- doc[key] = value;
- // }
+ if (!skipUndefineds || value !== undefined) { // Do we want to filter out undefineds?
+ doc[key] = value;
+ }
}
}
return doc;
@@ -305,10 +323,10 @@ export namespace Doc {
// compare whether documents or their protos match
export function AreProtosEqual(doc?: Doc, other?: Doc) {
if (!doc || !other) return false;
- let r = (doc === other);
- let r2 = (Doc.GetProto(doc) === other);
- let r3 = (Doc.GetProto(other) === doc);
- let r4 = (Doc.GetProto(doc) === Doc.GetProto(other) && Doc.GetProto(other) !== undefined);
+ const r = (doc === other);
+ const r2 = (Doc.GetProto(doc) === other);
+ const r3 = (Doc.GetProto(other) === doc);
+ const r4 = (Doc.GetProto(doc) === Doc.GetProto(other) && Doc.GetProto(other) !== undefined);
return r || r2 || r3 || r4;
}
@@ -317,7 +335,7 @@ export namespace Doc {
return doc && (Doc.GetT(doc, "isPrototype", "boolean", true) ? doc : (doc.proto || doc));
}
export function GetDataDoc(doc: Doc): Doc {
- let proto = Doc.GetProto(doc);
+ const proto = Doc.GetProto(doc);
return proto === doc ? proto : Doc.GetDataDoc(proto);
}
@@ -342,9 +360,9 @@ export namespace Doc {
if (listDoc[key] === undefined) {
Doc.GetProto(listDoc)[key] = new List<Doc>();
}
- let list = Cast(listDoc[key], listSpec(Doc));
+ const list = Cast(listDoc[key], listSpec(Doc));
if (list) {
- let ind = list.indexOf(doc);
+ const ind = list.indexOf(doc);
if (ind !== -1) {
list.splice(ind, 1);
return true;
@@ -356,10 +374,10 @@ export namespace Doc {
if (listDoc[key] === undefined) {
Doc.GetProto(listDoc)[key] = new List<Doc>();
}
- let list = Cast(listDoc[key], listSpec(Doc));
+ const list = Cast(listDoc[key], listSpec(Doc));
if (list) {
if (allowDuplicates !== true) {
- let pind = list.reduce((l, d, i) => d instanceof Doc && d[Id] === doc[Id] ? i : l, -1);
+ const pind = list.reduce((l, d, i) => d instanceof Doc && d[Id] === doc[Id] ? i : l, -1);
if (pind !== -1) {
list.splice(pind, 1);
}
@@ -368,7 +386,7 @@ export namespace Doc {
list.splice(0, 0, doc);
}
else {
- let ind = relativeTo ? list.indexOf(relativeTo) : -1;
+ const ind = relativeTo ? list.indexOf(relativeTo) : -1;
if (ind === -1) {
if (reversed) list.splice(0, 0, doc);
else list.push(doc);
@@ -387,9 +405,9 @@ export namespace Doc {
// Computes the bounds of the contents of a set of documents.
//
export function ComputeContentBounds(docList: Doc[]) {
- let bounds = docList.reduce((bounds, doc) => {
- var [sptX, sptY] = [NumCast(doc.x), NumCast(doc.y)];
- let [bptX, bptY] = [sptX + doc[WidthSym](), sptY + doc[HeightSym]()];
+ const bounds = docList.reduce((bounds, doc) => {
+ const [sptX, sptY] = [NumCast(doc.x), NumCast(doc.y)];
+ const [bptX, bptY] = [sptX + doc[WidthSym](), sptY + doc[HeightSym]()];
return {
x: Math.min(sptX, bounds.x), y: Math.min(sptY, bounds.y),
r: Math.max(bptX, bounds.r), b: Math.max(bptY, bounds.b)
@@ -399,89 +417,80 @@ export namespace Doc {
}
export function MakeTitled(title: string) {
- let doc = new Doc();
+ const doc = new Doc();
doc.title = title;
return doc;
}
export function MakeAlias(doc: Doc) {
- let alias = !GetT(doc, "isPrototype", "boolean", true) ? Doc.MakeCopy(doc) : Doc.MakeDelegate(doc);
- if (alias.layout instanceof Doc) {
- alias.layout = Doc.MakeAlias(alias.layout);
+ const alias = !GetT(doc, "isPrototype", "boolean", true) ? Doc.MakeCopy(doc) : Doc.MakeDelegate(doc);
+ const layout = Doc.Layout(alias);
+ if (layout instanceof Doc && layout !== alias) {
+ Doc.SetLayout(alias, Doc.MakeAlias(layout));
}
- let aliasNumber = Doc.GetProto(doc).aliasNumber = NumCast(Doc.GetProto(doc).aliasNumber) + 1;
- alias.title = ComputedField.MakeFunction(`renameAlias(this, ${aliasNumber})`);
+ alias.title = ComputedField.MakeFunction(`renameAlias(this, ${Doc.GetProto(doc).aliasNumber = NumCast(Doc.GetProto(doc).aliasNumber) + 1})`);
return alias;
}
//
// Determines whether the combination of the layoutDoc and dataDoc represents
- // a template relationship. If so, the layoutDoc will be expanded into a new
- // document that inherits the properties of the original layout while allowing
- // for individual layout properties to be overridden in the expanded layout.
+ // a template relationship : there is a dataDoc and it doesn't match the layoutDoc an
+ // the lyouatDoc's layout is layout string (not a document)
//
export function WillExpandTemplateLayout(layoutDoc: Doc, dataDoc?: Doc) {
- return BoolCast(layoutDoc.isTemplateField) && dataDoc && layoutDoc !== dataDoc && !(layoutDoc[StrCast(layoutDoc.layoutKey, "layout")] instanceof Doc);
+ return layoutDoc.isTemplateForField && dataDoc && layoutDoc !== dataDoc && !(Doc.LayoutField(layoutDoc) instanceof Doc);
}
//
- // Returns an expanded template layout for a target data document.
- // First it checks if an expanded layout already exists -- if so it will be stored on the dataDoc
- // using the template layout doc's id as the field key.
- // If it doesn't find the expanded layout, then it makes a delegate of the template layout and
- // saves it on the data doc indexed by the template layout's id
+ // Returns an expanded template layout for a target data document if there is a template relationship
+ // between the two. If so, the layoutDoc is expanded into a new document that inherits the properties
+ // of the original layout while allowing for individual layout properties to be overridden in the expanded layout.
//
export function expandTemplateLayout(templateLayoutDoc: Doc, dataDoc?: Doc) {
if (!WillExpandTemplateLayout(templateLayoutDoc, dataDoc) || !dataDoc) return templateLayoutDoc;
- // if we have a data doc that doesn't match the layout, then we're rendering a template.
- // ... which means we change the layout to be an expanded view of the template layout.
- // This allows the view override the template's properties and be referenceable as its own document.
- let expandedLayoutFieldKey = "Layout[" + templateLayoutDoc[Id] + "]";
- let expandedTemplateLayout = dataDoc[expandedLayoutFieldKey];
- if (expandedTemplateLayout instanceof Doc) {
- return expandedTemplateLayout;
- }
+ const templateField = StrCast(templateLayoutDoc.isTemplateForField); // the field that the template renders
+ // First it checks if an expanded layout already exists -- if so it will be stored on the dataDoc
+ // using the template layout doc's id as the field key.
+ // If it doesn't find the expanded layout, then it makes a delegate of the template layout and
+ // saves it on the data doc indexed by the template layout's id.
+ //
+ const expandedLayoutFieldKey = templateField + "-layout[" + templateLayoutDoc[Id] + "]";
+ const expandedTemplateLayout = dataDoc?.[expandedLayoutFieldKey];
if (expandedTemplateLayout === undefined) {
- setTimeout(() => dataDoc[expandedLayoutFieldKey] === undefined &&
- (dataDoc[expandedLayoutFieldKey] = Doc.MakeDelegate(templateLayoutDoc, undefined, "[" + templateLayoutDoc.title + "]")), 0);
+ setTimeout(() => {
+ if (!dataDoc[expandedLayoutFieldKey]) {
+ const newLayoutDoc = Doc.MakeDelegate(templateLayoutDoc, undefined, "[" + templateLayoutDoc.title + "]");
+ dataDoc[expandedLayoutFieldKey] = newLayoutDoc;
+ newLayoutDoc.resolvedDataDoc = dataDoc;
+ if (dataDoc[templateField] === undefined && templateLayoutDoc[templateField] instanceof List && Cast(templateLayoutDoc[templateField], listSpec(Doc), []).length) {
+ dataDoc[templateField] = ComputedField.MakeFunction(`ObjectField.MakeCopy(templateLayoutDoc["${templateField}"] as List)`, { templateLayoutDoc: Doc.name }, { templateLayoutDoc: templateLayoutDoc });
+ }
+ }
+ }, 0);
}
- return undefined; // use the templateLayout when it's not a template or the expandedTemplate is pending.
+ return expandedTemplateLayout instanceof Doc ? expandedTemplateLayout : undefined; // layout is undefined if the expandedTemplate is pending.
}
- export function GetLayoutDataDocPair(doc: Doc, dataDoc: Doc | undefined, fieldKey: string, childDocLayout: Doc) {
- let layoutDoc: Doc | undefined = childDocLayout;
- let resolvedDataDoc = !doc.isTemplateField && dataDoc !== doc && dataDoc ? Doc.GetDataDoc(dataDoc) : undefined;
- if (resolvedDataDoc && Doc.WillExpandTemplateLayout(childDocLayout, resolvedDataDoc)) {
- let extensionDoc = fieldExtensionDoc(resolvedDataDoc, StrCast(childDocLayout.templateField, StrCast(childDocLayout.title)));
- layoutDoc = Doc.expandTemplateLayout(childDocLayout, extensionDoc !== resolvedDataDoc ? extensionDoc : undefined);
- } else layoutDoc = childDocLayout;
- return { layout: layoutDoc, data: resolvedDataDoc };
+ // if the childDoc is a template for a field, then this will return the expanded layout with its data doc.
+ // otherwise, it just returns the childDoc
+ export function GetLayoutDataDocPair(containerDoc: Doc, containerDataDoc: Opt<Doc>, childDoc: Doc) {
+ const resolvedDataDoc = containerDataDoc === containerDoc || !containerDataDoc ? undefined : Doc.GetDataDoc(containerDataDoc);
+ return { layout: Doc.expandTemplateLayout(childDoc, resolvedDataDoc), data: resolvedDataDoc };
}
-
- //
- // Resolves a reference to a field by returning 'doc' if no field extension is specified,
- // otherwise, it returns the extension document stored in doc.<fieldKey>_ext.
- // This mechanism allows any fields to be extended with an extension document that can
- // be used to capture field-specific metadata. For example, an image field can be extended
- // to store annotations, ink, and other data.
- //
- export function fieldExtensionDoc(doc: Doc, fieldKey: string) {
- let extension = doc[fieldKey + "_ext"] as Doc;
- (extension === undefined) && setTimeout(() => CreateDocumentExtensionForField(doc, fieldKey), 0);
- return extension ? extension : undefined;
- }
-
export function CreateDocumentExtensionForField(doc: Doc, fieldKey: string) {
- let docExtensionForField = new Doc(doc[Id] + fieldKey, true);
- docExtensionForField.title = fieldKey + ".ext"; // courtesy field--- shouldn't be needed except maybe for debugging
- docExtensionForField.extendsDoc = doc; // this is used by search to map field matches on the extension doc back to the document it extends.
- docExtensionForField.extendsField = fieldKey; // this can be used by search to map matches on the extension doc back to the field that was extended.
- docExtensionForField.type = DocumentType.EXTENSION;
let proto: Doc | undefined = doc;
while (proto && !Doc.IsPrototype(proto) && proto.proto) {
proto = proto.proto;
}
- (proto ? proto : doc)[fieldKey + "_ext"] = new PrefetchProxy(docExtensionForField);
+ let docExtensionForField = ((proto || doc)[fieldKey + "_ext"] as Doc);
+ if (!docExtensionForField) {
+ docExtensionForField = new Doc(doc[Id] + fieldKey, true);
+ docExtensionForField.title = fieldKey + ".ext"; // courtesy field--- shouldn't be needed except maybe for debugging
+ docExtensionForField.extendsDoc = doc; // this is used by search to map field matches on the extension doc back to the document it extends.
+ docExtensionForField.extendsField = fieldKey; // this can be used by search to map matches on the extension doc back to the field that was extended.
+ docExtensionForField.type = DocumentType.EXTENSION;
+ (proto || doc)[fieldKey + "_ext"] = new PrefetchProxy(docExtensionForField);
+ }
return docExtensionForField;
}
@@ -510,8 +519,10 @@ export namespace Doc {
export function MakeCopy(doc: Doc, copyProto: boolean = false, copyProtoId?: string): Doc {
const copy = new Doc(copyProtoId, true);
+ const exclude = Cast(doc.excludeFields, listSpec("string"), []);
Object.keys(doc).forEach(key => {
- let cfield = ComputedField.WithoutComputed(() => FieldValue(doc[key]));
+ if (exclude.includes(key)) return;
+ const cfield = ComputedField.WithoutComputed(() => FieldValue(doc[key]));
const field = ProxyField.WithoutProxy(() => doc[key]);
if (key === "proto" && copyProto) {
if (doc[key] instanceof Doc) {
@@ -550,7 +561,7 @@ export namespace Doc {
let _applyCount: number = 0;
export function ApplyTemplate(templateDoc: Doc) {
if (templateDoc) {
- let applied = ApplyTemplateTo(templateDoc, Doc.MakeDelegate(new Doc()), "layoutCustom", templateDoc.title + "(..." + _applyCount++ + ")");
+ const applied = ApplyTemplateTo(templateDoc, Doc.MakeDelegate(new Doc()), "layoutCustom", templateDoc.title + "(..." + _applyCount++ + ")");
applied && (Doc.GetProto(applied).layout = applied.layout);
return applied;
}
@@ -559,71 +570,78 @@ export namespace Doc {
export function ApplyTemplateTo(templateDoc: Doc, target: Doc, targetKey: string, titleTarget: string | undefined = undefined) {
if (!templateDoc) {
target.layout = undefined;
- target.nativeWidth = undefined;
- target.nativeHeight = undefined;
+ target._nativeWidth = undefined;
+ target._nativeHeight = undefined;
target.onClick = undefined;
target.type = undefined;
return;
}
- let layoutCustomLayout = Doc.MakeDelegate(templateDoc);
+ if ((target[targetKey] as Doc)?.proto !== templateDoc) {
+ const layoutCustomLayout = Doc.MakeDelegate(templateDoc);
- titleTarget && (Doc.GetProto(target).title = titleTarget);
- Doc.GetProto(target).type = DocumentType.TEMPLATE;
- target.onClick = templateDoc.onClick instanceof ObjectField && templateDoc.onClick[Copy]();
+ titleTarget && (Doc.GetProto(target).title = titleTarget);
+ Doc.GetProto(target).type = DocumentType.TEMPLATE;
+ target.onClick = templateDoc.onClick instanceof ObjectField && templateDoc.onClick[Copy]();
- Doc.GetProto(target)[targetKey] = layoutCustomLayout;
+ Doc.GetProto(target)[targetKey] = new PrefetchProxy(layoutCustomLayout);
+ }
target.layoutKey = targetKey;
return target;
}
- export function MakeMetadataFieldTemplate(fieldTemplate: Doc, templateDataDoc: Doc, suppressTitle: boolean = false): boolean {
- // move data doc fields to layout doc as needed (nativeWidth/nativeHeight, data, ??)
- let metadataFieldName = StrCast(fieldTemplate.title).replace(/^-/, "");
- let fieldLayoutDoc = fieldTemplate;
- if (fieldTemplate.layout instanceof Doc) {
- fieldLayoutDoc = Doc.MakeDelegate(fieldTemplate.layout);
- }
-
- fieldTemplate.templateField = metadataFieldName;
- fieldTemplate.title = metadataFieldName;
- fieldTemplate.isTemplateField = true;
- /* move certain layout properties from the original data doc to the template layout to avoid
- inheriting them from the template's data doc which may also define these fields for its own use.
- */
- fieldTemplate.ignoreAspect = fieldTemplate.ignoreAspect === undefined ? undefined : BoolCast(fieldTemplate.ignoreAspect);
- fieldTemplate.singleColumn = BoolCast(fieldTemplate.singleColumn);
- fieldTemplate.nativeWidth = Cast(fieldTemplate.nativeWidth, "number");
- fieldTemplate.nativeHeight = Cast(fieldTemplate.nativeHeight, "number");
- fieldTemplate.type = fieldTemplate.type;
- fieldTemplate.panX = 0;
- fieldTemplate.panY = 0;
- fieldTemplate.scale = 1;
- fieldTemplate.showTitle = suppressTitle ? undefined : "title";
- let data = fieldTemplate.data;
- setTimeout(action(() => {
- !templateDataDoc[metadataFieldName] && data instanceof ObjectField && (Doc.GetProto(templateDataDoc)[metadataFieldName] = ObjectField.MakeCopy(data));
- let layout = StrCast(fieldLayoutDoc.layout).replace(/fieldKey={"[^"]*"}/, `fieldKey={"${metadataFieldName}"}`);
- let layoutDelegate = Doc.Layout(fieldTemplate);
- layoutDelegate.layout = layout;
- fieldTemplate.layout = layoutDelegate !== fieldTemplate ? layoutDelegate : layout;
- if (fieldTemplate.backgroundColor !== templateDataDoc.defaultBackgroundColor) fieldTemplate.defaultBackgroundColor = fieldTemplate.backgroundColor;
- fieldTemplate.proto = templateDataDoc;
- }), 0);
+ //
+ // This function converts a generic field layout display into a field layout that displays a specific
+ // metadata field indicated by the title of the template field (not the default field that it was rendering)
+ //
+ export function MakeMetadataFieldTemplate(templateField: Doc, templateDoc: Opt<Doc>): boolean {
+
+ // find the metadata field key that this template field doc will display (indicated by its title)
+ const metadataFieldKey = StrCast(templateField.title).replace(/^-/, "");
+
+ // update the original template to mark it as a template
+ templateField.isTemplateForField = metadataFieldKey;
+ templateField.title = metadataFieldKey;
+
+ // move any data that the template field had been rendering over to the template doc so that things will still be rendered
+ // when the template field is adjusted to point to the new metadatafield key.
+ // note 1: if the template field contained a list of documents, each of those documents will be converted to templates as well.
+ // note 2: this will not overwrite any field that already exists on the template doc at the field key
+ if (!templateDoc?.[metadataFieldKey] && templateField.data instanceof ObjectField) {
+ Cast(templateField.data, listSpec(Doc), [])?.map(d => d instanceof Doc && MakeMetadataFieldTemplate(d, templateDoc));
+ (Doc.GetProto(templateField)[metadataFieldKey] = ObjectField.MakeCopy(templateField.data));
+ }
+ if (templateField.data instanceof RichTextField && templateField.data.Text) {
+ templateField._textTemplate = ComputedField.MakeFunction(`copyField(this.${metadataFieldKey})`, { this: Doc.name });
+ }
+
+ // get the layout string that the template uses to specify its layout
+ const templateFieldLayoutString = StrCast(Doc.LayoutField(Doc.Layout(templateField)));
+
+ // change itto render the target metadata field instead of what it was rendering before and assign it to the template field layout document.
+ Doc.Layout(templateField).layout = templateFieldLayoutString.replace(/fieldKey={'[^']*'}/, `fieldKey={'${metadataFieldKey}'}`);
+
+ // assign the template field doc a delegate of any extension document that was previously used to render the template field (since extension doc's carry rendering informatino)
+ Doc.Layout(templateField)[metadataFieldKey + "_ext"] = Doc.MakeDelegate(templateField[templateFieldLayoutString?.split("'")[1] + "_ext"] as Doc);
+
+ if (templateField.backgroundColor !== templateDoc?.defaultBackgroundColor) {
+ templateField.defaultBackgroundColor = templateField.backgroundColor;
+ }
+
return true;
}
export function overlapping(doc1: Doc, doc2: Doc, clusterDistance: number) {
- let doc2Layout = Doc.Layout(doc2);
- let doc1Layout = Doc.Layout(doc1);
- var x2 = NumCast(doc2.x) - clusterDistance;
- var y2 = NumCast(doc2.y) - clusterDistance;
- var w2 = NumCast(doc2Layout.width) + clusterDistance;
- var h2 = NumCast(doc2Layout.height) + clusterDistance;
- var x = NumCast(doc1.x) - clusterDistance;
- var y = NumCast(doc1.y) - clusterDistance;
- var w = NumCast(doc1Layout.width) + clusterDistance;
- var h = NumCast(doc1Layout.height) + clusterDistance;
+ const doc2Layout = Doc.Layout(doc2);
+ const doc1Layout = Doc.Layout(doc1);
+ const x2 = NumCast(doc2.x) - clusterDistance;
+ const y2 = NumCast(doc2.y) - clusterDistance;
+ const w2 = NumCast(doc2Layout._width) + clusterDistance;
+ const h2 = NumCast(doc2Layout._height) + clusterDistance;
+ const x = NumCast(doc1.x) - clusterDistance;
+ const y = NumCast(doc1.y) - clusterDistance;
+ const w = NumCast(doc1Layout._width) + clusterDistance;
+ const h = NumCast(doc1Layout._height) + clusterDistance;
return doc1.z === doc2.z && intersectRect({ left: x, top: y, width: w, height: h }, { left: x2, top: y2, width: w2, height: h2 });
}
@@ -637,27 +655,39 @@ export namespace Doc {
}
export class DocBrush {
- @observable BrushedDoc: ObservableMap<Doc, boolean> = new ObservableMap();
+ BrushedDoc: ObservableMap<Doc, boolean> = new ObservableMap();
}
const brushManager = new DocBrush();
export class DocData {
@observable _user_doc: Doc = undefined!;
- @observable BrushedDoc: ObservableMap<Doc, boolean> = new ObservableMap();
+ @observable _searchQuery: string = "";
}
// the document containing the view layout information - will be the Document itself unless the Document has
// a layout field. In that case, all layout information comes from there unless overriden by Document
- export function Layout(doc: Doc) { return Doc.LayoutField(doc) instanceof Doc ? doc[StrCast(doc.layoutKey, "layout")] as Doc : doc; }
+ export function Layout(doc: Doc) { return Doc.LayoutField(doc) instanceof Doc ? Doc.LayoutField(doc) as Doc : doc; }
+ export function SetLayout(doc: Doc, layout: Doc | string) { doc[StrCast(doc.layoutKey, "layout")] = layout; }
export function LayoutField(doc: Doc) { return doc[StrCast(doc.layoutKey, "layout")]; }
+ export function LayoutFieldKey(doc: Doc) { return StrCast(Doc.Layout(doc).layout).split("'")[1]; }
const manager = new DocData();
+ export function SearchQuery(): string { return manager._searchQuery; }
+ export function SetSearchQuery(query: string) { runInAction(() => manager._searchQuery = query); }
export function UserDoc(): Doc { return manager._user_doc; }
export function SetUserDoc(doc: Doc) { manager._user_doc = doc; }
export function IsBrushed(doc: Doc) {
- return brushManager.BrushedDoc.has(doc) || brushManager.BrushedDoc.has(Doc.GetDataDoc(doc));
+ return computedFn(function IsBrushed(doc: Doc) {
+ return brushManager.BrushedDoc.has(doc) || brushManager.BrushedDoc.has(Doc.GetDataDoc(doc));
+ })(doc);
+ }
+ // don't bother memoizing (caching) the result if called from a non-reactive context. (plus this avoids a warning message)
+ export function IsBrushedDegreeUnmemoized(doc: Doc) {
+ return brushManager.BrushedDoc.has(doc) ? 2 : brushManager.BrushedDoc.has(Doc.GetDataDoc(doc)) ? 1 : 0;
}
export function IsBrushedDegree(doc: Doc) {
- return brushManager.BrushedDoc.has(Doc.GetDataDoc(doc)) ? 2 : brushManager.BrushedDoc.has(doc) ? 1 : 0;
+ return computedFn(function IsBrushDegree(doc: Doc) {
+ return brushManager.BrushedDoc.has(doc) ? 2 : brushManager.BrushedDoc.has(Doc.GetDataDoc(doc)) ? 1 : 0;
+ })(doc);
}
export function BrushDoc(doc: Doc) {
brushManager.BrushedDoc.set(doc, true);
@@ -671,19 +701,21 @@ export namespace Doc {
}
- export function LinkEndpoint(linkDoc: Doc, anchorDoc: Doc) { return Doc.AreProtosEqual(anchorDoc, Cast(linkDoc.anchor1, Doc) as Doc) ? "layoutKey1" : "layoutKey2"; }
+ export function LinkOtherAnchor(linkDoc: Doc, anchorDoc: Doc) { return Doc.AreProtosEqual(anchorDoc, Cast(linkDoc.anchor1, Doc) as Doc) ? Cast(linkDoc.anchor2, Doc) as Doc : Cast(linkDoc.anchor1, Doc) as Doc; }
+ export function LinkEndpoint(linkDoc: Doc, anchorDoc: Doc) { return Doc.AreProtosEqual(anchorDoc, Cast(linkDoc.anchor1, Doc) as Doc) ? "layout_key1" : "layout_key2"; }
+
export function linkFollowUnhighlight() {
Doc.UnhighlightAll();
document.removeEventListener("pointerdown", linkFollowUnhighlight);
}
let dt = 0;
- export function linkFollowHighlight(destDoc: Doc) {
+ export function linkFollowHighlight(destDoc: Doc, dataAndDisplayDocs = true) {
linkFollowUnhighlight();
- Doc.HighlightDoc(destDoc);
+ Doc.HighlightDoc(destDoc, dataAndDisplayDocs);
document.removeEventListener("pointerdown", linkFollowUnhighlight);
document.addEventListener("pointerdown", linkFollowUnhighlight);
- let x = dt = Date.now();
+ const x = dt = Date.now();
window.setTimeout(() => dt === x && linkFollowUnhighlight(), 5000);
}
@@ -692,13 +724,12 @@ export namespace Doc {
}
const highlightManager = new HighlightBrush();
export function IsHighlighted(doc: Doc) {
- let IsHighlighted = highlightManager.HighlightedDoc.get(doc) || highlightManager.HighlightedDoc.get(Doc.GetDataDoc(doc));
- return IsHighlighted;
+ return highlightManager.HighlightedDoc.get(doc) || highlightManager.HighlightedDoc.get(Doc.GetDataDoc(doc));
}
- export function HighlightDoc(doc: Doc) {
+ export function HighlightDoc(doc: Doc, dataAndDisplayDocs = true) {
runInAction(() => {
highlightManager.HighlightedDoc.set(doc, true);
- highlightManager.HighlightedDoc.set(Doc.GetDataDoc(doc), true);
+ dataAndDisplayDocs && highlightManager.HighlightedDoc.set(Doc.GetDataDoc(doc), true);
});
}
export function UnHighlightDoc(doc: Doc) {
@@ -708,10 +739,10 @@ export namespace Doc {
});
}
export function UnhighlightAll() {
- let mapEntries = highlightManager.HighlightedDoc.keys();
+ const mapEntries = highlightManager.HighlightedDoc.keys();
let docEntry: IteratorResult<Doc>;
while (!(docEntry = mapEntries.next()).done) {
- let targetDoc = docEntry.value;
+ const targetDoc = docEntry.value;
targetDoc && Doc.UnHighlightDoc(targetDoc);
}
@@ -725,12 +756,27 @@ export namespace Doc {
source.dragFactory instanceof Doc && source.dragFactory.isTemplateDoc ? source.dragFactory :
source && source.layout instanceof Doc && source.layout.isTemplateDoc ? source.layout : undefined;
}
-}
+ export function setChildDetailedLayout(target: Doc, source?: Doc) {
+ target.childDetailed = source && source.isTemplateDoc ? source : source &&
+ source.dragFactory instanceof Doc && source.dragFactory.isTemplateDoc ? source.dragFactory :
+ source && source.layout instanceof Doc && source.layout.isTemplateDoc ? source.layout : undefined;
+ }
+ export function matchFieldValue(doc: Doc, key: string, value: any): boolean {
+ const fieldVal = doc[key] ? doc[key] : doc[key + "_ext"];
+ if (Cast(fieldVal, listSpec("string"), []).length) {
+ const vals = Cast(fieldVal, listSpec("string"), []);
+ return vals.some(v => v === value);
+ }
+ const fieldStr = Field.toString(fieldVal as Field);
+ return fieldStr === value;
+ }
+}
Scripting.addGlobal(function renameAlias(doc: any, n: any) { return StrCast(Doc.GetProto(doc).title).replace(/\([0-9]*\)/, "") + `(${n})`; });
Scripting.addGlobal(function getProto(doc: any) { return Doc.GetProto(doc); });
Scripting.addGlobal(function setChildLayout(target: any, source: any) { Doc.setChildLayout(target, source); });
+Scripting.addGlobal(function setChildDetailedLayout(target: any, source: any) { Doc.setChildDetailedLayout(target, source); });
Scripting.addGlobal(function getAlias(doc: any) { return Doc.MakeAlias(doc); });
Scripting.addGlobal(function getCopy(doc: any, copyProto: any) { return doc.isTemplateDoc ? Doc.ApplyTemplate(doc) : Doc.MakeCopy(doc, copyProto); });
Scripting.addGlobal(function copyField(field: any) { return ObjectField.MakeCopy(field); });
@@ -738,4 +784,24 @@ Scripting.addGlobal(function aliasDocs(field: any) { return new List<Doc>(field.
Scripting.addGlobal(function docList(field: any) { return DocListCast(field); });
Scripting.addGlobal(function sameDocs(doc1: any, doc2: any) { return Doc.AreProtosEqual(doc1, doc2); });
Scripting.addGlobal(function undo() { return UndoManager.Undo(); });
-Scripting.addGlobal(function redo() { return UndoManager.Redo(); }); \ No newline at end of file
+Scripting.addGlobal(function redo() { return UndoManager.Redo(); });
+Scripting.addGlobal(function selectDoc(doc: any) { Doc.UserDoc().SelectedDocs = new List([doc]); });
+Scripting.addGlobal(function selectedDocs(container: Doc, excludeCollections: boolean, prevValue: any) {
+ const docs = DocListCast(Doc.UserDoc().SelectedDocs).filter(d => !Doc.AreProtosEqual(d, container) && !d.annotationOn && d.type !== DocumentType.DOCUMENT && d.type !== DocumentType.KVP && (!excludeCollections || !Cast(d.data, listSpec(Doc), null)));
+ return docs.length ? new List(docs) : prevValue;
+});
+Scripting.addGlobal(function setDocFilter(container: Doc, key: string, value: any, modifiers?: string) {
+ const docFilters = Cast(container._docFilter, listSpec("string"), []);
+ for (let i = 0; i < docFilters.length; i += 3) {
+ if (docFilters[i] === key && docFilters[i + 1] === value) {
+ docFilters.splice(i, 3);
+ break;
+ }
+ }
+ if (modifiers !== undefined) {
+ docFilters.push(key);
+ docFilters.push(value);
+ docFilters.push(modifiers);
+ container._docFilter = new List<string>(docFilters);
+ }
+}); \ No newline at end of file
diff --git a/src/new_fields/FieldSymbols.ts b/src/new_fields/FieldSymbols.ts
index 8e5161dac..8d040f493 100644
--- a/src/new_fields/FieldSymbols.ts
+++ b/src/new_fields/FieldSymbols.ts
@@ -8,4 +8,5 @@ export const OnUpdate = Symbol("OnUpdate");
export const Parent = Symbol("Parent");
export const Copy = Symbol("Copy");
export const ToScriptString = Symbol("ToScriptString");
-export const ToPlainText = Symbol("ToPlainText"); \ No newline at end of file
+export const ToPlainText = Symbol("ToPlainText");
+export const ToString = Symbol("ToString");
diff --git a/src/new_fields/HtmlField.ts b/src/new_fields/HtmlField.ts
index f952acff9..6e8bba977 100644
--- a/src/new_fields/HtmlField.ts
+++ b/src/new_fields/HtmlField.ts
@@ -1,7 +1,7 @@
import { Deserializable } from "../client/util/SerializationHelper";
import { serializable, primitive } from "serializr";
import { ObjectField } from "./ObjectField";
-import { Copy, ToScriptString } from "./FieldSymbols";
+import { Copy, ToScriptString, ToString} from "./FieldSymbols";
@Deserializable("html")
export class HtmlField extends ObjectField {
@@ -20,4 +20,7 @@ export class HtmlField extends ObjectField {
[ToScriptString]() {
return "invalid";
}
+ [ToString]() {
+ return this.html;
+ }
}
diff --git a/src/new_fields/IconField.ts b/src/new_fields/IconField.ts
index 62b2cd254..76c4ddf1b 100644
--- a/src/new_fields/IconField.ts
+++ b/src/new_fields/IconField.ts
@@ -1,7 +1,7 @@
import { Deserializable } from "../client/util/SerializationHelper";
import { serializable, primitive } from "serializr";
import { ObjectField } from "./ObjectField";
-import { Copy, ToScriptString } from "./FieldSymbols";
+import { Copy, ToScriptString, ToString } from "./FieldSymbols";
@Deserializable("icon")
export class IconField extends ObjectField {
@@ -20,4 +20,7 @@ export class IconField extends ObjectField {
[ToScriptString]() {
return "invalid";
}
+ [ToString]() {
+ return "ICONfield";
+ }
}
diff --git a/src/new_fields/InkField.ts b/src/new_fields/InkField.ts
index d94834e91..4a44b4f55 100644
--- a/src/new_fields/InkField.ts
+++ b/src/new_fields/InkField.ts
@@ -1,30 +1,26 @@
import { Deserializable } from "../client/util/SerializationHelper";
import { serializable, custom, createSimpleSchema, list, object, map } from "serializr";
import { ObjectField } from "./ObjectField";
-import { Copy, ToScriptString } from "./FieldSymbols";
-import { DeepCopy } from "../Utils";
+import { Copy, ToScriptString, ToString } from "./FieldSymbols";
export enum InkTool {
None,
Pen,
Highlighter,
Eraser,
- Scrubber
+ Scrubber,
+ Stamp
}
-export interface StrokeData {
- pathData: Array<{ x: number, y: number }>;
- color: string;
- width: string;
- tool: InkTool;
- displayTimecode: number;
- creationTime: number;
+export interface PointData {
+ X: number;
+ Y: number;
}
-export type InkData = Map<string, StrokeData>;
+export type InkData = Array<PointData>;
const pointSchema = createSimpleSchema({
- x: true, y: true
+ X: true, Y: true
});
const strokeDataSchema = createSimpleSchema({
@@ -34,19 +30,22 @@ const strokeDataSchema = createSimpleSchema({
@Deserializable("ink")
export class InkField extends ObjectField {
- @serializable(map(object(strokeDataSchema)))
+ @serializable(list(object(strokeDataSchema)))
readonly inkData: InkData;
- constructor(data?: InkData) {
+ constructor(data: InkData) {
super();
- this.inkData = data || new Map;
+ this.inkData = data;
}
[Copy]() {
- return new InkField(DeepCopy(this.inkData));
+ return new InkField(this.inkData);
}
[ToScriptString]() {
return "invalid";
}
+ [ToString]() {
+ return "InkField";
+ }
}
diff --git a/src/new_fields/List.ts b/src/new_fields/List.ts
index 0c7b77fa5..a43f11e82 100644
--- a/src/new_fields/List.ts
+++ b/src/new_fields/List.ts
@@ -6,7 +6,7 @@ import { observable, action } from "mobx";
import { ObjectField } from "./ObjectField";
import { RefField } from "./RefField";
import { ProxyField } from "./Proxy";
-import { Self, Update, Parent, OnUpdate, SelfProxy, ToScriptString, Copy } from "./FieldSymbols";
+import { Self, Update, Parent, OnUpdate, SelfProxy, ToScriptString, ToString, Copy } from "./FieldSymbols";
import { Scripting } from "../client/util/Scripting";
const listHandlers: any = {
@@ -270,8 +270,8 @@ class ListImpl<T extends Field> extends ObjectField {
}
[Copy]() {
- let copiedData = this[Self].__fields.map(f => f instanceof ObjectField ? f[Copy]() : f);
- let deepCopy = new ListImpl<T>(copiedData as any);
+ const copiedData = this[Self].__fields.map(f => f instanceof ObjectField ? f[Copy]() : f);
+ const deepCopy = new ListImpl<T>(copiedData as any);
return deepCopy;
}
@@ -290,8 +290,10 @@ class ListImpl<T extends Field> extends ObjectField {
private [SelfProxy]: any;
[ToScriptString]() {
- return "invalid";
- // return `new List([${(this as any).map((field => Field.toScriptString(field))}])`;
+ return `new List([${(this as any).map((field: any) => Field.toScriptString(field))}])`;
+ }
+ [ToString]() {
+ return "List";
}
}
export type List<T extends Field> = ListImpl<T> & (T | (T extends RefField ? Promise<T> : never))[];
diff --git a/src/new_fields/ObjectField.ts b/src/new_fields/ObjectField.ts
index 65ada91c0..566104b40 100644
--- a/src/new_fields/ObjectField.ts
+++ b/src/new_fields/ObjectField.ts
@@ -1,6 +1,6 @@
import { Doc } from "./Doc";
import { RefField } from "./RefField";
-import { OnUpdate, Parent, Copy, ToScriptString } from "./FieldSymbols";
+import { OnUpdate, Parent, Copy, ToScriptString, ToString } from "./FieldSymbols";
import { Scripting } from "../client/util/Scripting";
export abstract class ObjectField {
@@ -9,11 +9,12 @@ export abstract class ObjectField {
abstract [Copy](): ObjectField;
abstract [ToScriptString](): string;
+ abstract [ToString](): string;
}
export namespace ObjectField {
export function MakeCopy<T extends ObjectField>(field: T) {
- return field[Copy]();
+ return field?.[Copy]();
}
}
diff --git a/src/new_fields/Proxy.ts b/src/new_fields/Proxy.ts
index c6292e37c..d50c0f14e 100644
--- a/src/new_fields/Proxy.ts
+++ b/src/new_fields/Proxy.ts
@@ -5,7 +5,7 @@ import { observable, action } from "mobx";
import { DocServer } from "../client/DocServer";
import { RefField } from "./RefField";
import { ObjectField } from "./ObjectField";
-import { Id, Copy, ToScriptString } from "./FieldSymbols";
+import { Id, Copy, ToScriptString, ToString } from "./FieldSymbols";
import { scriptingGlobal } from "../client/util/Scripting";
import { Plugins } from "./util";
@@ -32,6 +32,9 @@ export class ProxyField<T extends RefField> extends ObjectField {
[ToScriptString]() {
return "invalid";
}
+ [ToString]() {
+ return "ProxyField";
+ }
@serializable(primitive())
readonly fieldId: string = "";
diff --git a/src/new_fields/RefField.ts b/src/new_fields/RefField.ts
index f7bea8c94..b6ef69750 100644
--- a/src/new_fields/RefField.ts
+++ b/src/new_fields/RefField.ts
@@ -1,6 +1,6 @@
import { serializable, primitive, alias } from "serializr";
import { Utils } from "../Utils";
-import { Id, HandleUpdate, ToScriptString } from "./FieldSymbols";
+import { Id, HandleUpdate, ToScriptString, ToString } from "./FieldSymbols";
import { afterDocDeserialize } from "../client/util/SerializationHelper";
export type FieldId = string;
@@ -17,4 +17,5 @@ export abstract class RefField {
protected [HandleUpdate]?(diff: any): void | Promise<void>;
abstract [ToScriptString](): string;
+ abstract [ToString](): string;
}
diff --git a/src/new_fields/RichTextField.ts b/src/new_fields/RichTextField.ts
index aa4908d51..7b6ce9b98 100644
--- a/src/new_fields/RichTextField.ts
+++ b/src/new_fields/RichTextField.ts
@@ -1,7 +1,7 @@
import { ObjectField } from "./ObjectField";
import { serializable } from "serializr";
import { Deserializable } from "../client/util/SerializationHelper";
-import { Copy, ToScriptString, ToPlainText } from "./FieldSymbols";
+import { Copy, ToScriptString, ToPlainText, ToString } from "./FieldSymbols";
import { scriptingGlobal } from "../client/util/Scripting";
const delimiter = "\n";
@@ -29,6 +29,9 @@ export class RichTextField extends ObjectField {
[ToScriptString]() {
return `new RichTextField("${this.Data}", "${this.Text}")`;
}
+ [ToString]() {
+ return this.Text;
+ }
[ToPlainText]() {
// Because we're working with plain text, just concatenate all paragraphs
diff --git a/src/new_fields/RichTextUtils.ts b/src/new_fields/RichTextUtils.ts
index c2cca859c..c50f8cc48 100644
--- a/src/new_fields/RichTextUtils.ts
+++ b/src/new_fields/RichTextUtils.ts
@@ -8,7 +8,6 @@ import { Opt, Doc } from "./Doc";
import Color = require('color');
import { sinkListItem } from "prosemirror-schema-list";
import { Utils } from "../Utils";
-import { RouteStore } from "../server/RouteStore";
import { Docs } from "../client/documents/Documents";
import { schema } from "../client/util/RichTextSchema";
import { GooglePhotos } from "../client/apis/google_docs/GooglePhotosClientUtils";
@@ -17,7 +16,7 @@ import { Cast, StrCast } from "./Types";
import { Id } from "./FieldSymbols";
import { DocumentView } from "../client/views/nodes/DocumentView";
import { AssertionError } from "assert";
-import { Identified } from "../client/Network";
+import { Networking } from "../client/Network";
export namespace RichTextUtils {
@@ -26,8 +25,8 @@ export namespace RichTextUtils {
export const Initialize = (initial?: string) => {
- let content: any[] = [];
- let state = {
+ const content: any[] = [];
+ const state = {
doc: {
type: "doc",
content,
@@ -57,32 +56,32 @@ export namespace RichTextUtils {
export const ToPlainText = (state: EditorState) => {
// Because we're working with plain text, just concatenate all paragraphs
- let content = state.doc.content;
- let paragraphs: Node<any>[] = [];
+ const content = state.doc.content;
+ const paragraphs: Node<any>[] = [];
content.forEach(node => node.type.name === "paragraph" && paragraphs.push(node));
// Functions to flatten ProseMirror paragraph objects (and their components) to plain text
// Concatentate paragraphs and string the result together
- let textParagraphs: string[] = paragraphs.map(paragraph => {
- let text: string[] = [];
+ const textParagraphs: string[] = paragraphs.map(paragraph => {
+ const text: string[] = [];
paragraph.content.forEach(node => node.text && text.push(node.text));
return text.join(joiner) + delimiter;
});
- let plainText = textParagraphs.join(joiner);
+ const plainText = textParagraphs.join(joiner);
return plainText.substring(0, plainText.length - 1);
};
export const ToProsemirrorState = (plainText: string, oldState?: RichTextField) => {
// Remap the text, creating blocks split on newlines
- let elements = plainText.split(delimiter);
+ const elements = plainText.split(delimiter);
// Google Docs adds in an extra carriage return automatically, so this counteracts it
!elements[elements.length - 1].length && elements.pop();
// Preserve the current state, but re-write the content to be the blocks
- let parsed = JSON.parse(oldState ? oldState.Data : Initialize());
+ const parsed = JSON.parse(oldState ? oldState.Data : Initialize());
parsed.doc.content = elements.map(text => {
- let paragraph: any = { type: "paragraph" };
+ const paragraph: any = { type: "paragraph" };
text.length && (paragraph.content = [{ type: "text", marks: [], text }]); // An empty paragraph gets treated as a line break
return paragraph;
});
@@ -98,7 +97,7 @@ export namespace RichTextUtils {
export const Export = async (state: EditorState): Promise<GoogleApiClientUtils.Docs.Content> => {
const nodes: (Node<any> | null)[] = [];
- let text = ToPlainText(state);
+ const text = ToPlainText(state);
state.doc.content.forEach(node => {
if (!node.childCount) {
nodes.push(null);
@@ -129,7 +128,7 @@ export namespace RichTextUtils {
return { baseUrl, filename };
});
- const uploads = await Identified.PostToServer(RouteStore.googlePhotosMediaDownload, { mediaItems });
+ const uploads = await Networking.PostToServer("/googlePhotosMediaDownload", { mediaItems });
if (uploads.length !== mediaItems.length) {
throw new AssertionError({ expected: mediaItems.length, actual: uploads.length, message: "Error with internally uploading inlineObjects!" });
@@ -169,20 +168,20 @@ export namespace RichTextUtils {
const title = document.title!;
const { text, paragraphs } = GoogleApiClientUtils.Docs.Utils.extractText(document);
let state = FormattedTextBox.blankState();
- let structured = parseLists(paragraphs);
+ const structured = parseLists(paragraphs);
let position = 3;
- let lists: ListGroup[] = [];
+ const lists: ListGroup[] = [];
const indentMap = new Map<ListGroup, BulletPosition[]>();
let globalOffset = 0;
const nodes: Node<any>[] = [];
- for (let element of structured) {
+ for (const element of structured) {
if (Array.isArray(element)) {
lists.push(element);
- let positions: BulletPosition[] = [];
- let items = element.map(paragraph => {
- let item = listItem(state.schema, paragraph.contents);
- let sinks = paragraph.bullet!;
+ const positions: BulletPosition[] = [];
+ const items = element.map(paragraph => {
+ const item = listItem(state.schema, paragraph.contents);
+ const sinks = paragraph.bullet!;
positions.push({
value: position + globalOffset,
sinks
@@ -209,7 +208,7 @@ export namespace RichTextUtils {
}
});
} else {
- let paragraph = paragraphNode(state.schema, element.contents);
+ const paragraph = paragraphNode(state.schema, element.contents);
nodes.push(paragraph);
position += paragraph.nodeSize;
}
@@ -217,11 +216,11 @@ export namespace RichTextUtils {
}
state = state.apply(state.tr.replaceWith(0, 2, nodes));
- let sink = sinkListItem(state.schema.nodes.list_item);
- let dispatcher = (tr: Transaction) => state = state.apply(tr);
- for (let list of lists) {
- for (let pos of indentMap.get(list)!) {
- let resolved = state.doc.resolve(pos.value);
+ const sink = sinkListItem(state.schema.nodes.list_item);
+ const dispatcher = (tr: Transaction) => state = state.apply(tr);
+ for (const list of lists) {
+ for (const pos of indentMap.get(list)!) {
+ const resolved = state.doc.resolve(pos.value);
state = state.apply(state.tr.setSelection(new TextSelection(resolved)));
for (let i = 0; i < pos.sinks; i++) {
sink(state, dispatcher);
@@ -237,9 +236,9 @@ export namespace RichTextUtils {
type PreparedParagraphs = (ListGroup | Paragraph)[];
const parseLists = (paragraphs: ListGroup) => {
- let groups: PreparedParagraphs = [];
+ const groups: PreparedParagraphs = [];
let group: ListGroup = [];
- for (let paragraph of paragraphs) {
+ for (const paragraph of paragraphs) {
if (paragraph.bullet !== undefined) {
group.push(paragraph);
} else {
@@ -263,8 +262,8 @@ export namespace RichTextUtils {
};
const paragraphNode = (schema: any, runs: docs_v1.Schema$TextRun[]): Node => {
- let children = runs.map(run => textNode(schema, run)).filter(child => child !== undefined);
- let fragment = children.length ? Fragment.from(children) : undefined;
+ const children = runs.map(run => textNode(schema, run)).filter(child => child !== undefined);
+ const fragment = children.length ? Fragment.from(children) : undefined;
return schema.node("paragraph", null, fragment);
};
@@ -274,8 +273,8 @@ export namespace RichTextUtils {
const guid = Utils.GenerateDeterministicGuid(src);
const backingDocId = StrCast(textNote[guid]);
if (!backingDocId) {
- const backingDoc = Docs.Create.ImageDocument(src, { width: 300, height: 300 });
- DocumentView.makeCustomViewClicked(backingDoc, undefined);
+ const backingDoc = Docs.Create.ImageDocument(src, { _width: 300, _height: 300 });
+ DocumentView.makeCustomViewClicked(backingDoc, undefined, Docs.Create.FreeformDocument);
docid = backingDoc[Id];
textNote[guid] = docid;
} else {
@@ -285,7 +284,7 @@ export namespace RichTextUtils {
};
const textNode = (schema: any, run: docs_v1.Schema$TextRun) => {
- let text = run.content!.removeTrailingNewlines();
+ const text = run.content!.removeTrailingNewlines();
return text.length ? schema.text(text, styleToMarks(schema, run.textStyle)) : undefined;
};
@@ -300,17 +299,17 @@ export namespace RichTextUtils {
if (!textStyle) {
return undefined;
}
- let marks: Mark[] = [];
+ const marks: Mark[] = [];
Object.keys(textStyle).forEach(key => {
let value: any;
- let targeted = key as keyof docs_v1.Schema$TextStyle;
+ const targeted = key as keyof docs_v1.Schema$TextStyle;
if (value = textStyle[targeted]) {
- let attributes: any = {};
+ const attributes: any = {};
let converted = StyleToMark.get(targeted) || targeted;
value.url && (attributes.href = value.url);
if (value.color) {
- let object = value.color.rgbColor;
+ const object = value.color.rgbColor;
attributes.color = Color.rgb(["red", "green", "blue"].map(color => object[color] * 255 || 0)).hex();
}
if (value.magnitude) {
@@ -321,13 +320,13 @@ export namespace RichTextUtils {
converted = ImportFontFamilyMapping.get(value.fontFamily) || "timesNewRoman";
}
- let mapped = schema.marks[converted];
+ const mapped = schema.marks[converted];
if (!mapped) {
alert(`No mapping found for ${converted}!`);
return;
}
- let mark = schema.mark(mapped, attributes);
+ const mark = schema.mark(mapped, attributes);
mark && marks.push(mark);
}
});
@@ -367,9 +366,9 @@ export namespace RichTextUtils {
const ignored = ["user_mark"];
const marksToStyle = async (nodes: (Node<any> | null)[]): Promise<docs_v1.Schema$Request[]> => {
- let requests: docs_v1.Schema$Request[] = [];
+ const requests: docs_v1.Schema$Request[] = [];
let position = 1;
- for (let node of nodes) {
+ for (const node of nodes) {
if (node === null) {
position += 2;
continue;
@@ -383,7 +382,7 @@ export namespace RichTextUtils {
};
let mark: Mark<any>;
const markMap = BuildMarkMap(marks);
- for (let markName of Object.keys(schema.marks)) {
+ for (const markName of Object.keys(schema.marks)) {
if (ignored.includes(markName) || !(mark = markMap[markName])) {
continue;
}
@@ -404,7 +403,7 @@ export namespace RichTextUtils {
let exported = (await Cast(linkDoc.anchor2, Doc))!;
if (!exported.customLayout) {
exported = Doc.MakeAlias(exported);
- DocumentView.makeCustomViewClicked(exported, undefined);
+ DocumentView.makeCustomViewClicked(exported, undefined, Docs.Create.FreeformDocument);
linkDoc.anchor2 = exported;
}
url = Utils.shareUrl(exported[Id]);
diff --git a/src/new_fields/Schema.ts b/src/new_fields/Schema.ts
index b1a449e08..3f0ff4284 100644
--- a/src/new_fields/Schema.ts
+++ b/src/new_fields/Schema.ts
@@ -23,7 +23,7 @@ export type makeInterface<T extends Interface[]> = AllToInterface<T> & Doc & { p
// export function makeInterface<T extends Interface[], U extends Doc>(schemas: T): (doc: U) => All<T, U>;
// export function makeInterface<T extends Interface, U extends Doc>(schema: T): (doc: U) => makeInterface<T, U>;
export function makeInterface<T extends Interface[]>(...schemas: T): InterfaceFunc<T> {
- let schema: Interface = {};
+ const schema: Interface = {};
for (const s of schemas) {
for (const key in s) {
schema[key] = s[key];
diff --git a/src/new_fields/SchemaHeaderField.ts b/src/new_fields/SchemaHeaderField.ts
index 42a8485ac..07c90f5a2 100644
--- a/src/new_fields/SchemaHeaderField.ts
+++ b/src/new_fields/SchemaHeaderField.ts
@@ -1,7 +1,7 @@
import { Deserializable } from "../client/util/SerializationHelper";
import { serializable, primitive } from "serializr";
import { ObjectField } from "./ObjectField";
-import { Copy, ToScriptString, OnUpdate } from "./FieldSymbols";
+import { Copy, ToScriptString, ToString, OnUpdate } from "./FieldSymbols";
import { scriptingGlobal } from "../client/util/Scripting";
import { ColumnType } from "../client/views/collections/CollectionSchemaView";
@@ -116,4 +116,7 @@ export class SchemaHeaderField extends ObjectField {
[ToScriptString]() {
return `invalid`;
}
+ [ToString]() {
+ return `SchemaHeaderField`;
+ }
} \ No newline at end of file
diff --git a/src/new_fields/ScriptField.ts b/src/new_fields/ScriptField.ts
index cdc9871a8..f8a8d1226 100644
--- a/src/new_fields/ScriptField.ts
+++ b/src/new_fields/ScriptField.ts
@@ -1,9 +1,9 @@
import { ObjectField } from "./ObjectField";
import { CompiledScript, CompileScript, scriptingGlobal, ScriptOptions } from "../client/util/Scripting";
-import { Copy, ToScriptString, Parent, SelfProxy } from "./FieldSymbols";
+import { Copy, ToScriptString, ToString, Parent, SelfProxy } from "./FieldSymbols";
import { serializable, createSimpleSchema, map, primitive, object, deserialize, PropSchema, custom, SKIP } from "serializr";
import { Deserializable, autoObject } from "../client/util/SerializationHelper";
-import { Doc } from "../new_fields/Doc";
+import { Doc, Field } from "../new_fields/Doc";
import { Plugins } from "./util";
import { computedFn } from "mobx-utils";
import { ProxyField } from "./Proxy";
@@ -101,22 +101,26 @@ export class ScriptField extends ObjectField {
[ToScriptString]() {
return "script field";
}
- public static CompileScript(script: string, params: object = {}, addReturn = false) {
- let compiled = CompileScript(script, {
- params: { this: Doc.name, ...params },
+ [ToString]() {
+ return "script field";
+ }
+ public static CompileScript(script: string, params: object = {}, addReturn = false, capturedVariables?: { [name: string]: Field }) {
+ const compiled = CompileScript(script, {
+ params: { this: Doc.name, _last_: "any", ...params },
typecheck: false,
editable: true,
- addReturn: addReturn
+ addReturn: addReturn,
+ capturedVariables
});
return compiled;
}
public static MakeFunction(script: string, params: object = {}) {
- let compiled = ScriptField.CompileScript(script, params, true);
+ const compiled = ScriptField.CompileScript(script, params, true);
return compiled.compiled ? new ScriptField(compiled) : undefined;
}
public static MakeScript(script: string, params: object = {}) {
- let compiled = ScriptField.CompileScript(script, params, false);
+ const compiled = ScriptField.CompileScript(script, params, false);
return compiled.compiled ? new ScriptField(compiled) : undefined;
}
}
@@ -124,14 +128,15 @@ export class ScriptField extends ObjectField {
@scriptingGlobal
@Deserializable("computed", deserializeScript)
export class ComputedField extends ScriptField {
+ _lastComputedResult: any;
//TODO maybe add an observable cache based on what is passed in for doc, considering there shouldn't really be that many possible values for doc
- value = computedFn((doc: Doc) => this.script.run({ this: doc }, console.log).result);
- public static MakeScript(script: string, params: object = {}, ) {
- let compiled = ScriptField.CompileScript(script, params, false);
+ value = computedFn((doc: Doc) => this._lastComputedResult = this.script.run({ this: doc, _last_: this._lastComputedResult }, console.log).result);
+ public static MakeScript(script: string, params: object = {}) {
+ const compiled = ScriptField.CompileScript(script, params, false);
return compiled.compiled ? new ComputedField(compiled) : undefined;
}
- public static MakeFunction(script: string, params: object = {}) {
- let compiled = ScriptField.CompileScript(script, params, true);
+ public static MakeFunction(script: string, params: object = {}, capturedVariables?: { [name: string]: Field }) {
+ const compiled = ScriptField.CompileScript(script, params, true, capturedVariables);
return compiled.compiled ? new ComputedField(compiled) : undefined;
}
}
diff --git a/src/new_fields/URLField.ts b/src/new_fields/URLField.ts
index 35ef6dd02..cfab36906 100644
--- a/src/new_fields/URLField.ts
+++ b/src/new_fields/URLField.ts
@@ -1,7 +1,7 @@
import { Deserializable } from "../client/util/SerializationHelper";
import { serializable, custom } from "serializr";
import { ObjectField } from "./ObjectField";
-import { ToScriptString, Copy } from "./FieldSymbols";
+import { ToScriptString, ToString, Copy } from "./FieldSymbols";
import { Scripting, scriptingGlobal } from "../client/util/Scripting";
function url() {
@@ -32,6 +32,9 @@ export abstract class URLField extends ObjectField {
[ToScriptString]() {
return `new ${this.constructor.name}("${this.url.href}")`;
}
+ [ToString]() {
+ return this.url.href;
+ }
[Copy](): this {
return new (this.constructor as any)(this.url);
diff --git a/src/new_fields/documentSchemas.ts b/src/new_fields/documentSchemas.ts
index fa47374f1..4a5c1fdb0 100644
--- a/src/new_fields/documentSchemas.ts
+++ b/src/new_fields/documentSchemas.ts
@@ -4,29 +4,36 @@ import { Doc } from "./Doc";
import { DateField } from "./DateField";
export const documentSchema = createSchema({
- layout: "string", // this is the native layout string for the document. templates can be added using other fields and setting layoutKey below (see layoutCustom as an example)
+ layout: "string", // this is the native layout string for the document. templates can be added using other fields and setting layoutKey below (see layout_custom as an example)
layoutKey: "string", // holds the field key for the field that actually holds the current lyoat
- layoutCustom: Doc, // used to hold a custom layout (there's nothing special about this field .. any field could hold a custom layout that can be selected by setting 'layoutKey')
+ layout_custom: Doc, // used to hold a custom layout (there's nothing special about this field .. any field could hold a custom layout that can be selected by setting 'layoutKey')
title: "string", // document title (can be on either data document or layout)
- nativeWidth: "number", // native width of document which determines how much document contents are scaled when the document's width is set
- nativeHeight: "number", // "
- width: "number", // width of document in its container's coordinate system
- height: "number", // "
+ _dropAction: "string", // override specifying what should happen when this document is dropped (can be "alias" or "copy")
+ _nativeWidth: "number", // native width of document which determines how much document contents are scaled when the document's width is set
+ _nativeHeight: "number", // "
+ _width: "number", // width of document in its container's coordinate system
+ _height: "number", // "
+ _freeformLayoutEngine: "string",// the string ID for the layout engine to use to layout freeform view documents
+ _LODdisable: "boolean", // whether to disbale LOD switching for CollectionFreeFormViews
color: "string", // foreground color of document
backgroundColor: "string", // background color of document
opacity: "number", // opacity of document
creationDate: DateField, // when the document was created
links: listSpec(Doc), // computed (readonly) list of links associated with this document
- dropAction: "string", // override specifying what should happen when this document is dropped (can be "alias" or "copy")
removeDropProperties: listSpec("string"), // properties that should be removed from the alias/copy/etc of this document when it is dropped
onClick: ScriptField, // script to run when document is clicked (can be overriden by an onClick prop)
+ onPointerDown: ScriptField, // script to run when document is clicked (can be overriden by an onClick prop)
+ onPointerUp: ScriptField, // script to run when document is clicked (can be overriden by an onClick prop)
onDragStart: ScriptField, // script to run when document is dragged (without being selected). the script should return the Doc to be dropped.
dragFactory: Doc, // the document that serves as the "template" for the onDragStart script. ie, to drag out copies of the dragFactory document.
ignoreAspect: "boolean", // whether aspect ratio should be ignored when laying out or manipulating the document
autoHeight: "boolean", // whether the height of the document should be computed automatically based on its contents
- isTemplateField: "boolean", // whether this document acts as a template layout for describing how other documents should be displayed
+ isTemplateForField: "string",// when specifies a field key, then the containing document is a template that renders the specified field
isBackground: "boolean", // whether document is a background element and ignores input events (can only selet with marquee)
type: "string", // enumerated type of document
+ treeViewOpen: "boolean", // flag denoting whether the documents sub-tree (contents) is visible or hidden
+ treeViewExpandedView: "string", // name of field whose contents are being displayed as the document's subtree
+ preventTreeViewOpen: "boolean", // ignores the treeViewOpen flag (for allowing a view to not be slaved to other views of the document)
currentTimecode: "number", // current play back time of a temporal document (video / audio)
summarizedDocs: listSpec(Doc), // documents that are summarized by this document (and which will typically be opened by clicking this document)
maximizedDocs: listSpec(Doc), // documents to maximize when clicking this document (generally this document will be an icon)
@@ -38,12 +45,21 @@ export const documentSchema = createSchema({
searchFields: "string", // the search fields to display when this document matches a search in its metadata
heading: "number", // the logical layout 'heading' of this document (used by rule provider to stylize h1 header elements, from h2, etc)
showCaption: "string", // whether editable caption text is overlayed at the bottom of the document
- showTitle: "string", // whether an editable title banner is displayed at tht top of the document
+ showTitle: "string", // the fieldkey whose contents should be displayed at the top of the document
+ showTitleHover: "string", // the showTitle should be shown only on hover
isButton: "boolean", // whether document functions as a button (overiding native interactions of its content)
ignoreClick: "boolean", // whether documents ignores input clicks (but does not ignore manipulation and other events)
- isAnimating: "boolean", // whether the document is in the midst of animating between two layouts (used by icons to de/iconify documents).
+ isAnimating: "string", // whether the document is in the midst of animating between two layouts (used by icons to de/iconify documents). value is undefined|"min"|"max"
animateToDimensions: listSpec("number"), // layout information about the target rectangle a document is animating towards
scrollToLinkID: "string", // id of link being traversed. allows this doc to scroll/highlight/etc its link anchor. scrollToLinkID should be set to undefined by this doc after it sets up its scroll,etc.
+ strokeWidth: "number",
+ fontSize: "string",
+ fitToBox: "boolean", // whether freeform view contents should be zoomed/panned to fill the area of the document view
+ xPadding: "number", // pixels of padding on left/right of collectionfreeformview contents when fitToBox is set
+ yPadding: "number", // pixels of padding on left/right of collectionfreeformview contents when fitToBox is set
+ LODarea: "number", // area (width*height) where CollectionFreeFormViews switch from a label to rendering contents
+ letterSpacing: "string",
+ textTransform: "string"
});
export const positionSchema = createSchema({
@@ -53,6 +69,13 @@ export const positionSchema = createSchema({
z: "number",
});
+export const collectionSchema = createSchema({
+ childLayout: Doc, // layout template for children of a collecion
+ childDetailed: Doc, // layout template to apply to a child when its clicked on in a collection and opened (requires onChildClick or other script to use this field)
+ onChildClick: ScriptField, // script to run for each child when its clicked
+ onCheckedClick: ScriptField, // script to run when a checkbox is clicked next to a child in a tree view
+});
+
export type Document = makeInterface<[typeof documentSchema]>;
export const Document = makeInterface(documentSchema);
diff --git a/src/new_fields/util.ts b/src/new_fields/util.ts
index 04194509c..2cedda7a6 100644
--- a/src/new_fields/util.ts
+++ b/src/new_fields/util.ts
@@ -1,17 +1,22 @@
import { UndoManager } from "../client/util/UndoManager";
import { Doc, Field, FieldResult, UpdatingFromServer } from "./Doc";
import { SerializationHelper } from "../client/util/SerializationHelper";
-import { ProxyField } from "./Proxy";
+import { ProxyField, PrefetchProxy } from "./Proxy";
import { RefField } from "./RefField";
import { ObjectField } from "./ObjectField";
-import { action } from "mobx";
+import { action, trace } from "mobx";
import { Parent, OnUpdate, Update, Id, SelfProxy, Self } from "./FieldSymbols";
import { DocServer } from "../client/DocServer";
+import { props } from "bluebird";
function _readOnlySetter(): never {
throw new Error("Documents can't be modified in read-only mode");
}
+export function TraceMobx() {
+ //trace();
+}
+
export interface GetterResult {
value: FieldResult;
shouldReturn?: boolean;
@@ -31,6 +36,7 @@ const _setterImpl = action(function (target: any, prop: string | symbol | number
target[prop] = value;
return true;
}
+
if (typeof prop === "symbol") {
target[prop] = value;
return true;
@@ -48,7 +54,7 @@ const _setterImpl = action(function (target: any, prop: string | symbol | number
value = new ProxyField(value);
}
if (value instanceof ObjectField) {
- if (value[Parent] && value[Parent] !== receiver) {
+ if (value[Parent] && value[Parent] !== receiver && !(value instanceof PrefetchProxy)) {
throw new Error("Can't put the same object in multiple documents at the same time");
}
value[Parent] = receiver;
@@ -94,11 +100,38 @@ export function makeEditable() {
_setter = _setterImpl;
}
-export function setter(target: any, prop: string | symbol | number, value: any, receiver: any): boolean {
+let layoutProps = ["panX", "panY", "width", "height", "nativeWidth", "nativeHeight", "fitWidth", "fitToBox",
+ "LODdisable", "dropAction", "chromeStatus", "viewType", "gridGap", "xMargin", "yMargin", "autoHeight"];
+export function setter(target: any, in_prop: string | symbol | number, value: any, receiver: any): boolean {
+ let prop = in_prop;
+ if (typeof prop === "string" && prop !== "__id" && prop !== "__fields" &&
+ ((prop as string).startsWith("_") || layoutProps.includes(prop))) {
+ if (!prop.startsWith("_")) {
+ console.log(prop + " is deprecated - switch to _" + prop);
+ prop = "_" + prop;
+ }
+ const resolvedLayout = getFieldImpl(target, getFieldImpl(target, "layoutKey", receiver), receiver);
+ if (resolvedLayout instanceof Doc) {
+ resolvedLayout[prop] = value;
+ return true;
+ }
+ }
return _setter(target, prop, value, receiver);
}
-export function getter(target: any, prop: string | symbol | number, receiver: any): any {
+export function getter(target: any, in_prop: string | symbol | number, receiver: any): any {
+ let prop = in_prop;
+ if (typeof prop === "string" && prop !== "__id" && prop !== "__fields" &&
+ ((prop as string).startsWith("_") || layoutProps.includes(prop))) {
+ if (!prop.startsWith("_")) {
+ console.log(prop + " is deprecated - switch to _" + prop);
+ prop = "_" + prop;
+ }
+ const resolvedLayout = getFieldImpl(target, getFieldImpl(target, "layoutKey", receiver), receiver);
+ if (resolvedLayout instanceof Doc) {
+ return resolvedLayout[prop];
+ }
+ }
if (prop === "then") {//If we're being awaited
return undefined;
}
diff --git a/src/pen-gestures/GestureUtils.ts b/src/pen-gestures/GestureUtils.ts
new file mode 100644
index 000000000..f14c573c3
--- /dev/null
+++ b/src/pen-gestures/GestureUtils.ts
@@ -0,0 +1,54 @@
+import { NDollarRecognizer } from "./ndollar";
+import { Type } from "typescript";
+import { InkField, PointData } from "../new_fields/InkField";
+import { Docs } from "../client/documents/Documents";
+import { Doc, WidthSym, HeightSym } from "../new_fields/Doc";
+import { NumCast } from "../new_fields/Types";
+import { CollectionFreeFormView } from "../client/views/collections/collectionFreeForm/CollectionFreeFormView";
+import { Rect } from "react-measure";
+import { Scripting } from "../client/util/Scripting";
+
+export namespace GestureUtils {
+ export class GestureEvent {
+ constructor(
+ readonly gesture: Gestures,
+ readonly points: PointData[],
+ readonly bounds: Rect,
+ readonly callbackFn?: Function,
+ readonly text?: any
+ ) { }
+ }
+
+ export interface GestureEventDisposer { (): void; }
+
+ export function MakeGestureTarget(
+ element: HTMLElement,
+ func: (e: Event, ge: GestureEvent) => void
+ ): GestureEventDisposer {
+ const handler = (e: Event) => func(e, (e as CustomEvent<GestureEvent>).detail);
+ element.addEventListener("dashOnGesture", handler);
+ return () => {
+ element.removeEventListener("dashOnGesture", handler);
+ };
+ }
+
+ export enum Gestures {
+ Box = "box",
+ Line = "line",
+ StartBracket = "startbracket",
+ EndBracket = "endbracket",
+ Stroke = "stroke",
+ Scribble = "scribble",
+ Text = "text"
+ }
+
+ export const GestureRecognizer = new NDollarRecognizer(false);
+
+ export function GestureOptions(name: string, gestureData?: any): (params: {}) => any {
+ switch (name) {
+ case Gestures.Box:
+ break;
+ }
+ throw new Error("This means that you're trying to do something with the gesture that hasn't been defined yet. Define it in GestureUtils.ts");
+ }
+} \ No newline at end of file
diff --git a/src/pen-gestures/ndollar.ts b/src/pen-gestures/ndollar.ts
new file mode 100644
index 000000000..643d58591
--- /dev/null
+++ b/src/pen-gestures/ndollar.ts
@@ -0,0 +1,547 @@
+import { GestureUtils } from "./GestureUtils";
+
+/**
+ * The $N Multistroke Recognizer (JavaScript version)
+ * Converted to TypeScript -syip2
+ *
+ * Lisa Anthony, Ph.D.
+ * UMBC
+ * Information Systems Department
+ * 1000 Hilltop Circle
+ * Baltimore, MD 21250
+ * lanthony@umbc.edu
+ *
+ * Jacob O. Wobbrock, Ph.D.
+ * The Information School
+ * University of Washington
+ * Seattle, WA 98195-2840
+ * wobbrock@uw.edu
+ *
+ * The academic publications for the $N recognizer, and what should be
+ * used to cite it, are:
+ *
+ * Anthony, L. and Wobbrock, J.O. (2010). A lightweight multistroke
+ * recognizer for user interface prototypes. Proceedings of Graphics
+ * Interface (GI '10). Ottawa, Ontario (May 31-June 2, 2010). Toronto,
+ * Ontario: Canadian Information Processing Society, pp. 245-252.
+ * https://dl.acm.org/citation.cfm?id=1839258
+ *
+ * Anthony, L. and Wobbrock, J.O. (2012). $N-Protractor: A fast and
+ * accurate multistroke recognizer. Proceedings of Graphics Interface
+ * (GI '12). Toronto, Ontario (May 28-30, 2012). Toronto, Ontario:
+ * Canadian Information Processing Society, pp. 117-120.
+ * https://dl.acm.org/citation.cfm?id=2305296
+ *
+ * The Protractor enhancement was separately published by Yang Li and programmed
+ * here by Jacob O. Wobbrock and Lisa Anthony:
+ *
+ * Li, Y. (2010). Protractor: A fast and accurate gesture
+ * recognizer. Proceedings of the ACM Conference on Human
+ * Factors in Computing Systems (CHI '10). Atlanta, Georgia
+ * (April 10-15, 2010). New York: ACM Press, pp. 2169-2172.
+ * https://dl.acm.org/citation.cfm?id=1753654
+ *
+ * This software is distributed under the "New BSD License" agreement:
+ *
+ * Copyright (C) 2007-2011, Jacob O. Wobbrock and Lisa Anthony.
+ * All rights reserved. Last updated July 14, 2018.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the names of UMBC nor the University of Washington,
+ * nor the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Lisa Anthony OR Jacob O. Wobbrock
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+**/
+
+//
+// Point class
+//
+export class Point {
+ constructor(public X: number, public Y: number) { }
+}
+
+//
+// Rectangle class
+//
+export class Rectangle {
+ constructor(public X: number, public Y: number, public Width: number, public Height: number) { }
+}
+
+//
+// Unistroke class: a unistroke template
+//
+export class Unistroke {
+ public Points: Point[];
+ public StartUnitVector: Point;
+ public Vector: number[];
+
+ constructor(public Name: string, useBoundedRotationInvariance: boolean, points: Point[]) {
+ this.Points = Resample(points, NumPoints);
+ const radians = IndicativeAngle(this.Points);
+ this.Points = RotateBy(this.Points, -radians);
+ this.Points = ScaleDimTo(this.Points, SquareSize, OneDThreshold);
+ if (useBoundedRotationInvariance) {
+ this.Points = RotateBy(this.Points, +radians); // restore
+ }
+ this.Points = TranslateTo(this.Points, Origin);
+ this.StartUnitVector = CalcStartUnitVector(this.Points, StartAngleIndex);
+ this.Vector = Vectorize(this.Points, useBoundedRotationInvariance); // for Protractor
+ }
+}
+//
+// Multistroke class: a container for unistrokes
+//
+export class Multistroke {
+ public NumStrokes: number;
+ public Unistrokes: Unistroke[];
+
+ constructor(public Name: string, useBoundedRotationInvariance: boolean, strokes: any[]) // constructor
+ {
+ this.NumStrokes = strokes.length; // number of individual strokes
+
+ const order = new Array(strokes.length); // array of integer indices
+ for (var i = 0; i < strokes.length; i++) {
+ order[i] = i; // initialize
+ }
+ const orders = new Array(); // array of integer arrays
+ HeapPermute(strokes.length, order, /*out*/ orders);
+
+ const unistrokes = MakeUnistrokes(strokes, orders); // returns array of point arrays
+ this.Unistrokes = new Array(unistrokes.length); // unistrokes for this multistroke
+ for (var j = 0; j < unistrokes.length; j++) {
+ this.Unistrokes[j] = new Unistroke(this.Name, useBoundedRotationInvariance, unistrokes[j]);
+ }
+ }
+}
+
+//
+// Result class
+//
+export class Result {
+ constructor(public Name: string, public Score: any, public Time: any) { }
+}
+
+//
+// NDollarRecognizer constants
+//
+const NumMultistrokes = 4;
+const NumPoints = 96;
+const SquareSize = 250.0;
+const OneDThreshold = 0.25; // customize to desired gesture set (usually 0.20 - 0.35)
+const Origin = new Point(0, 0);
+const Diagonal = Math.sqrt(SquareSize * SquareSize + SquareSize * SquareSize);
+const HalfDiagonal = 0.5 * Diagonal;
+const AngleRange = Deg2Rad(45.0);
+const AnglePrecision = Deg2Rad(2.0);
+const Phi = 0.5 * (-1.0 + Math.sqrt(5.0)); // Golden Ratio
+const StartAngleIndex = (NumPoints / 8); // eighth of gesture length
+const AngleSimilarityThreshold = Deg2Rad(30.0);
+
+//
+// NDollarRecognizer class
+//
+export class NDollarRecognizer {
+ public Multistrokes: Multistroke[];
+
+ constructor(useBoundedRotationInvariance: boolean) // constructor
+ {
+ //
+ // one predefined multistroke for each multistroke type
+ //
+ this.Multistrokes = new Array(NumMultistrokes);
+ this.Multistrokes[0] = new Multistroke(GestureUtils.Gestures.Box, useBoundedRotationInvariance, new Array(
+ new Array(
+ new Point(30, 146), //new Point(29, 160), new Point(30, 180), new Point(31, 200),
+ new Point(30, 222), //new Point(50, 219), new Point(70, 225), new Point(90, 230),
+ new Point(106, 225), //new Point(100, 200), new Point(106, 180), new Point(110, 160),
+ new Point(106, 146), //new Point(80, 150), new Point(50, 146),
+ new Point(30, 143))
+ ));
+ this.Multistrokes[1] = new Multistroke(GestureUtils.Gestures.Line, useBoundedRotationInvariance, new Array(
+ new Array(new Point(12, 347), new Point(119, 347))
+ ));
+ this.Multistrokes[2] = new Multistroke(GestureUtils.Gestures.StartBracket, useBoundedRotationInvariance, new Array(
+ // new Array(new Point(145, 20), new Point(30, 21), new Point(34, 150))
+ new Array(new Point(31, 25), new Point(145, 20), new Point(31, 25), new Point(34, 150))
+ ));
+ this.Multistrokes[3] = new Multistroke(GestureUtils.Gestures.EndBracket, useBoundedRotationInvariance, new Array(
+ // new Array(new Point(150, 21), new Point(149, 150), new Point(26, 152))
+ // new Array(new Point(150, 150), new Point(150, 0), new Point(150, 150), new Point(0, 150))
+ new Array(new Point(10, 100), new Point(50, 12), new Point(100, 103))
+ ));
+
+ //
+ // PREDEFINED STROKES
+ //
+
+ // this.Multistrokes[0] = new Multistroke("T", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(30, 7), new Point(103, 7)),
+ // new Array(new Point(66, 7), new Point(66, 87))
+ // ));
+ // this.Multistrokes[1] = new Multistroke("N", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(177, 92), new Point(177, 2)),
+ // new Array(new Point(182, 1), new Point(246, 95)),
+ // new Array(new Point(247, 87), new Point(247, 1))
+ // ));
+ // this.Multistrokes[2] = new Multistroke("D", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(345, 9), new Point(345, 87)),
+ // new Array(new Point(351, 8), new Point(363, 8), new Point(372, 9), new Point(380, 11), new Point(386, 14), new Point(391, 17), new Point(394, 22), new Point(397, 28), new Point(399, 34), new Point(400, 42), new Point(400, 50), new Point(400, 56), new Point(399, 61), new Point(397, 66), new Point(394, 70), new Point(391, 74), new Point(386, 78), new Point(382, 81), new Point(377, 83), new Point(372, 85), new Point(367, 87), new Point(360, 87), new Point(355, 88), new Point(349, 87))
+ // ));
+ // this.Multistrokes[3] = new Multistroke("P", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(507, 8), new Point(507, 87)),
+ // new Array(new Point(513, 7), new Point(528, 7), new Point(537, 8), new Point(544, 10), new Point(550, 12), new Point(555, 15), new Point(558, 18), new Point(560, 22), new Point(561, 27), new Point(562, 33), new Point(561, 37), new Point(559, 42), new Point(556, 45), new Point(550, 48), new Point(544, 51), new Point(538, 53), new Point(532, 54), new Point(525, 55), new Point(519, 55), new Point(513, 55), new Point(510, 55))
+ // ));
+ // this.Multistrokes[4] = new Multistroke("X", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(30, 146), new Point(106, 222)),
+ // new Array(new Point(30, 225), new Point(106, 146))
+ // ));
+ // this.Multistrokes[5] = new Multistroke("H", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(188, 137), new Point(188, 225)),
+ // new Array(new Point(188, 180), new Point(241, 180)),
+ // new Array(new Point(241, 137), new Point(241, 225))
+ // ));
+ // this.Multistrokes[6] = new Multistroke("I", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(371, 149), new Point(371, 221)),
+ // new Array(new Point(341, 149), new Point(401, 149)),
+ // new Array(new Point(341, 221), new Point(401, 221))
+ // ));
+ // this.Multistrokes[7] = new Multistroke("exclamation", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(526, 142), new Point(526, 204)),
+ // new Array(new Point(526, 221))
+ // ));
+ // this.Multistrokes[9] = new Multistroke("five-point star", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(177, 396), new Point(223, 299), new Point(262, 396), new Point(168, 332), new Point(278, 332), new Point(184, 397))
+ // ));
+ // this.Multistrokes[10] = new Multistroke("null", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(382, 310), new Point(377, 308), new Point(373, 307), new Point(366, 307), new Point(360, 310), new Point(356, 313), new Point(353, 316), new Point(349, 321), new Point(347, 326), new Point(344, 331), new Point(342, 337), new Point(341, 343), new Point(341, 350), new Point(341, 358), new Point(342, 362), new Point(344, 366), new Point(347, 370), new Point(351, 374), new Point(356, 379), new Point(361, 382), new Point(368, 385), new Point(374, 387), new Point(381, 387), new Point(390, 387), new Point(397, 385), new Point(404, 382), new Point(408, 378), new Point(412, 373), new Point(416, 367), new Point(418, 361), new Point(419, 353), new Point(418, 346), new Point(417, 341), new Point(416, 336), new Point(413, 331), new Point(410, 326), new Point(404, 320), new Point(400, 317), new Point(393, 313), new Point(392, 312)),
+ // new Array(new Point(418, 309), new Point(337, 390))
+ // ));
+ // this.Multistrokes[11] = new Multistroke("arrowhead", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(506, 349), new Point(574, 349)),
+ // new Array(new Point(525, 306), new Point(584, 349), new Point(525, 388))
+ // ));
+ // this.Multistrokes[12] = new Multistroke("pitchfork", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(38, 470), new Point(36, 476), new Point(36, 482), new Point(37, 489), new Point(39, 496), new Point(42, 500), new Point(46, 503), new Point(50, 507), new Point(56, 509), new Point(63, 509), new Point(70, 508), new Point(75, 506), new Point(79, 503), new Point(82, 499), new Point(85, 493), new Point(87, 487), new Point(88, 480), new Point(88, 474), new Point(87, 468)),
+ // new Array(new Point(62, 464), new Point(62, 571))
+ // ));
+ // this.Multistrokes[13] = new Multistroke("six-point star", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(177, 554), new Point(223, 476), new Point(268, 554), new Point(183, 554)),
+ // new Array(new Point(177, 490), new Point(223, 568), new Point(268, 490), new Point(183, 490))
+ // ));
+ // this.Multistrokes[14] = new Multistroke("asterisk", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(325, 499), new Point(417, 557)),
+ // new Array(new Point(417, 499), new Point(325, 557)),
+ // new Array(new Point(371, 486), new Point(371, 571))
+ // ));
+ // this.Multistrokes[15] = new Multistroke("half-note", useBoundedRotationInvariance, new Array(
+ // new Array(new Point(546, 465), new Point(546, 531)),
+ // new Array(new Point(540, 530), new Point(536, 529), new Point(533, 528), new Point(529, 529), new Point(524, 530), new Point(520, 532), new Point(515, 535), new Point(511, 539), new Point(508, 545), new Point(506, 548), new Point(506, 554), new Point(509, 558), new Point(512, 561), new Point(517, 564), new Point(521, 564), new Point(527, 563), new Point(531, 560), new Point(535, 557), new Point(538, 553), new Point(542, 548), new Point(544, 544), new Point(546, 540), new Point(546, 536))
+ // ));
+ //
+ // The $N Gesture Recognizer API begins here -- 3 methods: Recognize(), AddGesture(), and DeleteUserGestures()
+ //
+ }
+
+ Recognize = (strokes: any[], useBoundedRotationInvariance: boolean = false, requireSameNoOfStrokes: boolean = false, useProtractor: boolean = true) => {
+ const t0 = Date.now();
+ const points = CombineStrokes(strokes); // make one connected unistroke from the given strokes
+ const candidate = new Unistroke("", useBoundedRotationInvariance, points);
+
+ var u = -1;
+ var b = +Infinity;
+ for (var i = 0; i < this.Multistrokes.length; i++) // for each multistroke template
+ {
+ if (!requireSameNoOfStrokes || strokes.length === this.Multistrokes[i].NumStrokes) // optional -- only attempt match when same # of component strokes
+ {
+ for (const unistroke of this.Multistrokes[i].Unistrokes) // for each unistroke within this multistroke
+ {
+ if (AngleBetweenUnitVectors(candidate.StartUnitVector, unistroke.StartUnitVector) <= AngleSimilarityThreshold) // strokes start in the same direction
+ {
+ var d;
+ if (useProtractor) {
+ d = OptimalCosineDistance(unistroke.Vector, candidate.Vector); // Protractor
+ }
+ else {
+ d = DistanceAtBestAngle(candidate.Points, unistroke, -AngleRange, +AngleRange, AnglePrecision); // Golden Section Search (original $N)
+ }
+ if (d < b) {
+ b = d; // best (least) distance
+ u = i; // multistroke owner of unistroke
+ }
+ }
+ }
+ }
+ }
+ const t1 = Date.now();
+ return (u === -1) ? null : new Result(this.Multistrokes[u].Name, useProtractor ? (1.0 - b) : (1.0 - b / HalfDiagonal), t1 - t0);
+ }
+
+ AddGesture = (name: string, useBoundedRotationInvariance: boolean, strokes: any[]) => {
+ this.Multistrokes[this.Multistrokes.length] = new Multistroke(name, useBoundedRotationInvariance, strokes);
+ var num = 0;
+ for (const multistroke of this.Multistrokes) {
+ if (multistroke.Name === name) {
+ num++;
+ }
+ }
+ return num;
+ }
+
+ DeleteUserGestures = () => {
+ this.Multistrokes.length = NumMultistrokes; // clear any beyond the original set
+ return NumMultistrokes;
+ }
+}
+
+
+//
+// Private helper functions from here on down
+//
+function HeapPermute(n: number, order: any[], /*out*/ orders: any[]) {
+ if (n === 1) {
+ orders[orders.length] = order.slice(); // append copy
+ } else {
+ for (var i = 0; i < n; i++) {
+ HeapPermute(n - 1, order, orders);
+ if (n % 2 === 1) { // swap 0, n-1
+ const tmp = order[0];
+ order[0] = order[n - 1];
+ order[n - 1] = tmp;
+ } else { // swap i, n-1
+ const tmp = order[i];
+ order[i] = order[n - 1];
+ order[n - 1] = tmp;
+ }
+ }
+ }
+}
+
+function MakeUnistrokes(strokes: any, orders: any) {
+ const unistrokes = new Array(); // array of point arrays
+ for (const order of orders) {
+ for (var b = 0; b < Math.pow(2, order.length); b++) // use b's bits for directions
+ {
+ const unistroke = new Array(); // array of points
+ for (var i = 0; i < order.length; i++) {
+ var pts;
+ if (((b >> i) & 1) === 1) {// is b's bit at index i on?
+ pts = strokes[order[i]].slice().reverse(); // copy and reverse
+ }
+ else {
+ pts = strokes[order[i]].slice(); // copy
+ }
+ for (const point of pts) {
+ unistroke[unistroke.length] = point; // append points
+ }
+ }
+ unistrokes[unistrokes.length] = unistroke; // add one unistroke to set
+ }
+ }
+ return unistrokes;
+}
+
+function CombineStrokes(strokes: any) {
+ const points = new Array();
+ for (const stroke of strokes) {
+ for (const { X, Y } of stroke) {
+ points[points.length] = new Point(X, Y);
+ }
+ }
+ return points;
+}
+function Resample(points: any, n: any) {
+ const I = PathLength(points) / (n - 1); // interval length
+ var D = 0.0;
+ const newpoints = new Array(points[0]);
+ for (var i = 1; i < points.length; i++) {
+ const d = Distance(points[i - 1], points[i]);
+ if ((D + d) >= I) {
+ const qx = points[i - 1].X + ((I - D) / d) * (points[i].X - points[i - 1].X);
+ const qy = points[i - 1].Y + ((I - D) / d) * (points[i].Y - points[i - 1].Y);
+ const q = new Point(qx, qy);
+ newpoints[newpoints.length] = q; // append new point 'q'
+ points.splice(i, 0, q); // insert 'q' at position i in points s.t. 'q' will be the next i
+ D = 0.0;
+ }
+ else D += d;
+ }
+ if (newpoints.length === n - 1) {// sometimes we fall a rounding-error short of adding the last point, so add it if so
+ newpoints[newpoints.length] = new Point(points[points.length - 1].X, points[points.length - 1].Y);
+ }
+ return newpoints;
+}
+function IndicativeAngle(points: any) {
+ const c = Centroid(points);
+ return Math.atan2(c.Y - points[0].Y, c.X - points[0].X);
+}
+function RotateBy(points: any, radians: any) // rotates points around centroid
+{
+ const c = Centroid(points);
+ const cos = Math.cos(radians);
+ const sin = Math.sin(radians);
+ const newpoints = new Array();
+ for (const point of points) {
+ const qx = (point.X - c.X) * cos - (point.Y - c.Y) * sin + c.X;
+ const qy = (point.X - c.X) * sin + (point.Y - c.Y) * cos + c.Y;
+ newpoints[newpoints.length] = new Point(qx, qy);
+ }
+ return newpoints;
+}
+function ScaleDimTo(points: any, size: any, ratio1D: any) // scales bbox uniformly for 1D, non-uniformly for 2D
+{
+ const B = BoundingBox(points);
+ const uniformly = Math.min(B.Width / B.Height, B.Height / B.Width) <= ratio1D; // 1D or 2D gesture test
+ const newpoints = new Array();
+ for (const { X, Y } of points) {
+ const qx = uniformly ? X * (size / Math.max(B.Width, B.Height)) : X * (size / B.Width);
+ const qy = uniformly ? Y * (size / Math.max(B.Width, B.Height)) : Y * (size / B.Height);
+ newpoints[newpoints.length] = new Point(qx, qy);
+ }
+ return newpoints;
+}
+function TranslateTo(points: any, pt: any) // translates points' centroid
+{
+ const c = Centroid(points);
+ const newpoints = new Array();
+ for (const { X, Y } of points) {
+ const qx = X + pt.X - c.X;
+ const qy = Y + pt.Y - c.Y;
+ newpoints[newpoints.length] = new Point(qx, qy);
+ }
+ return newpoints;
+}
+function Vectorize(points: any, useBoundedRotationInvariance: any) // for Protractor
+{
+ var cos = 1.0;
+ var sin = 0.0;
+ if (useBoundedRotationInvariance) {
+ const iAngle = Math.atan2(points[0].Y, points[0].X);
+ const baseOrientation = (Math.PI / 4.0) * Math.floor((iAngle + Math.PI / 8.0) / (Math.PI / 4.0));
+ cos = Math.cos(baseOrientation - iAngle);
+ sin = Math.sin(baseOrientation - iAngle);
+ }
+ var sum = 0.0;
+ const vector = new Array<number>();
+ for (var i = 0; i < points.length; i++) {
+ const newX = points[i].X * cos - points[i].Y * sin;
+ const newY = points[i].Y * cos + points[i].X * sin;
+ vector[vector.length] = newX;
+ vector[vector.length] = newY;
+ sum += newX * newX + newY * newY;
+ }
+ const magnitude = Math.sqrt(sum);
+ for (var i = 0; i < vector.length; i++) {
+ vector[i] /= magnitude;
+ }
+ return vector;
+}
+function OptimalCosineDistance(v1: any, v2: any) // for Protractor
+{
+ var a = 0.0;
+ var b = 0.0;
+ for (var i = 0; i < v1.length; i += 2) {
+ a += v1[i] * v2[i] + v1[i + 1] * v2[i + 1];
+ b += v1[i] * v2[i + 1] - v1[i + 1] * v2[i];
+ }
+ const angle = Math.atan(b / a);
+ return Math.acos(a * Math.cos(angle) + b * Math.sin(angle));
+}
+function DistanceAtBestAngle(points: any, T: any, a: any, b: any, threshold: any) {
+ var x1 = Phi * a + (1.0 - Phi) * b;
+ var f1 = DistanceAtAngle(points, T, x1);
+ var x2 = (1.0 - Phi) * a + Phi * b;
+ var f2 = DistanceAtAngle(points, T, x2);
+ while (Math.abs(b - a) > threshold) {
+ if (f1 < f2) {
+ b = x2;
+ x2 = x1;
+ f2 = f1;
+ x1 = Phi * a + (1.0 - Phi) * b;
+ f1 = DistanceAtAngle(points, T, x1);
+ } else {
+ a = x1;
+ x1 = x2;
+ f1 = f2;
+ x2 = (1.0 - Phi) * a + Phi * b;
+ f2 = DistanceAtAngle(points, T, x2);
+ }
+ }
+ return Math.min(f1, f2);
+}
+function DistanceAtAngle(points: any, T: any, radians: any) {
+ const newpoints = RotateBy(points, radians);
+ return PathDistance(newpoints, T.Points);
+}
+function Centroid(points: any) {
+ var x = 0.0, y = 0.0;
+ for (const point of points) {
+ x += point.X;
+ y += point.Y;
+ }
+ x /= points.length;
+ y /= points.length;
+ return new Point(x, y);
+}
+function BoundingBox(points: any) {
+ var minX = +Infinity, maxX = -Infinity, minY = +Infinity, maxY = -Infinity;
+ for (const { X, Y } of points) {
+ minX = Math.min(minX, X);
+ minY = Math.min(minY, Y);
+ maxX = Math.max(maxX, X);
+ maxY = Math.max(maxY, Y);
+ }
+ return new Rectangle(minX, minY, maxX - minX, maxY - minY);
+}
+function PathDistance(pts1: any, pts2: any) // average distance between corresponding points in two paths
+{
+ var d = 0.0;
+ for (var i = 0; i < pts1.length; i++) {// assumes pts1.length == pts2.length
+ d += Distance(pts1[i], pts2[i]);
+ }
+ return d / pts1.length;
+}
+function PathLength(points: any) // length traversed by a point path
+{
+ var d = 0.0;
+ for (var i = 1; i < points.length; i++) {
+ d += Distance(points[i - 1], points[i]);
+ }
+ return d;
+}
+function Distance(p1: any, p2: any) // distance between two points
+{
+ const dx = p2.X - p1.X;
+ const dy = p2.Y - p1.Y;
+ return Math.sqrt(dx * dx + dy * dy);
+}
+function CalcStartUnitVector(points: any, index: any) // start angle from points[0] to points[index] normalized as a unit vector
+{
+ const v = new Point(points[index].X - points[0].X, points[index].Y - points[0].Y);
+ const len = Math.sqrt(v.X * v.X + v.Y * v.Y);
+ return new Point(v.X / len, v.Y / len);
+}
+function AngleBetweenUnitVectors(v1: any, v2: any) // gives acute angle between unit vectors from (0,0) to v1, and (0,0) to v2
+{
+ const n = (v1.X * v2.X + v1.Y * v2.Y);
+ const c = Math.max(-1.0, Math.min(1.0, n)); // ensure [-1,+1]
+ return Math.acos(c); // arc cosine of the vector dot product
+}
+function Deg2Rad(d: any) { return (d * Math.PI / 180.0); } \ No newline at end of file
diff --git a/src/scraping/buxton/node_scraper.ts b/src/scraping/buxton/node_scraper.ts
new file mode 100644
index 000000000..ef1d989d4
--- /dev/null
+++ b/src/scraping/buxton/node_scraper.ts
@@ -0,0 +1,57 @@
+import { readdirSync } from "fs";
+import { resolve } from "path";
+
+const StreamZip = require('node-stream-zip');
+
+export async function open(path: string) {
+ const zip = new StreamZip({
+ file: path,
+ storeEntries: true
+ });
+ return new Promise<string>((resolve, reject) => {
+ zip.on('ready', () => {
+ console.log("READY!", zip.entriesCount);
+ for (const entry of Object.values(zip.entries()) as any[]) {
+ const desc = entry.isDirectory ? 'directory' : `${entry.size} bytes`;
+ console.log(`Entry ${entry.name}: ${desc}`);
+ }
+ let body = "";
+ zip.stream("word/document.xml", (error: any, stream: any) => {
+ if (error) {
+ reject(error);
+ }
+ stream.on('data', (chunk: any) => body += chunk.toString());
+ stream.on('end', () => {
+ resolve(body);
+ zip.close();
+ });
+ });
+ });
+ });
+}
+
+export async function extract(path: string) {
+ const contents = await open(path);
+ let body = "";
+ const components = contents.toString().split('<w:t');
+ for (const component of components) {
+ const tags = component.split('>');
+ console.log(tags[1]);
+ const content = tags[1].replace(/<.*$/, "");
+ body += content;
+ }
+ return body;
+}
+
+async function parse(): Promise<string[]> {
+ const sourceDirectory = resolve(`${__dirname}/source`);
+ const candidates = readdirSync(sourceDirectory).filter(file => file.endsWith(".doc") || file.endsWith(".docx")).map(file => `${sourceDirectory}/${file}`);
+ await extract(candidates[0]);
+ try {
+ return Promise.all(candidates.map(extract));
+ } catch {
+ return [];
+ }
+}
+
+parse(); \ No newline at end of file
diff --git a/src/scraping/buxton/scraper.py b/src/scraping/buxton/scraper.py
index a9256073b..ec9c3f72c 100644
--- a/src/scraping/buxton/scraper.py
+++ b/src/scraping/buxton/scraper.py
@@ -13,11 +13,12 @@ import math
import sys
source = "./source"
-dist = "../../server/public/files"
+filesPath = "../../server/public/files"
+image_dist = filesPath + "/images/buxton"
db = MongoClient("localhost", 27017)["Dash"]
target_collection = db.newDocuments
-target_doc_title = "Workspace 1"
+target_doc_title = "Collection 1"
schema_guids = []
common_proto_id = ""
@@ -70,7 +71,7 @@ def text_doc_map(string_list):
return listify(proxify_guids(list(map(guid_map, string_list))))
-def write_collection(parse_results, display_fields, storage_key, viewType=2):
+def write_collection(parse_results, display_fields, storage_key, viewType):
view_guids = parse_results["child_guids"]
data_doc = parse_results["schema"]
@@ -84,13 +85,14 @@ def write_collection(parse_results, display_fields, storage_key, viewType=2):
"proto": protofy(data_doc["_id"]),
"x": 10,
"y": 10,
- "width": 900,
- "height": 600,
- "panX": 0,
- "panY": 0,
+ "_width": 900,
+ "_height": 600,
+ "_panX": 0,
+ "_panY": 0,
"zIndex": 2,
"libraryBrush": False,
- "viewType": viewType
+ "_viewType": viewType,
+ "_LODdisable": True
},
"__type": "Doc"
}
@@ -98,16 +100,17 @@ def write_collection(parse_results, display_fields, storage_key, viewType=2):
fields["proto"] = protofy(common_proto_id)
fields[storage_key] = listify(proxify_guids(view_guids))
fields["schemaColumns"] = listify(display_fields)
- fields["backgroundColor"] = "white"
- fields["scale"] = 0.5
- fields["viewType"] = 2
fields["author"] = "Bill Buxton"
fields["creationDate"] = {
"date": datetime.datetime.utcnow().microsecond,
"__type": "date"
}
+ if "image_urls" in parse_results:
+ fields["hero"] = {
+ "url": parse_results["image_urls"][0],
+ "__type": "image"
+ }
fields["isPrototype"] = True
- fields["page"] = -1
target_collection.insert_one(data_doc)
target_collection.insert_one(view_doc)
@@ -129,7 +132,7 @@ def write_text_doc(content):
"proto": protofy(data_doc_guid),
"x": 10,
"y": 10,
- "width": 400,
+ "_width": 400,
"zIndex": 2
},
"__type": "Doc"
@@ -144,17 +147,17 @@ def write_text_doc(content):
"__type": "RichTextField"
},
"title": content,
- "nativeWidth": 200,
+ "_nativeWidth": 200,
"author": "Bill Buxton",
"creationDate": {
"date": datetime.datetime.utcnow().microsecond,
"__type": "date"
},
"isPrototype": True,
- "autoHeight": True,
+ "_autoHeight": True,
"page": -1,
- "nativeHeight": 200,
- "height": 200,
+ "_nativeHeight": 200,
+ "_height": 200,
"data_text": content
},
"__type": "Doc"
@@ -167,22 +170,27 @@ def write_text_doc(content):
def write_image(folder, name):
- path = f"http://localhost:1050/files/{folder}/{name}"
+ path = f"http://localhost:1050/files/images/buxton/{folder}/{name}"
data_doc_guid = guid()
view_doc_guid = guid()
- image = Image.open(f"{dist}/{folder}/{name}")
+ image = Image.open(f"{image_dist}/{folder}/{name}")
native_width, native_height = image.size
+ if abs(native_width - native_height) < 10:
+ return None
+
view_doc = {
"_id": view_doc_guid,
"fields": {
"proto": protofy(data_doc_guid),
"x": 10,
"y": 10,
- "width": min(800, native_width),
- "zIndex": 2
+ "_width": min(800, native_width),
+ "zIndex": 2,
+ "widthUnit": "*",
+ "widthMagnitude": 1
},
"__type": "Doc"
}
@@ -196,7 +204,7 @@ def write_image(folder, name):
"__type": "image"
},
"title": name,
- "nativeWidth": native_width,
+ "_nativeWidth": native_width,
"author": "Bill Buxton",
"creationDate": {
"date": datetime.datetime.utcnow().microsecond,
@@ -204,8 +212,8 @@ def write_image(folder, name):
},
"isPrototype": True,
"page": -1,
- "nativeHeight": native_height,
- "height": native_height
+ "_nativeHeight": native_height,
+ "_height": native_height
},
"__type": "Doc"
}
@@ -213,7 +221,10 @@ def write_image(folder, name):
target_collection.insert_one(view_doc)
target_collection.insert_one(data_doc)
- return view_doc_guid
+ return {
+ "layout_id": view_doc_guid,
+ "url": path
+ }
def parse_document(file_name: str):
@@ -222,20 +233,26 @@ def parse_document(file_name: str):
result = {}
- dir_path = dist + "/" + pure_name
+ dir_path = image_dist + "/" + pure_name
+ print(dir_path)
mkdir_if_absent(dir_path)
raw = str(docx2txt.process(source + "/" + file_name, dir_path))
+ urls = []
view_guids = []
count = 0
for image in os.listdir(dir_path):
- count += 1
- view_guids.append(write_image(pure_name, image))
- copyfile(dir_path + "/" + image, dir_path +
- "/" + image.replace(".", "_o.", 1))
- copyfile(dir_path + "/" + image, dir_path +
- "/" + image.replace(".", "_m.", 1))
+ created = write_image(pure_name, image)
+ if created != None:
+ urls.append(created["url"])
+ view_guids.append(created["layout_id"])
+ count += 1
+ resolved = dir_path + "/" + image
+ original = dir_path + "/" + image.replace(".", "_o.", 1)
+ medium = dir_path + "/" + image.replace(".", "_m.", 1)
+ copyfile(resolved, original)
+ copyfile(resolved, medium)
print(f"extracted {count} images...")
def sanitize(line): return re.sub("[\n\t]+", "", line).replace(u"\u00A0", " ").replace(
@@ -342,12 +359,13 @@ def parse_document(file_name: str):
"fields": result,
"__type": "Doc"
},
- "child_guids": view_guids
+ "child_guids": view_guids,
+ "image_urls": urls
}
def proxify_guids(guids):
- return list(map(lambda guid: {"fieldId": guid, "__type": "proxy"}, guids))
+ return list(map(lambda guid: {"fieldId": guid, "__type": "prefetch_proxy"}, guids))
def write_common_proto():
@@ -356,21 +374,19 @@ def write_common_proto():
"_id": id,
"fields": {
"proto": protofy("collectionProto"),
- "title": "Common Import Proto",
+ "title": "The Buxton Collection",
},
"__type": "Doc"
}
-
target_collection.insert_one(common_proto)
-
return id
-if os.path.exists(dist):
- shutil.rmtree(dist)
-while os.path.exists(dist):
+if os.path.exists(image_dist):
+ shutil.rmtree(image_dist)
+while os.path.exists(image_dist):
pass
-os.mkdir(dist)
+os.mkdir(image_dist)
mkdir_if_absent(source)
common_proto_id = write_common_proto()
@@ -380,7 +396,7 @@ for file_name in os.listdir(source):
if file_name.endswith('.docx'):
candidates += 1
schema_guids.append(write_collection(
- parse_document(file_name), ["title", "data"], "image_data"))
+ parse_document(file_name), ["title", "data"], "data", 5))
print("writing parent schema...")
parent_guid = write_collection({
@@ -390,7 +406,7 @@ parent_guid = write_collection({
"__type": "Doc"
},
"child_guids": schema_guids
-}, ["title", "short_description", "original_price"], "data", 1)
+}, ["title", "short_description", "original_price"], "data", 2)
print("appending parent schema to main workspace...\n")
target_collection.update_one(
@@ -400,7 +416,7 @@ target_collection.update_one(
print("rewriting .gitignore...\n")
lines = ['*', '!.gitignore']
-with open(dist + "/.gitignore", 'w') as f:
+with open(filesPath + "/.gitignore", 'w') as f:
f.write('\n'.join(lines))
suffix = "" if candidates == 1 else "s"
diff --git a/src/scraping/buxton/source/Bill_Notes_NB75D.docx b/src/scraping/buxton/source/Bill_Notes_NB75D.docx
new file mode 100644
index 000000000..a5a5e3d90
--- /dev/null
+++ b/src/scraping/buxton/source/Bill_Notes_NB75D.docx
Binary files differ
diff --git a/src/server/ActionUtilities.ts b/src/server/ActionUtilities.ts
new file mode 100644
index 000000000..60f66c878
--- /dev/null
+++ b/src/server/ActionUtilities.ts
@@ -0,0 +1,160 @@
+import { readFile, writeFile, exists, mkdir, unlink, createWriteStream } from 'fs';
+import { ExecOptions } from 'shelljs';
+import { exec } from 'child_process';
+import * as path from 'path';
+import * as rimraf from "rimraf";
+import { yellow, Color } from 'colors';
+import * as nodemailer from "nodemailer";
+import { MailOptions } from "nodemailer/lib/json-transport";
+import Mail = require('nodemailer/lib/mailer');
+
+const projectRoot = path.resolve(__dirname, "../../");
+export function pathFromRoot(relative?: string) {
+ if (!relative) {
+ return projectRoot;
+ }
+ return path.resolve(projectRoot, relative);
+}
+
+export async function fileDescriptorFromStream(path: string) {
+ const logStream = createWriteStream(path);
+ return new Promise<number>(resolve => logStream.on("open", resolve));
+}
+
+export const command_line = (command: string, fromDirectory?: string) => {
+ return new Promise<string>((resolve, reject) => {
+ const options: ExecOptions = {};
+ if (fromDirectory) {
+ options.cwd = fromDirectory ? path.resolve(projectRoot, fromDirectory) : projectRoot;
+ }
+ exec(command, options, (err, stdout) => err ? reject(err) : resolve(stdout));
+ });
+};
+
+export const read_text_file = (relativePath: string) => {
+ const target = path.resolve(__dirname, relativePath);
+ return new Promise<string>((resolve, reject) => {
+ readFile(target, (err, data) => err ? reject(err) : resolve(data.toString()));
+ });
+};
+
+export const write_text_file = (relativePath: string, contents: any) => {
+ const target = path.resolve(__dirname, relativePath);
+ return new Promise<void>((resolve, reject) => {
+ writeFile(target, contents, (err) => err ? reject(err) : resolve());
+ });
+};
+
+export type Messager<T> = (outcome: { result: T | undefined, error: Error | null }) => string;
+
+export interface LogData<T> {
+ startMessage: string;
+ // if you care about the execution informing your log, you can pass in a function that takes in the result and a potential error and decides what to write
+ endMessage: string | Messager<T>;
+ action: () => T | Promise<T>;
+ color?: Color;
+}
+
+let current = Math.ceil(Math.random() * 20);
+export async function log_execution<T>({ startMessage, endMessage, action, color }: LogData<T>): Promise<T | undefined> {
+ let result: T | undefined = undefined, error: Error | null = null;
+ const resolvedColor = color || `\x1b[${31 + ++current % 6}m%s\x1b[0m`;
+ log_helper(`${startMessage}...`, resolvedColor);
+ try {
+ result = await action();
+ } catch (e) {
+ error = e;
+ } finally {
+ log_helper(typeof endMessage === "string" ? endMessage : endMessage({ result, error }), resolvedColor);
+ }
+ return result;
+}
+
+function log_helper(content: string, color: Color | string) {
+ if (typeof color === "string") {
+ console.log(color, content);
+ } else {
+ console.log(color(content));
+ }
+}
+
+export function logPort(listener: string, port: number) {
+ console.log(`${listener} listening on port ${yellow(String(port))}`);
+}
+
+export function msToTime(duration: number) {
+ const milliseconds = Math.floor((duration % 1000) / 100),
+ seconds = Math.floor((duration / 1000) % 60),
+ minutes = Math.floor((duration / (1000 * 60)) % 60),
+ hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
+
+ const hoursS = (hours < 10) ? "0" + hours : hours;
+ const minutesS = (minutes < 10) ? "0" + minutes : minutes;
+ const secondsS = (seconds < 10) ? "0" + seconds : seconds;
+
+ return hoursS + ":" + minutesS + ":" + secondsS + "." + milliseconds;
+}
+
+export const createIfNotExists = async (path: string) => {
+ if (await new Promise<boolean>(resolve => exists(path, resolve))) {
+ return true;
+ }
+ return new Promise<boolean>(resolve => mkdir(path, error => resolve(error === null)));
+};
+
+export async function Prune(rootDirectory: string): Promise<boolean> {
+ const error = await new Promise<Error>(resolve => rimraf(rootDirectory, resolve));
+ return error === null;
+}
+
+export const Destroy = (mediaPath: string) => new Promise<boolean>(resolve => unlink(mediaPath, error => resolve(error === null)));
+
+export namespace Email {
+
+ const smtpTransport = nodemailer.createTransport({
+ service: 'Gmail',
+ auth: {
+ user: 'brownptcdash@gmail.com',
+ pass: 'browngfx1'
+ }
+ });
+
+ export interface DispatchOptions<T extends string | string[]> {
+ to: T;
+ subject: string;
+ content: string;
+ attachments?: Mail.Attachment | Mail.Attachment[];
+ }
+
+ export interface DispatchFailure {
+ recipient: string;
+ error: Error;
+ }
+
+ export async function dispatchAll({ to, subject, content, attachments }: DispatchOptions<string[]>) {
+ const failures: DispatchFailure[] = [];
+ await Promise.all(to.map(async recipient => {
+ let error: Error | null;
+ const resolved = attachments ? "length" in attachments ? attachments : [attachments] : undefined;
+ if ((error = await Email.dispatch({ to: recipient, subject, content, attachments: resolved })) !== null) {
+ failures.push({
+ recipient,
+ error
+ });
+ }
+ }));
+ return failures.length ? failures : undefined;
+ }
+
+ export async function dispatch({ to, subject, content, attachments }: DispatchOptions<string>): Promise<Error | null> {
+ const mailOptions = {
+ to,
+ from: 'brownptcdash@gmail.com',
+ subject,
+ text: `Hello ${to.split("@")[0]},\n\n${content}`,
+ attachments
+ } as MailOptions;
+ return new Promise<Error | null>(resolve => smtpTransport.sendMail(mailOptions, resolve));
+ }
+
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/ApiManager.ts b/src/server/ApiManagers/ApiManager.ts
new file mode 100644
index 000000000..e2b01d585
--- /dev/null
+++ b/src/server/ApiManagers/ApiManager.ts
@@ -0,0 +1,11 @@
+import RouteManager, { RouteInitializer } from "../RouteManager";
+
+export type Registration = (initializer: RouteInitializer) => void;
+
+export default abstract class ApiManager {
+ protected abstract initialize(register: Registration): void;
+
+ public register(register: Registration) {
+ this.initialize(register);
+ }
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/DeleteManager.ts b/src/server/ApiManagers/DeleteManager.ts
new file mode 100644
index 000000000..be452c0ff
--- /dev/null
+++ b/src/server/ApiManagers/DeleteManager.ts
@@ -0,0 +1,78 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method, _permission_denied, PublicHandler } from "../RouteManager";
+import { WebSocket } from "../Websocket/Websocket";
+import { Database } from "../database";
+
+export default class DeleteManager extends ApiManager {
+
+ protected initialize(register: Registration): void {
+
+ register({
+ method: Method.GET,
+ subscription: "/delete",
+ secureHandler: async ({ res, isRelease }) => {
+ if (isRelease) {
+ return _permission_denied(res, deletionPermissionError);
+ }
+ await WebSocket.deleteFields();
+ res.redirect("/home");
+ }
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/deleteAll",
+ secureHandler: async ({ res, isRelease }) => {
+ if (isRelease) {
+ return _permission_denied(res, deletionPermissionError);
+ }
+ await WebSocket.deleteAll();
+ res.redirect("/home");
+ }
+ });
+
+ const hi: PublicHandler = async ({ res, isRelease }) => {
+ if (isRelease) {
+ return _permission_denied(res, deletionPermissionError);
+ }
+ await Database.Instance.deleteAll('users');
+ res.redirect("/home");
+ };
+
+ // register({
+ // method: Method.GET,
+ // subscription: "/deleteUsers",
+ // onValidation: hi,
+ // onUnauthenticated: hi
+ // });
+
+
+ register({
+ method: Method.GET,
+ subscription: "/deleteWithAux",
+ secureHandler: async ({ res, isRelease }) => {
+ if (isRelease) {
+ return _permission_denied(res, deletionPermissionError);
+ }
+ await Database.Auxiliary.DeleteAll();
+ res.redirect("/delete");
+ }
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/deleteWithGoogleCredentials",
+ secureHandler: async ({ res, isRelease }) => {
+ if (isRelease) {
+ return _permission_denied(res, deletionPermissionError);
+ }
+ await Database.Auxiliary.GoogleAuthenticationToken.DeleteAll();
+ res.redirect("/delete");
+ }
+ });
+
+ }
+
+}
+
+const deletionPermissionError = "Cannot perform a delete operation outside of the development environment!";
diff --git a/src/server/ApiManagers/DownloadManager.ts b/src/server/ApiManagers/DownloadManager.ts
new file mode 100644
index 000000000..1bb84f374
--- /dev/null
+++ b/src/server/ApiManagers/DownloadManager.ts
@@ -0,0 +1,267 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method } from "../RouteManager";
+import RouteSubscriber from "../RouteSubscriber";
+import * as Archiver from 'archiver';
+import * as express from 'express';
+import { Database } from "../database";
+import * as path from "path";
+import { DashUploadUtils, SizeSuffix } from "../DashUploadUtils";
+import { publicDirectory } from "..";
+import { serverPathToFile, Directory } from "./UploadManager";
+
+export type Hierarchy = { [id: string]: string | Hierarchy };
+export type ZipMutator = (file: Archiver.Archiver) => void | Promise<void>;
+export interface DocumentElements {
+ data: string | any[];
+ title: string;
+}
+
+export default class DownloadManager extends ApiManager {
+
+ protected initialize(register: Registration): void {
+
+ /**
+ * Let's say someone's using Dash to organize images in collections.
+ * This lets them export the hierarchy they've built to their
+ * own file system in a useful format.
+ *
+ * This handler starts with a single document id (interesting only
+ * if it's that of a collection). It traverses the database, captures
+ * the nesting of only nested images or collections, writes
+ * that to a zip file and returns it to the client for download.
+ */
+ register({
+ method: Method.GET,
+ subscription: new RouteSubscriber("imageHierarchyExport").add('docId'),
+ secureHandler: async ({ req, res }) => {
+ const id = req.params.docId;
+ const hierarchy: Hierarchy = {};
+ await buildHierarchyRecursive(id, hierarchy);
+ return BuildAndDispatchZip(res, zip => writeHierarchyRecursive(zip, hierarchy));
+ }
+ });
+
+ register({
+ method: Method.GET,
+ subscription: new RouteSubscriber("downloadId").add("docId"),
+ secureHandler: async ({ req, res }) => {
+ return BuildAndDispatchZip(res, async zip => {
+ const { id, docs, files } = await getDocs(req.params.docId);
+ const docString = JSON.stringify({ id, docs });
+ zip.append(docString, { name: "doc.json" });
+ files.forEach(val => {
+ zip.file(publicDirectory + val, { name: val.substring(1) });
+ });
+ });
+ }
+ });
+
+ register({
+ method: Method.GET,
+ subscription: new RouteSubscriber("serializeDoc").add("docId"),
+ secureHandler: async ({ req, res }) => {
+ const { docs, files } = await getDocs(req.params.docId);
+ res.send({ docs, files: Array.from(files) });
+ }
+ });
+
+ }
+
+}
+
+async function getDocs(id: string) {
+ const files = new Set<string>();
+ const docs: { [id: string]: any } = {};
+ const fn = (doc: any): string[] => {
+ const id = doc.id;
+ if (typeof id === "string" && id.endsWith("Proto")) {
+ //Skip protos
+ return [];
+ }
+ const ids: string[] = [];
+ for (const key in doc.fields) {
+ if (!doc.fields.hasOwnProperty(key)) {
+ continue;
+ }
+ const field = doc.fields[key];
+ if (field === undefined || field === null) {
+ continue;
+ }
+
+ if (field.__type === "proxy" || field.__type === "prefetch_proxy") {
+ ids.push(field.fieldId);
+ } else if (field.__type === "script" || field.__type === "computed") {
+ if (field.captures) {
+ ids.push(field.captures.fieldId);
+ }
+ } else if (field.__type === "list") {
+ ids.push(...fn(field));
+ } else if (typeof field === "string") {
+ const re = /"(?:dataD|d)ocumentId"\s*:\s*"([\w\-]*)"/g;
+ let match: string[] | null;
+ while ((match = re.exec(field)) !== null) {
+ ids.push(match[1]);
+ }
+ } else if (field.__type === "RichTextField") {
+ const re = /"href"\s*:\s*"(.*?)"/g;
+ let match: string[] | null;
+ while ((match = re.exec(field.Data)) !== null) {
+ const urlString = match[1];
+ const split = new URL(urlString).pathname.split("doc/");
+ if (split.length > 1) {
+ ids.push(split[split.length - 1]);
+ }
+ }
+ const re2 = /"src"\s*:\s*"(.*?)"/g;
+ while ((match = re2.exec(field.Data)) !== null) {
+ const urlString = match[1];
+ const pathname = new URL(urlString).pathname;
+ files.add(pathname);
+ }
+ } else if (["audio", "image", "video", "pdf", "web"].includes(field.__type)) {
+ const url = new URL(field.url);
+ const pathname = url.pathname;
+ files.add(pathname);
+ }
+ }
+
+ if (doc.id) {
+ docs[doc.id] = doc;
+ }
+ return ids;
+ };
+ await Database.Instance.visit([id], fn);
+ return { id, docs, files };
+}
+
+/**
+ * This utility function factors out the process
+ * of creating a zip file and sending it back to the client
+ * by piping it into a response.
+ *
+ * Learn more about piping and readable / writable streams here!
+ * https://www.freecodecamp.org/news/node-js-streams-everything-you-need-to-know-c9141306be93/
+ *
+ * @param res the writable stream response object that will transfer the generated zip file
+ * @param mutator the callback function used to actually modify and insert information into the zip instance
+ */
+export async function BuildAndDispatchZip(res: express.Response, mutator: ZipMutator): Promise<void> {
+ res.set('Content-disposition', `attachment;`);
+ res.set('Content-Type', "application/zip");
+ const zip = Archiver('zip');
+ zip.pipe(res);
+ await mutator(zip);
+ return zip.finalize();
+}
+
+/**
+ * This function starts with a single document id as a seed,
+ * typically that of a collection, and then descends the entire tree
+ * of image or collection documents that are reachable from that seed.
+ * @param seedId the id of the root of the subtree we're trying to capture, interesting only if it's a collection
+ * @param hierarchy the data structure we're going to use to record the nesting of the collections and images as we descend
+ */
+
+/*
+Below is an example of the JSON hierarchy built from two images contained inside a collection titled 'a nested collection',
+following the general recursive structure shown immediately below
+{
+ "parent folder name":{
+ "first child's fild name":"first child's url"
+ ...
+ "nth child's fild name":"nth child's url"
+ }
+}
+{
+ "a nested collection (865c4734-c036-4d67-a588-c71bb43d1440)":{
+ "an image of a cat (ace99ffd-8ed8-4026-a5d5-a353fff57bdd).jpg":"https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg",
+ "1*SGJw31T5Q9Zfsk24l2yirg.gif (9321cc9b-9b3e-4cb6-b99c-b7e667340f05).gif":"https://cdn-media-1.freecodecamp.org/images/1*SGJw31T5Q9Zfsk24l2yirg.gif"
+ }
+}
+*/
+async function buildHierarchyRecursive(seedId: string, hierarchy: Hierarchy): Promise<void> {
+ const { title, data } = await getData(seedId);
+ const label = `${title} (${seedId})`;
+ // is the document a collection?
+ if (Array.isArray(data)) {
+ // recurse over all documents in the collection.
+ const local: Hierarchy = {}; // create a child hierarchy for this level, which will get passed in as the parent of the recursive call
+ hierarchy[label] = local; // store it at the index in the parent, so we'll end up with a map of maps of maps
+ await Promise.all(data.map(proxy => buildHierarchyRecursive(proxy.fieldId, local)));
+ } else {
+ // now, data can only be a string, namely the url of the image
+ const filename = label + path.extname(data); // this is the file name under which the output image will be stored
+ hierarchy[filename] = data;
+ }
+}
+
+/**
+ * This is a very specific utility method to help traverse the database
+ * to parse data and titles out of images and collections alone.
+ *
+ * We don't know if the document id given to is corresponds to a view document or a data
+ * document. If it's a data document, the response from the database will have
+ * a data field. If not, call recursively on the proto, and resolve with *its* data
+ *
+ * @param targetId the id of the Dash document whose data is being requests
+ * @returns the data of the document, as well as its title
+ */
+async function getData(targetId: string): Promise<DocumentElements> {
+ return new Promise<DocumentElements>((resolve, reject) => {
+ Database.Instance.getDocument(targetId, async (result: any) => {
+ const { data, proto, title } = result.fields;
+ if (data) {
+ if (data.url) {
+ resolve({ data: data.url, title });
+ } else if (data.fields) {
+ resolve({ data: data.fields, title });
+ } else {
+ reject();
+ }
+ } else if (proto) {
+ getData(proto.fieldId).then(resolve, reject);
+ } else {
+ reject();
+ }
+ });
+ });
+}
+
+/**
+ *
+ * @param file the zip file to which we write the files
+ * @param hierarchy the data structure from which we read, defining the nesting of the documents in the zip
+ * @param prefix lets us create nested folders in the zip file by continually appending to the end
+ * of the prefix with each layer of recursion.
+ *
+ * Function Call #1 => "Dash Export"
+ * Function Call #2 => "Dash Export/a nested collection"
+ * Function Call #3 => "Dash Export/a nested collection/lowest level collection"
+ * ...
+ */
+async function writeHierarchyRecursive(file: Archiver.Archiver, hierarchy: Hierarchy, prefix = "Dash Export"): Promise<void> {
+ for (const documentTitle of Object.keys(hierarchy)) {
+ const result = hierarchy[documentTitle];
+ // base case or leaf node, we've hit a url (image)
+ if (typeof result === "string") {
+ let path: string;
+ let matches: RegExpExecArray | null;
+ if ((matches = /\:1050\/files\/images\/(upload\_[\da-z]{32}.*)/g.exec(result)) !== null) {
+ // image already exists on our server
+ path = serverPathToFile(Directory.images, matches[1]);
+ } else {
+ // the image doesn't already exist on our server (may have been dragged
+ // and dropped in the browser and thus hosted remotely) so we upload it
+ // to our server and point the zip file to it, so it can bundle up the bytes
+ const information = await DashUploadUtils.UploadImage(result);
+ path = information.serverAccessPaths[SizeSuffix.Original];
+ }
+ // write the file specified by the path to the directory in the
+ // zip file given by the prefix.
+ file.file(path, { name: documentTitle, prefix });
+ } else {
+ // we've hit a collection, so we have to recurse
+ await writeHierarchyRecursive(file, result, `${prefix}/${documentTitle}`);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/GeneralGoogleManager.ts b/src/server/ApiManagers/GeneralGoogleManager.ts
new file mode 100644
index 000000000..a5240edbc
--- /dev/null
+++ b/src/server/ApiManagers/GeneralGoogleManager.ts
@@ -0,0 +1,61 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method, _permission_denied } from "../RouteManager";
+import { GoogleApiServerUtils } from "../apis/google/GoogleApiServerUtils";
+import { Database } from "../database";
+import RouteSubscriber from "../RouteSubscriber";
+
+const deletionPermissionError = "Cannot perform specialized delete outside of the development environment!";
+
+const EndpointHandlerMap = new Map<GoogleApiServerUtils.Action, GoogleApiServerUtils.ApiRouter>([
+ ["create", (api, params) => api.create(params)],
+ ["retrieve", (api, params) => api.get(params)],
+ ["update", (api, params) => api.batchUpdate(params)],
+]);
+
+export default class GeneralGoogleManager extends ApiManager {
+
+ protected initialize(register: Registration): void {
+
+ register({
+ method: Method.GET,
+ subscription: "/readGoogleAccessToken",
+ secureHandler: async ({ user, res }) => {
+ const token = await GoogleApiServerUtils.retrieveAccessToken(user.id);
+ if (!token) {
+ return res.send(GoogleApiServerUtils.generateAuthenticationUrl());
+ }
+ return res.send(token);
+ }
+ });
+
+ register({
+ method: Method.POST,
+ subscription: "/writeGoogleAccessToken",
+ secureHandler: async ({ user, req, res }) => {
+ res.send(await GoogleApiServerUtils.processNewUser(user.id, req.body.authenticationCode));
+ }
+ });
+
+ register({
+ method: Method.POST,
+ subscription: new RouteSubscriber("googleDocs").add("sector", "action"),
+ secureHandler: async ({ req, res, user }) => {
+ const sector: GoogleApiServerUtils.Service = req.params.sector as GoogleApiServerUtils.Service;
+ const action: GoogleApiServerUtils.Action = req.params.action as GoogleApiServerUtils.Action;
+ const endpoint = await GoogleApiServerUtils.GetEndpoint(GoogleApiServerUtils.Service[sector], user.id);
+ const handler = EndpointHandlerMap.get(action);
+ if (endpoint && handler) {
+ try {
+ const response = await handler(endpoint, req.body);
+ res.send(response.data);
+ } catch (e) {
+ res.send(e);
+ }
+ return;
+ }
+ res.send(undefined);
+ }
+ });
+
+ }
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/GooglePhotosManager.ts b/src/server/ApiManagers/GooglePhotosManager.ts
new file mode 100644
index 000000000..107542ce2
--- /dev/null
+++ b/src/server/ApiManagers/GooglePhotosManager.ts
@@ -0,0 +1,115 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method, _error, _success, _invalid } from "../RouteManager";
+import * as path from "path";
+import { GoogleApiServerUtils } from "../apis/google/GoogleApiServerUtils";
+import { BatchedArray, TimeUnit } from "array-batcher";
+import { GooglePhotosUploadUtils } from "../apis/google/GooglePhotosUploadUtils";
+import { Opt } from "../../new_fields/Doc";
+import { DashUploadUtils, InjectSize, SizeSuffix } from "../DashUploadUtils";
+import { Database } from "../database";
+
+const authenticationError = "Unable to authenticate Google credentials before uploading to Google Photos!";
+const mediaError = "Unable to convert all uploaded bytes to media items!";
+const UploadError = (count: number) => `Unable to upload ${count} images to Dash's server`;
+const requestError = "Unable to execute download: the body's media items were malformed.";
+const downloadError = "Encountered an error while executing downloads.";
+interface GooglePhotosUploadFailure {
+ batch: number;
+ index: number;
+ url: string;
+ reason: string;
+}
+interface MediaItem {
+ baseUrl: string;
+ filename: string;
+}
+interface NewMediaItem {
+ description: string;
+ simpleMediaItem: {
+ uploadToken: string;
+ };
+}
+const prefix = "google_photos_";
+
+/**
+ * This manager handles the creation of routes for google photos functionality.
+ */
+export default class GooglePhotosManager extends ApiManager {
+
+ protected initialize(register: Registration): void {
+
+ register({
+ method: Method.POST,
+ subscription: "/googlePhotosMediaUpload",
+ secureHandler: async ({ user, req, res }) => {
+ const { media } = req.body;
+ const token = await GoogleApiServerUtils.retrieveAccessToken(user.id);
+ if (!token) {
+ return _error(res, authenticationError);
+ }
+ const failed: GooglePhotosUploadFailure[] = [];
+ const batched = BatchedArray.from<GooglePhotosUploadUtils.UploadSource>(media, { batchSize: 25 });
+ const newMediaItems = await batched.batchedMapPatientInterval<NewMediaItem>(
+ { magnitude: 100, unit: TimeUnit.Milliseconds },
+ async (batch: any, collector: any, { completedBatches }: any) => {
+ for (let index = 0; index < batch.length; index++) {
+ const { url, description } = batch[index];
+ const fail = (reason: string) => failed.push({ reason, batch: completedBatches + 1, index, url });
+ const uploadToken = await GooglePhotosUploadUtils.DispatchGooglePhotosUpload(token, InjectSize(url, SizeSuffix.Original)).catch(fail);
+ if (!uploadToken) {
+ fail(`${path.extname(url)} is not an accepted extension`);
+ } else {
+ collector.push({
+ description,
+ simpleMediaItem: { uploadToken }
+ });
+ }
+ }
+ }
+ );
+ const failedCount = failed.length;
+ if (failedCount) {
+ console.error(`Unable to upload ${failedCount} image${failedCount === 1 ? "" : "s"} to Google's servers`);
+ console.log(failed.map(({ reason, batch, index, url }) => `@${batch}.${index}: ${url} failed:\n${reason}`).join('\n\n'));
+ }
+ return GooglePhotosUploadUtils.CreateMediaItems(token, newMediaItems, req.body.album).then(
+ results => _success(res, { results, failed }),
+ error => _error(res, mediaError, error)
+ );
+ }
+ });
+
+ register({
+ method: Method.POST,
+ subscription: "/googlePhotosMediaDownload",
+ secureHandler: async ({ req, res }) => {
+ const contents: { mediaItems: MediaItem[] } = req.body;
+ let failed = 0;
+ if (contents) {
+ const completed: Opt<DashUploadUtils.ImageUploadInformation>[] = [];
+ for (const item of contents.mediaItems) {
+ const { contentSize, ...attributes } = await DashUploadUtils.InspectImage(item.baseUrl);
+ const found: Opt<DashUploadUtils.ImageUploadInformation> = await Database.Auxiliary.QueryUploadHistory(contentSize!);
+ if (!found) {
+ const upload = await DashUploadUtils.UploadInspectedImage({ contentSize, ...attributes }, item.filename, prefix).catch(error => _error(res, downloadError, error));
+ if (upload) {
+ completed.push(upload);
+ await Database.Auxiliary.LogUpload(upload);
+ } else {
+ failed++;
+ }
+ } else {
+ completed.push(found);
+ }
+ }
+ if (failed) {
+ return _error(res, UploadError(failed));
+ }
+ return _success(res, completed);
+ }
+ _invalid(res, requestError);
+ }
+ });
+
+ }
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/PDFManager.ts b/src/server/ApiManagers/PDFManager.ts
new file mode 100644
index 000000000..0136b758e
--- /dev/null
+++ b/src/server/ApiManagers/PDFManager.ts
@@ -0,0 +1,115 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method } from "../RouteManager";
+import RouteSubscriber from "../RouteSubscriber";
+import { existsSync, createReadStream, createWriteStream } from "fs";
+import * as Pdfjs from 'pdfjs-dist';
+import { createCanvas } from "canvas";
+const imageSize = require("probe-image-size");
+import * as express from "express";
+import * as path from "path";
+import { Directory, serverPathToFile, clientPathToFile } from "./UploadManager";
+import { red } from "colors";
+
+export default class PDFManager extends ApiManager {
+
+ protected initialize(register: Registration): void {
+
+ register({
+ method: Method.GET,
+ subscription: new RouteSubscriber("thumbnail").add("filename"),
+ secureHandler: ({ req, res }) => getOrCreateThumbnail(req.params.filename, res)
+ });
+
+ }
+
+}
+
+async function getOrCreateThumbnail(thumbnailName: string, res: express.Response): Promise<void> {
+ const noExtension = thumbnailName.substring(0, thumbnailName.length - ".png".length);
+ const pageString = noExtension.split('-')[1];
+ const pageNumber = parseInt(pageString);
+ return new Promise<void>(async resolve => {
+ const path = serverPathToFile(Directory.pdf_thumbnails, thumbnailName);
+ if (existsSync(path)) {
+ const existingThumbnail = createReadStream(path);
+ const { err, viewport } = await new Promise<any>(resolve => {
+ imageSize(existingThumbnail, (err: any, viewport: any) => resolve({ err, viewport }));
+ });
+ if (err) {
+ console.log(red(`In PDF thumbnail response, unable to determine dimensions of ${thumbnailName}:`));
+ console.log(err);
+ return;
+ }
+ dispatchThumbnail(res, viewport, thumbnailName);
+ } else {
+ const offset = thumbnailName.length - pageString.length - 5;
+ const name = thumbnailName.substring(0, offset) + ".pdf";
+ const path = serverPathToFile(Directory.pdfs, name);
+ await CreateThumbnail(path, pageNumber, res);
+ }
+ resolve();
+ });
+}
+
+async function CreateThumbnail(file: string, pageNumber: number, res: express.Response) {
+ const documentProxy = await Pdfjs.getDocument(file).promise;
+ const factory = new NodeCanvasFactory();
+ const page = await documentProxy.getPage(pageNumber);
+ const viewport = page.getViewport(1 as any);
+ const { canvas, context } = factory.create(viewport.width, viewport.height);
+ const renderContext = {
+ canvasContext: context,
+ canvasFactory: factory,
+ viewport
+ };
+ await page.render(renderContext).promise;
+ const pngStream = canvas.createPNGStream();
+ const filenames = path.basename(file).split(".");
+ const thumbnailName = `${filenames[0]}-${pageNumber}.png`;
+ const pngFile = serverPathToFile(Directory.pdf_thumbnails, thumbnailName);
+ const out = createWriteStream(pngFile);
+ pngStream.pipe(out);
+ return new Promise<void>((resolve, reject) => {
+ out.on("finish", () => {
+ dispatchThumbnail(res, viewport, thumbnailName);
+ resolve();
+ });
+ out.on("error", error => {
+ console.log(red(`In PDF thumbnail creation, encountered the following error when piping ${pngFile}:`));
+ console.log(error);
+ reject();
+ });
+ });
+}
+
+function dispatchThumbnail(res: express.Response, { width, height }: Pdfjs.PDFPageViewport, thumbnailName: string) {
+ res.send({
+ path: clientPathToFile(Directory.pdf_thumbnails, thumbnailName),
+ width,
+ height
+ });
+}
+
+class NodeCanvasFactory {
+
+ create = (width: number, height: number) => {
+ const canvas = createCanvas(width, height);
+ const context = canvas.getContext('2d');
+ return {
+ canvas,
+ context
+ };
+ }
+
+ reset = (canvasAndContext: any, width: number, height: number) => {
+ canvasAndContext.canvas.width = width;
+ canvasAndContext.canvas.height = height;
+ }
+
+ destroy = (canvasAndContext: any) => {
+ canvasAndContext.canvas.width = 0;
+ canvasAndContext.canvas.height = 0;
+ canvasAndContext.canvas = null;
+ canvasAndContext.context = null;
+ }
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/SearchManager.ts b/src/server/ApiManagers/SearchManager.ts
new file mode 100644
index 000000000..4ce12f9f3
--- /dev/null
+++ b/src/server/ApiManagers/SearchManager.ts
@@ -0,0 +1,93 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method } from "../RouteManager";
+import { Search } from "../Search";
+const findInFiles = require('find-in-files');
+import * as path from 'path';
+import { pathToDirectory, Directory } from "./UploadManager";
+import { red, cyan, yellow } from "colors";
+import RouteSubscriber from "../RouteSubscriber";
+import { exec } from "child_process";
+import { onWindows } from "..";
+import { get } from "request-promise";
+
+export class SearchManager extends ApiManager {
+
+ protected initialize(register: Registration): void {
+
+ register({
+ method: Method.GET,
+ subscription: new RouteSubscriber("solr").add("action"),
+ secureHandler: async ({ req, res }) => {
+ const { action } = req.params;
+ if (["start", "stop"].includes(action)) {
+ const status = req.params.action === "start";
+ const success = await SolrManager.SetRunning(status);
+ console.log(success ? `Successfully ${status ? "started" : "stopped"} Solr!` : `Uh oh! Check the console for the error that occurred while ${status ? "starting" : "stopping"} Solr`);
+ }
+ res.redirect("/home");
+ }
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/textsearch",
+ secureHandler: async ({ req, res }) => {
+ const q = req.query.q;
+ if (q === undefined) {
+ res.send([]);
+ return;
+ }
+ const results = await findInFiles.find({ 'term': q, 'flags': 'ig' }, pathToDirectory(Directory.text), ".txt$");
+ const resObj: { ids: string[], numFound: number, lines: string[] } = { ids: [], numFound: 0, lines: [] };
+ for (const result in results) {
+ resObj.ids.push(path.basename(result, ".txt").replace(/upload_/, ""));
+ resObj.lines.push(results[result].line);
+ resObj.numFound++;
+ }
+ res.send(resObj);
+ }
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/search",
+ secureHandler: async ({ req, res }) => {
+ const solrQuery: any = {};
+ ["q", "fq", "start", "rows", "hl", "hl.fl"].forEach(key => solrQuery[key] = req.query[key]);
+ if (solrQuery.q === undefined) {
+ res.send([]);
+ return;
+ }
+ const results = await Search.search(solrQuery);
+ res.send(results);
+ }
+ });
+
+ }
+
+}
+
+export namespace SolrManager {
+
+ const command = onWindows ? "solr.cmd" : "solr";
+
+ export async function SetRunning(status: boolean): Promise<boolean> {
+ const args = status ? "start" : "stop -p 8983";
+ console.log(`solr management: trying to ${args}`);
+ exec(`${command} ${args}`, { cwd: "./solr-8.3.1/bin" }, (error, stdout, stderr) => {
+ if (error) {
+ console.log(red(`solr management error: unable to ${args} server`));
+ console.log(red(error.message));
+ }
+ console.log(cyan(stdout));
+ console.log(yellow(stderr));
+ });
+ try {
+ await get("http://localhost:8983");
+ return true;
+ } catch {
+ return false;
+ }
+ }
+
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/SessionManager.ts b/src/server/ApiManagers/SessionManager.ts
new file mode 100644
index 000000000..f1629b8f0
--- /dev/null
+++ b/src/server/ApiManagers/SessionManager.ts
@@ -0,0 +1,58 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method, _permission_denied, AuthorizedCore, SecureHandler } from "../RouteManager";
+import RouteSubscriber from "../RouteSubscriber";
+import { sessionAgent } from "..";
+import { DashSessionAgent } from "../DashSession/DashSessionAgent";
+
+const permissionError = "You are not authorized!";
+
+export default class SessionManager extends ApiManager {
+
+ private secureSubscriber = (root: string, ...params: string[]) => new RouteSubscriber(root).add("session_key", ...params);
+
+ private authorizedAction = (handler: SecureHandler) => {
+ return (core: AuthorizedCore) => {
+ const { req: { params }, res, isRelease } = core;
+ if (!isRelease) {
+ return res.send("This can be run only on the release server.");
+ }
+ if (params.session_key !== process.env.session_key) {
+ return _permission_denied(res, permissionError);
+ }
+ return handler(core);
+ };
+ }
+
+ protected initialize(register: Registration): void {
+
+ register({
+ method: Method.GET,
+ subscription: this.secureSubscriber("debug", "to?"),
+ secureHandler: this.authorizedAction(async ({ req: { params }, res }) => {
+ const to = params.to || DashSessionAgent.notificationRecipient;
+ const { error } = await sessionAgent.serverWorker.emit("debug", { to });
+ res.send(error ? error.message : `Your request was successful: the server captured and compressed (but did not save) a new back up. It was sent to ${to}.`);
+ })
+ });
+
+ register({
+ method: Method.GET,
+ subscription: this.secureSubscriber("backup"),
+ secureHandler: this.authorizedAction(async ({ res }) => {
+ const { error } = await sessionAgent.serverWorker.emit("backup");
+ res.send(error ? error.message : "Your request was successful: the server successfully created a new back up.");
+ })
+ });
+
+ register({
+ method: Method.GET,
+ subscription: this.secureSubscriber("kill"),
+ secureHandler: this.authorizedAction(({ res }) => {
+ res.send("Your request was successful: the server and its session have been killed.");
+ sessionAgent.killSession("an authorized user has manually ended the server session via the /kill route");
+ })
+ });
+
+ }
+
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts
new file mode 100644
index 000000000..a92b613b7
--- /dev/null
+++ b/src/server/ApiManagers/UploadManager.ts
@@ -0,0 +1,233 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method, _success } from "../RouteManager";
+import * as formidable from 'formidable';
+import v4 = require('uuid/v4');
+const AdmZip = require('adm-zip');
+import { extname, basename, dirname } from 'path';
+import { createReadStream, createWriteStream, unlink, readFileSync } from "fs";
+import { publicDirectory, filesDirectory } from "..";
+import { Database } from "../database";
+import { DashUploadUtils, SizeSuffix } from "../DashUploadUtils";
+import * as sharp from 'sharp';
+import { AcceptibleMedia } from "../SharedMediaTypes";
+import { normalize } from "path";
+const imageDataUri = require('image-data-uri');
+
+export enum Directory {
+ parsed_files = "parsed_files",
+ images = "images",
+ videos = "videos",
+ pdfs = "pdfs",
+ text = "text",
+ pdf_thumbnails = "pdf_thumbnails"
+}
+
+export function serverPathToFile(directory: Directory, filename: string) {
+ return normalize(`${filesDirectory}/${directory}/${filename}`);
+}
+
+export function pathToDirectory(directory: Directory) {
+ return normalize(`${filesDirectory}/${directory}`);
+}
+
+export function clientPathToFile(directory: Directory, filename: string) {
+ return `/files/${directory}/${filename}`;
+}
+
+export default class UploadManager extends ApiManager {
+
+ protected initialize(register: Registration): void {
+
+ register({
+ method: Method.POST,
+ subscription: "/uploadFormData",
+ secureHandler: async ({ req, res }) => {
+ const form = new formidable.IncomingForm();
+ form.uploadDir = pathToDirectory(Directory.parsed_files);
+ form.keepExtensions = true;
+ return new Promise<void>(resolve => {
+ form.parse(req, async (_err, _fields, files) => {
+ const results: any[] = [];
+ for (const key in files) {
+ const result = await DashUploadUtils.upload(files[key]);
+ result && results.push(result);
+ }
+ _success(res, results);
+ resolve();
+ });
+ });
+ }
+ });
+
+ register({
+ method: Method.POST,
+ subscription: "/uploadRemoteImage",
+ secureHandler: async ({ req, res }) => {
+ const { sources } = req.body;
+ if (Array.isArray(sources)) {
+ return res.send(await Promise.all(sources.map(url => DashUploadUtils.UploadImage(url))));
+ }
+ res.send();
+ }
+ });
+
+ register({
+ method: Method.POST,
+ subscription: "/uploadDoc",
+ secureHandler: ({ req, res }) => {
+ const form = new formidable.IncomingForm();
+ form.keepExtensions = true;
+ // let path = req.body.path;
+ const ids: { [id: string]: string } = {};
+ let remap = true;
+ const getId = (id: string): string => {
+ if (!remap) return id;
+ if (id.endsWith("Proto")) return id;
+ if (id in ids) {
+ return ids[id];
+ } else {
+ return ids[id] = v4();
+ }
+ };
+ const mapFn = (doc: any) => {
+ if (doc.id) {
+ doc.id = getId(doc.id);
+ }
+ for (const key in doc.fields) {
+ if (!doc.fields.hasOwnProperty(key)) {
+ continue;
+ }
+ const field = doc.fields[key];
+ if (field === undefined || field === null) {
+ continue;
+ }
+
+ if (field.__type === "proxy" || field.__type === "prefetch_proxy") {
+ field.fieldId = getId(field.fieldId);
+ } else if (field.__type === "script" || field.__type === "computed") {
+ if (field.captures) {
+ field.captures.fieldId = getId(field.captures.fieldId);
+ }
+ } else if (field.__type === "list") {
+ mapFn(field);
+ } else if (typeof field === "string") {
+ const re = /("(?:dataD|d)ocumentId"\s*:\s*")([\w\-]*)"/g;
+ doc.fields[key] = (field as any).replace(re, (match: any, p1: string, p2: string) => {
+ return `${p1}${getId(p2)}"`;
+ });
+ } else if (field.__type === "RichTextField") {
+ const re = /("href"\s*:\s*")(.*?)"/g;
+ field.Data = field.Data.replace(re, (match: any, p1: string, p2: string) => {
+ return `${p1}${getId(p2)}"`;
+ });
+ }
+ }
+ };
+ return new Promise<void>(resolve => {
+ form.parse(req, async (_err, fields, files) => {
+ remap = fields.remap !== "false";
+ let id: string = "";
+ try {
+ for (const name in files) {
+ const path_2 = files[name].path;
+ const zip = new AdmZip(path_2);
+ zip.getEntries().forEach((entry: any) => {
+ if (!entry.entryName.startsWith("files/")) return;
+ let directory = dirname(entry.entryName) + "/";
+ const extension = extname(entry.entryName);
+ const base = basename(entry.entryName).split(".")[0];
+ try {
+ zip.extractEntryTo(entry.entryName, publicDirectory, true, false);
+ directory = "/" + directory;
+
+ createReadStream(publicDirectory + directory + base + extension).pipe(createWriteStream(publicDirectory + directory + base + "_o" + extension));
+ createReadStream(publicDirectory + directory + base + extension).pipe(createWriteStream(publicDirectory + directory + base + "_s" + extension));
+ createReadStream(publicDirectory + directory + base + extension).pipe(createWriteStream(publicDirectory + directory + base + "_m" + extension));
+ createReadStream(publicDirectory + directory + base + extension).pipe(createWriteStream(publicDirectory + directory + base + "_l" + extension));
+ } catch (e) {
+ console.log(e);
+ }
+ });
+ const json = zip.getEntry("doc.json");
+ let docs: any;
+ try {
+ const data = JSON.parse(json.getData().toString("utf8"));
+ docs = data.docs;
+ id = data.id;
+ docs = Object.keys(docs).map(key => docs[key]);
+ docs.forEach(mapFn);
+ await Promise.all(docs.map((doc: any) => new Promise(res => Database.Instance.replace(doc.id, doc, (err, r) => {
+ err && console.log(err);
+ res();
+ }, true, "newDocuments"))));
+ } catch (e) { console.log(e); }
+ unlink(path_2, () => { });
+ }
+ if (id) {
+ res.send(JSON.stringify(getId(id)));
+ } else {
+ res.send(JSON.stringify("error"));
+ }
+ } catch (e) { console.log(e); }
+ resolve();
+ });
+ });
+ }
+ });
+
+ register({
+ method: Method.POST,
+ subscription: "/inspectImage",
+ secureHandler: async ({ req, res }) => {
+ const { source } = req.body;
+ if (typeof source === "string") {
+ return res.send(await DashUploadUtils.InspectImage(source));
+ }
+ res.send({});
+ }
+ });
+
+ register({
+ method: Method.POST,
+ subscription: "/uploadURI",
+ secureHandler: ({ req, res }) => {
+ const uri = req.body.uri;
+ const filename = req.body.name;
+ if (!uri || !filename) {
+ res.status(401).send("incorrect parameters specified");
+ return;
+ }
+ return imageDataUri.outputFile(uri, serverPathToFile(Directory.images, filename)).then((savedName: string) => {
+ const ext = extname(savedName).toLowerCase();
+ const { pngs, jpgs } = AcceptibleMedia;
+ const resizers = [
+ { resizer: sharp().resize(100, undefined, { withoutEnlargement: true }), suffix: "_s" },
+ { resizer: sharp().resize(400, undefined, { withoutEnlargement: true }), suffix: "_m" },
+ { resizer: sharp().resize(900, undefined, { withoutEnlargement: true }), suffix: "_l" },
+ ];
+ let isImage = false;
+ if (pngs.includes(ext)) {
+ resizers.forEach(element => {
+ element.resizer = element.resizer.png();
+ });
+ isImage = true;
+ } else if (jpgs.includes(ext)) {
+ resizers.forEach(element => {
+ element.resizer = element.resizer.jpeg();
+ });
+ isImage = true;
+ }
+ if (isImage) {
+ resizers.forEach(resizer => {
+ const path = serverPathToFile(Directory.images, filename + resizer.suffix + ext);
+ createReadStream(savedName).pipe(resizer.resizer).pipe(createWriteStream(path));
+ });
+ }
+ res.send(clientPathToFile(Directory.images, filename + ext));
+ });
+ }
+ });
+
+ }
+
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/UserManager.ts b/src/server/ApiManagers/UserManager.ts
new file mode 100644
index 000000000..b0d868918
--- /dev/null
+++ b/src/server/ApiManagers/UserManager.ts
@@ -0,0 +1,126 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method } from "../RouteManager";
+import { Database } from "../database";
+import { msToTime } from "../ActionUtilities";
+import * as bcrypt from "bcrypt-nodejs";
+import { Opt } from "../../new_fields/Doc";
+
+export const timeMap: { [id: string]: number } = {};
+interface ActivityUnit {
+ user: string;
+ duration: number;
+}
+
+export default class UserManager extends ApiManager {
+
+ protected initialize(register: Registration): void {
+
+ register({
+ method: Method.GET,
+ subscription: "/getUsers",
+ secureHandler: async ({ res }) => {
+ const cursor = await Database.Instance.query({}, { email: 1, userDocumentId: 1 }, "users");
+ const results = await cursor.toArray();
+ res.send(results.map(user => ({ email: user.email, userDocumentId: user.userDocumentId })));
+ }
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/getUserDocumentId",
+ secureHandler: ({ res, user }) => res.send(user.userDocumentId)
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/getCurrentUser",
+ secureHandler: ({ res, user }) => res.send(JSON.stringify(user)),
+ publicHandler: ({ res }) => res.send(JSON.stringify({ id: "__guest__", email: "" }))
+ });
+
+ register({
+ method: Method.POST,
+ subscription: '/internalResetPassword',
+ secureHandler: async ({ user, req, res }) => {
+ const result: any = {};
+ const { curr_pass, new_pass, new_confirm } = req.body;
+ // perhaps should assert whether curr password is entered correctly
+ const validated = await new Promise<Opt<boolean>>(resolve => {
+ bcrypt.compare(curr_pass, user.password, (err, passwords_match) => {
+ if (err || !passwords_match) {
+ result.error = [{ msg: "Incorrect current password" }];
+ res.send(result);
+ resolve(undefined);
+ } else {
+ resolve(passwords_match);
+ }
+ });
+ });
+
+ if (validated === undefined) {
+ return;
+ }
+
+ req.assert("new_pass", "Password must be at least 4 characters long").len({ min: 4 });
+ req.assert("new_confirm", "Passwords do not match").equals(new_pass);
+ if (curr_pass === new_pass) {
+ result.error = [{ msg: "Current and new password are the same" }];
+ }
+ // was there error in validating new passwords?
+ if (req.validationErrors()) {
+ // was there error?
+ result.error = req.validationErrors();
+ }
+
+ // will only change password if there are no errors.
+ if (!result.error) {
+ user.password = new_pass;
+ user.passwordResetToken = undefined;
+ user.passwordResetExpires = undefined;
+ }
+
+ user.save(err => {
+ if (err) {
+ result.error = [{ msg: "Error while saving new password" }];
+ }
+ });
+
+ res.send(result);
+ }
+ });
+
+
+
+ register({
+ method: Method.GET,
+ subscription: "/activity",
+ secureHandler: ({ res }) => {
+ const now = Date.now();
+
+ const activeTimes: ActivityUnit[] = [];
+ const inactiveTimes: ActivityUnit[] = [];
+
+ for (const user in timeMap) {
+ const time = timeMap[user];
+ const duration = now - time;
+ const target = (duration / 1000) < (60 * 5) ? activeTimes : inactiveTimes;
+ target.push({ user, duration });
+ }
+
+ const process = (target: { user: string, duration: number }[]) => {
+ const comparator = (first: ActivityUnit, second: ActivityUnit) => first.duration - second.duration;
+ const sorted = target.sort(comparator);
+ return sorted.map(({ user, duration }) => `${user} (${msToTime(duration)})`);
+ };
+
+ res.render("user_activity.pug", {
+ title: "User Activity",
+ active: process(activeTimes),
+ inactive: process(inactiveTimes)
+ });
+ }
+ });
+
+ }
+
+} \ No newline at end of file
diff --git a/src/server/ApiManagers/UtilManager.ts b/src/server/ApiManagers/UtilManager.ts
new file mode 100644
index 000000000..32aecd3c6
--- /dev/null
+++ b/src/server/ApiManagers/UtilManager.ts
@@ -0,0 +1,101 @@
+import ApiManager, { Registration } from "./ApiManager";
+import { Method } from "../RouteManager";
+import { exec } from 'child_process';
+import { command_line } from "../ActionUtilities";
+import RouteSubscriber from "../RouteSubscriber";
+import { red } from "colors";
+import { IBM_Recommender } from "../../client/apis/IBM_Recommender";
+import { Recommender } from "../Recommender";
+
+const recommender = new Recommender();
+recommender.testModel();
+
+export default class UtilManager extends ApiManager {
+
+ protected initialize(register: Registration): void {
+
+ register({
+ method: Method.GET,
+ subscription: new RouteSubscriber("environment").add("key"),
+ secureHandler: ({ req, res }) => {
+ const { key } = req.params;
+ const value = process.env[key];
+ if (!value) {
+ console.log(red(`process.env.${key} is not defined.`));
+ }
+ return res.send(value);
+ }
+ });
+
+ register({
+ method: Method.POST,
+ subscription: "/IBMAnalysis",
+ secureHandler: async ({ req, res }) => res.send(await IBM_Recommender.analyze(req.body))
+ });
+
+ register({
+ method: Method.POST,
+ subscription: "/recommender",
+ secureHandler: async ({ req, res }) => {
+ const keyphrases = req.body.keyphrases;
+ const wordvecs = await recommender.vectorize(keyphrases);
+ let embedding: Float32Array = new Float32Array();
+ if (wordvecs && wordvecs.dataSync()) {
+ embedding = wordvecs.dataSync() as Float32Array;
+ }
+ res.send(embedding);
+ }
+ });
+
+
+ register({
+ method: Method.GET,
+ subscription: "/pull",
+ secureHandler: async ({ res }) => {
+ return new Promise<void>(resolve => {
+ exec('"C:\\Program Files\\Git\\git-bash.exe" -c "git pull"', err => {
+ if (err) {
+ res.send(err.message);
+ return;
+ }
+ res.redirect("/");
+ resolve();
+ });
+ });
+ }
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/buxton",
+ secureHandler: async ({ res }) => {
+ const cwd = './src/scraping/buxton';
+
+ const onResolved = (stdout: string) => { console.log(stdout); res.redirect("/"); };
+ const onRejected = (err: any) => { console.error(err.message); res.send(err); };
+ const tryPython3 = () => command_line('python3 scraper.py', cwd).then(onResolved, onRejected);
+
+ return command_line('python scraper.py', cwd).then(onResolved, tryPython3);
+ },
+ });
+
+ register({
+ method: Method.GET,
+ subscription: "/version",
+ secureHandler: ({ res }) => {
+ return new Promise<void>(resolve => {
+ exec('"C:\\Program Files\\Git\\bin\\git.exe" rev-parse HEAD', (err, stdout) => {
+ if (err) {
+ res.send(err.message);
+ return;
+ }
+ res.send(stdout);
+ });
+ resolve();
+ });
+ }
+ });
+
+ }
+
+} \ No newline at end of file
diff --git a/src/server/DashSession/DashSessionAgent.ts b/src/server/DashSession/DashSessionAgent.ts
new file mode 100644
index 000000000..c55e01243
--- /dev/null
+++ b/src/server/DashSession/DashSessionAgent.ts
@@ -0,0 +1,223 @@
+import { Email, pathFromRoot } from "../ActionUtilities";
+import { red, yellow, green, cyan } from "colors";
+import { get } from "request-promise";
+import { Utils } from "../../Utils";
+import { WebSocket } from "../Websocket/Websocket";
+import { MessageStore } from "../Message";
+import { launchServer, onWindows } from "..";
+import { readdirSync, statSync, createWriteStream, readFileSync, unlinkSync } from "fs";
+import * as Archiver from "archiver";
+import { resolve } from "path";
+import { AppliedSessionAgent, MessageHandler, ExitHandler, Monitor, ServerWorker } from "resilient-server-session";
+import rimraf = require("rimraf");
+
+/**
+ * If we're the monitor (master) thread, we should launch the monitor logic for the session.
+ * Otherwise, we must be on a worker thread that was spawned *by* the monitor (master) thread, and thus
+ * our job should be to run the server.
+ */
+export class DashSessionAgent extends AppliedSessionAgent {
+
+ private readonly signature = "-Dash Server Session Manager";
+ private readonly releaseDesktop = pathFromRoot("../../Desktop");
+
+ /**
+ * The core method invoked when the single master thread is initialized.
+ * Installs event hooks, repl commands and additional IPC listeners.
+ */
+ protected async initializeMonitor(monitor: Monitor, sessionKey: string): Promise<void> {
+ await this.dispatchSessionPassword(sessionKey);
+ monitor.addReplCommand("pull", [], () => monitor.exec("git pull"));
+ monitor.addReplCommand("solr", [/start|stop|index/], this.executeSolrCommand);
+ monitor.addReplCommand("backup", [], this.backup);
+ monitor.addReplCommand("debug", [/\S+\@\S+/], async ([to]) => this.dispatchZippedDebugBackup(to));
+ monitor.on("backup", this.backup);
+ monitor.on("debug", async ({ to }) => this.dispatchZippedDebugBackup(to));
+ monitor.coreHooks.onCrashDetected(this.dispatchCrashReport);
+ }
+
+ /**
+ * The core method invoked when a server worker thread is initialized.
+ * Installs logic to be executed when the server worker dies.
+ */
+ protected async initializeServerWorker(): Promise<ServerWorker> {
+ const worker = ServerWorker.Create(launchServer); // server initialization delegated to worker
+ worker.addExitHandler(this.notifyClient);
+ return worker;
+ }
+
+ /**
+ * Prepares the body of the email with instructions on restoring the transmitted remote database backup locally.
+ */
+ private _remoteDebugInstructions: string | undefined;
+ private generateDebugInstructions = (zipName: string, target: string): string => {
+ if (!this._remoteDebugInstructions) {
+ this._remoteDebugInstructions = readFileSync(resolve(__dirname, "./templates/remote_debug_instructions.txt"), { encoding: "utf8" });
+ }
+ return this._remoteDebugInstructions
+ .replace(/__zipname__/, zipName)
+ .replace(/__target__/, target)
+ .replace(/__signature__/, this.signature);
+ }
+
+ /**
+ * Prepares the body of the email with information regarding a crash event.
+ */
+ private _crashInstructions: string | undefined;
+ private generateCrashInstructions({ name, message, stack }: Error): string {
+ if (!this._crashInstructions) {
+ this._crashInstructions = readFileSync(resolve(__dirname, "./templates/crash_instructions.txt"), { encoding: "utf8" });
+ }
+ return this._crashInstructions
+ .replace(/__name__/, name || "[no error name found]")
+ .replace(/__message__/, message || "[no error message found]")
+ .replace(/__stack__/, stack || "[no error stack found]")
+ .replace(/__signature__/, this.signature);
+ }
+
+ /**
+ * This sends a pseudorandomly generated guid to the configuration's recipients, allowing them alone
+ * to kill the server via the /kill/:key route.
+ */
+ private dispatchSessionPassword = async (sessionKey: string): Promise<void> => {
+ const { mainLog } = this.sessionMonitor;
+ const { notificationRecipient } = DashSessionAgent;
+ mainLog(green("dispatching session key..."));
+ const error = await Email.dispatch({
+ to: notificationRecipient,
+ subject: "Dash Release Session Admin Authentication Key",
+ content: [
+ `Here's the key for this session (started @ ${new Date().toUTCString()}):`,
+ sessionKey,
+ this.signature
+ ].join("\n\n")
+ });
+ if (error) {
+ this.sessionMonitor.mainLog(red(`dispatch failure @ ${notificationRecipient} (${yellow(error.message)})`));
+ mainLog(red("distribution of session key experienced errors"));
+ } else {
+ mainLog(green("successfully distributed session key to recipients"));
+ }
+ }
+
+ /**
+ * This sends an email with the generated crash report.
+ */
+ private dispatchCrashReport: MessageHandler<{ error: Error }> = async ({ error: crashCause }) => {
+ const { mainLog } = this.sessionMonitor;
+ const { notificationRecipient } = DashSessionAgent;
+ const error = await Email.dispatch({
+ to: notificationRecipient,
+ subject: "Dash Web Server Crash",
+ content: this.generateCrashInstructions(crashCause)
+ });
+ if (error) {
+ this.sessionMonitor.mainLog(red(`dispatch failure @ ${notificationRecipient} ${yellow(`(${error.message})`)}`));
+ mainLog(red("distribution of crash notification experienced errors"));
+ } else {
+ mainLog(green("successfully distributed crash notification to recipients"));
+ }
+ }
+
+ /**
+ * Logic for interfacing with Solr. Either starts it,
+ * stops it, or rebuilds its indicies.
+ */
+ private executeSolrCommand = async (args: string[]): Promise<void> => {
+ const { exec, mainLog } = this.sessionMonitor;
+ const action = args[0];
+ if (action === "index") {
+ exec("npx ts-node ./updateSearch.ts", { cwd: pathFromRoot("./src/server") });
+ } else {
+ const command = `${onWindows ? "solr.cmd" : "solr"} ${args[0] === "start" ? "start" : "stop -p 8983"}`;
+ await exec(command, { cwd: "./solr-8.3.1/bin" });
+ try {
+ await get("http://localhost:8983");
+ mainLog(green("successfully connected to 8983 after running solr initialization"));
+ } catch {
+ mainLog(red("unable to connect at 8983 after running solr initialization"));
+ }
+ }
+ }
+
+ /**
+ * Broadcast to all clients that their connection
+ * is no longer valid, and explain why / what to expect.
+ */
+ private notifyClient: ExitHandler = reason => {
+ const { _socket } = WebSocket;
+ if (_socket) {
+ const message = typeof reason === "boolean" ? (reason ? "exit" : "temporary") : "crash";
+ Utils.Emit(_socket, MessageStore.ConnectionTerminated, message);
+ }
+ }
+
+ /**
+ * Performs a backup of the database, saved to the desktop subdirectory.
+ * This should work as is only on our specific release server.
+ */
+ private backup = async (): Promise<void> => this.sessionMonitor.exec("backup.bat", { cwd: this.releaseDesktop });
+
+ /**
+ * Compress either a brand new backup or the most recent backup and send it
+ * as an attachment to an email, dispatched to the requested recipient.
+ * @param mode specifies whether or not to make a new backup before exporting
+ * @param to the recipient of the email
+ */
+ private async dispatchZippedDebugBackup(to: string): Promise<void> {
+ const { mainLog } = this.sessionMonitor;
+ try {
+ // if desired, complete an immediate backup to send
+ await this.backup();
+ mainLog("backup complete");
+
+ const backupsDirectory = `${this.releaseDesktop}/backups`;
+
+ // sort all backups by their modified time, and choose the most recent one
+ const target = readdirSync(backupsDirectory).map(filename => ({
+ modifiedTime: statSync(`${backupsDirectory}/${filename}`).mtimeMs,
+ filename
+ })).sort((a, b) => b.modifiedTime - a.modifiedTime)[0].filename;
+ mainLog(`targeting ${target}...`);
+
+ // create a zip file and to it, write the contents of the backup directory
+ const zipName = `${target}.zip`;
+ const zipPath = `${this.releaseDesktop}/${zipName}`;
+ const targetPath = `${backupsDirectory}/${target}`;
+ const output = createWriteStream(zipPath);
+ const zip = Archiver('zip');
+ zip.pipe(output);
+ zip.directory(`${targetPath}/Dash`, false);
+ await zip.finalize();
+ mainLog(`zip finalized with size ${statSync(zipPath).size} bytes, saved to ${zipPath}`);
+
+ // dispatch the email to the recipient, containing the finalized zip file
+ const error = await Email.dispatch({
+ to,
+ subject: `Remote debug: compressed backup of ${target}...`,
+ content: this.generateDebugInstructions(zipName, target),
+ attachments: [{ filename: zipName, path: zipPath }]
+ });
+
+ // since this is intended to be a zero-footprint operation, clean up
+ // by unlinking both the backup generated earlier in the function and the compressed zip file.
+ // to generate a persistent backup, just run backup.
+ unlinkSync(zipPath);
+ rimraf.sync(targetPath);
+
+ // indicate success or failure
+ mainLog(`${error === null ? green("successfully dispatched") : red("failed to dispatch")} ${zipName} to ${cyan(to)}`);
+ error && mainLog(red(error.message));
+ } catch (error) {
+ mainLog(red("unable to dispatch zipped backup..."));
+ mainLog(red(error.message));
+ }
+ }
+
+}
+
+export namespace DashSessionAgent {
+
+ export const notificationRecipient = "brownptcdash@gmail.com";
+
+} \ No newline at end of file
diff --git a/src/server/DashSession/templates/crash_instructions.txt b/src/server/DashSession/templates/crash_instructions.txt
new file mode 100644
index 000000000..65417919d
--- /dev/null
+++ b/src/server/DashSession/templates/crash_instructions.txt
@@ -0,0 +1,14 @@
+You, as a Dash Administrator, are being notified of a server crash event. Here's what we know:
+
+name:
+__name__
+
+message:
+__message__
+
+stack:
+__stack__
+
+The server is already restarting itself, but if you're concerned, use the Remote Desktop Connection to monitor progress.
+
+__signature__ \ No newline at end of file
diff --git a/src/server/DashSession/templates/remote_debug_instructions.txt b/src/server/DashSession/templates/remote_debug_instructions.txt
new file mode 100644
index 000000000..c279c460a
--- /dev/null
+++ b/src/server/DashSession/templates/remote_debug_instructions.txt
@@ -0,0 +1,16 @@
+Instructions:
+
+Download this attachment, open your downloads folder and find this file (__zipname__).
+Right click on the zip file and select 'Extract to __target__\'.
+Open up the command line, and remember that you can get the path to any file or directory by literally dragging it from the file system and dropping it onto the terminal.
+Unless it's in your path, you'll want to navigate to the MongoDB bin directory, given for Windows:
+
+cd '/c/Program Files/MongoDB/Server/[your version, i.e. 4.0, goes here]/bin'
+
+Then run the following command (if you're in the bin folder, make that ./mongorestore ...):
+
+mongorestore --gzip [/path/to/directory/you/just/unzipped] --db Dash
+
+Assuming everything runs well, this will mirror your local database with that of the server. Now, just start the server locally and debug.
+
+__signature__ \ No newline at end of file
diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts
index 46d897339..cb7104757 100644
--- a/src/server/DashUploadUtils.ts
+++ b/src/server/DashUploadUtils.ts
@@ -1,51 +1,114 @@
-import * as fs from 'fs';
+import { unlinkSync, createWriteStream, readFileSync, rename } from 'fs';
import { Utils } from '../Utils';
import * as path from 'path';
import * as sharp from 'sharp';
import request = require('request-promise');
import { ExifData, ExifImage } from 'exif';
import { Opt } from '../new_fields/Doc';
+import { AcceptibleMedia } from './SharedMediaTypes';
+import { filesDirectory } from '.';
+import { File } from 'formidable';
+import { basename } from "path";
+import { createIfNotExists } from './ActionUtilities';
+import { ParsedPDF } from "../server/PdfTypes";
+const parse = require('pdf-parse');
+import { Directory, serverPathToFile, clientPathToFile, pathToDirectory } from './ApiManagers/UploadManager';
+import { red } from 'colors';
+const requestImageSize = require("../client/util/request-image-size");
-const uploadDirectory = path.join(__dirname, './public/files/');
+export enum SizeSuffix {
+ Small = "_s",
+ Medium = "_m",
+ Large = "_l",
+ Original = "_o"
+}
+
+export function InjectSize(filename: string, size: SizeSuffix) {
+ const extension = path.extname(filename).toLowerCase();
+ return filename.substring(0, filename.length - extension.length) + size + extension;
+}
+
+function isLocal() {
+ return /Dash-Web[\\\/]src[\\\/]server[\\\/]public[\\\/](.*)/;
+}
export namespace DashUploadUtils {
export interface Size {
width: number;
- suffix: string;
+ suffix: SizeSuffix;
+ }
+
+ export interface ImageFileResponse {
+ name: string;
+ path: string;
+ type: string;
+ exif: Opt<DashUploadUtils.EnrichedExifData>;
}
export const Sizes: { [size: string]: Size } = {
- SMALL: { width: 100, suffix: "_s" },
- MEDIUM: { width: 400, suffix: "_m" },
- LARGE: { width: 900, suffix: "_l" },
+ SMALL: { width: 100, suffix: SizeSuffix.Small },
+ MEDIUM: { width: 400, suffix: SizeSuffix.Medium },
+ LARGE: { width: 900, suffix: SizeSuffix.Large },
};
- const gifs = [".gif"];
- const pngs = [".png"];
- const jpgs = [".jpg", ".jpeg"];
- export const imageFormats = [...pngs, ...jpgs, ...gifs];
- const videoFormats = [".mov", ".mp4"];
+ export function validateExtension(url: string) {
+ return AcceptibleMedia.imageFormats.includes(path.extname(url).toLowerCase());
+ }
const size = "content-length";
const type = "content-type";
- export interface UploadInformation {
- mediaPaths: string[];
- fileNames: { [key: string]: string };
+ export interface ImageUploadInformation {
+ clientAccessPath: string;
+ serverAccessPaths: { [key: string]: string };
exifData: EnrichedExifData;
contentSize?: number;
contentType?: string;
}
- const generate = (prefix: string, url: string) => `${prefix}upload_${Utils.GenerateGuid()}${sanitizeExtension(url)}`;
- const sanitize = (filename: string) => filename.replace(/\s+/g, "_");
- const sanitizeExtension = (source: string) => {
- let extension = path.extname(source);
- extension = extension.toLowerCase();
- extension = extension.split("?")[0];
- return extension;
- };
+ const { imageFormats, videoFormats, applicationFormats } = AcceptibleMedia;
+
+ export async function upload(file: File): Promise<any> {
+ const { type, path, name } = file;
+ const types = type.split("/");
+
+ const category = types[0];
+ const format = `.${types[1]}`;
+
+ switch (category) {
+ case "image":
+ if (imageFormats.includes(format)) {
+ const results = await UploadImage(path, basename(path), format);
+ return { ...results, name, type };
+ }
+ case "video":
+ if (videoFormats.includes(format)) {
+ return MoveParsedFile(path, Directory.videos);
+ }
+ case "application":
+ if (applicationFormats.includes(format)) {
+ return UploadPdf(path);
+ }
+ }
+
+ console.log(red(`Ignoring unsupported file (${name}) with upload type (${type}).`));
+ return { clientAccessPath: undefined };
+ }
+
+ async function UploadPdf(absolutePath: string) {
+ const dataBuffer = readFileSync(absolutePath);
+ const result: ParsedPDF = await parse(dataBuffer);
+ const parsedName = basename(absolutePath);
+ await new Promise<void>((resolve, reject) => {
+ const textFilename = `${parsedName.substring(0, parsedName.length - 4)}.txt`;
+ const writeStream = createWriteStream(serverPathToFile(Directory.text, textFilename));
+ writeStream.write(result.text, error => error ? reject(error) : resolve());
+ });
+ return MoveParsedFile(absolutePath, Directory.pdfs);
+ }
+
+ const generate = (prefix: string, extension: string) => `${prefix}upload_${Utils.GenerateGuid()}.${extension}`;
/**
* Uploads an image specified by the @param source to Dash's /public/files/
@@ -58,24 +121,25 @@ export namespace DashUploadUtils {
* @param {string} prefix is a string prepended to the generated image name in the
* event that @param filename is not specified
*
- * @returns {UploadInformation} This method returns
+ * @returns {ImageUploadInformation} This method returns
* 1) the paths to the uploaded images (plural due to resizing)
* 2) the file name of each of the resized images
* 3) the size of the image, in bytes (4432130)
* 4) the content type of the image, i.e. image/(jpeg | png | ...)
*/
- export const UploadImage = async (source: string, filename?: string, prefix: string = ""): Promise<UploadInformation> => {
+ export const UploadImage = async (source: string, filename?: string, format?: string, prefix: string = ""): Promise<ImageUploadInformation> => {
const metadata = await InspectImage(source);
- return UploadInspectedImage(metadata, filename, prefix);
+ return UploadInspectedImage(metadata, filename, format, prefix);
};
export interface InspectionResults {
- isLocal: boolean;
- stream: any;
- normalizedUrl: string;
+ source: string;
+ requestable: string;
exifData: EnrichedExifData;
- contentSize?: number;
- contentType?: string;
+ contentSize: number;
+ contentType: string;
+ nativeWidth: number;
+ nativeHeight: number;
}
export interface EnrichedExifData {
@@ -83,6 +147,17 @@ export namespace DashUploadUtils {
error?: string;
}
+ export async function buildFileDirectories() {
+ const pending = Object.keys(Directory).map(sub => createIfNotExists(`${filesDirectory}/${sub}`));
+ return Promise.all(pending);
+ }
+
+ export interface RequestedImageSize {
+ width: number;
+ height: number;
+ type: string;
+ }
+
/**
* Based on the url's classification as local or remote, gleans
* as much information as possible about the specified image
@@ -90,95 +165,85 @@ export namespace DashUploadUtils {
* @param source is the path or url to the image in question
*/
export const InspectImage = async (source: string): Promise<InspectionResults> => {
- const { isLocal, stream, normalized: normalizedUrl } = classify(source);
- const exifData = await parseExifData(source);
+ let resolvedUrl: string;
+ const matches = isLocal().exec(source);
+ if (matches === null) {
+ resolvedUrl = source;
+ } else {
+ resolvedUrl = `http://localhost:1050/${matches[1].split("\\").join("/")}`;
+ }
+ const exifData = await parseExifData(resolvedUrl);
const results = {
exifData,
- isLocal,
- stream,
- normalizedUrl
+ requestable: resolvedUrl
};
- // stop here if local, since request.head() can't handle local paths, only urls on the web
- if (isLocal) {
- return results;
- }
- const metadata = (await new Promise<any>((resolve, reject) => {
- request.head(source, async (error, res) => {
- if (error) {
- return reject(error);
- }
- resolve(res);
- });
- })).headers;
+ const { headers } = (await new Promise<any>((resolve, reject) => {
+ request.head(resolvedUrl, (error, res) => error ? reject(error) : resolve(res));
+ }).catch(error => console.error(error)));
+ const { width: nativeWidth, height: nativeHeight }: RequestedImageSize = await requestImageSize(resolvedUrl);
return {
- contentSize: parseInt(metadata[size]),
- contentType: metadata[type],
+ source,
+ contentSize: parseInt(headers[size]),
+ contentType: headers[type],
+ nativeWidth,
+ nativeHeight,
...results
};
};
- export const UploadInspectedImage = async (metadata: InspectionResults, filename?: string, prefix = ""): Promise<UploadInformation> => {
- const { isLocal, stream, normalizedUrl, contentSize, contentType, exifData } = metadata;
- const resolved = filename ? sanitize(filename) : generate(prefix, normalizedUrl);
- const extension = sanitizeExtension(normalizedUrl || resolved);
- let information: UploadInformation = {
- mediaPaths: [],
- fileNames: { clean: resolved },
- exifData,
- contentSize,
- contentType,
+ export async function MoveParsedFile(absolutePath: string, destination: Directory): Promise<{ clientAccessPath: Opt<string> }> {
+ return new Promise<{ clientAccessPath: Opt<string> }>(resolve => {
+ const filename = basename(absolutePath);
+ const destinationPath = serverPathToFile(destination, filename);
+ rename(absolutePath, destinationPath, error => {
+ resolve({ clientAccessPath: error ? undefined : clientPathToFile(destination, filename) });
+ });
+ });
+ }
+
+ export const UploadInspectedImage = async (metadata: InspectionResults, filename?: string, format?: string, prefix = ""): Promise<ImageUploadInformation> => {
+ const { requestable, source, ...remaining } = metadata;
+ const extension = remaining.contentType.toLowerCase().split("/")[1]; //format || sanitizeExtension(requestable || resolved);
+ const resolved = filename || generate(prefix, extension);
+ const information: ImageUploadInformation = {
+ clientAccessPath: clientPathToFile(Directory.images, resolved),
+ serverAccessPaths: {},
+ ...remaining
};
- return new Promise<UploadInformation>(async (resolve, reject) => {
+ const { pngs, jpgs } = AcceptibleMedia;
+ return new Promise<ImageUploadInformation>(async (resolve, reject) => {
const resizers = [
- { resizer: sharp().rotate(), suffix: "_o" },
+ { resizer: sharp().rotate(), suffix: SizeSuffix.Original },
...Object.values(Sizes).map(size => ({
resizer: sharp().resize(size.width, undefined, { withoutEnlargement: true }).rotate(),
suffix: size.suffix
}))
];
- let nonVisual = false;
if (pngs.includes(extension)) {
resizers.forEach(element => element.resizer = element.resizer.png());
} else if (jpgs.includes(extension)) {
resizers.forEach(element => element.resizer = element.resizer.jpeg());
- } else if (![...imageFormats, ...videoFormats].includes(extension.toLowerCase())) {
- nonVisual = true;
}
- if (imageFormats.includes(extension)) {
- for (let resizer of resizers) {
- const suffix = resizer.suffix;
- let mediaPath: string;
- await new Promise<void>(resolve => {
- const filename = resolved.substring(0, resolved.length - extension.length) + suffix + extension;
- information.mediaPaths.push(mediaPath = uploadDirectory + filename);
- information.fileNames[suffix] = filename;
- stream(normalizedUrl).pipe(resizer.resizer).pipe(fs.createWriteStream(mediaPath))
- .on('close', resolve)
- .on('error', reject);
- });
- }
- }
- if (!isLocal || nonVisual) {
+ for (const { resizer, suffix } of resizers) {
await new Promise<void>(resolve => {
- stream(normalizedUrl).pipe(fs.createWriteStream(uploadDirectory + resolved)).on('close', resolve);
+ const filename = InjectSize(resolved, suffix);
+ information.serverAccessPaths[suffix] = serverPathToFile(Directory.images, filename);
+ request(requestable).pipe(resizer).pipe(createWriteStream(serverPathToFile(Directory.images, filename)))
+ .on('close', resolve)
+ .on('error', reject);
});
}
+ if (isLocal().test(source)) {
+ unlinkSync(source);
+ }
resolve(information);
});
};
- const classify = (url: string) => {
- const isLocal = /Dash-Web(\\|\/)src(\\|\/)server(\\|\/)public(\\|\/)files/g.test(url);
- return {
- isLocal,
- stream: isLocal ? fs.createReadStream : request,
- normalized: isLocal ? path.normalize(url) : url
- };
- };
-
const parseExifData = async (source: string): Promise<EnrichedExifData> => {
+ const image = await request.get(source, { encoding: null });
return new Promise<EnrichedExifData>(resolve => {
- new ExifImage(source, (error, data) => {
+ new ExifImage({ image }, (error, data) => {
let reason: Opt<string> = undefined;
if (error) {
reason = (error as any).code;
@@ -188,13 +253,4 @@ export namespace DashUploadUtils {
});
};
- export const createIfNotExists = async (path: string) => {
- if (await new Promise<boolean>(resolve => fs.exists(path, resolve))) {
- return true;
- }
- return new Promise<boolean>(resolve => fs.mkdir(path, error => resolve(error === null)));
- };
-
- export const Destroy = (mediaPath: string) => new Promise<boolean>(resolve => fs.unlink(mediaPath, error => resolve(error === null)));
-
} \ No newline at end of file
diff --git a/src/server/GarbageCollector.ts b/src/server/GarbageCollector.ts
index 09b52eadf..5729c3ee5 100644
--- a/src/server/GarbageCollector.ts
+++ b/src/server/GarbageCollector.ts
@@ -100,7 +100,7 @@ async function GarbageCollect(full: boolean = true) {
if (!full) {
await Database.Instance.updateMany({ _id: { $nin: notToDelete } }, { $set: { "deleted": true } });
await Database.Instance.updateMany({ _id: { $in: notToDelete } }, { $unset: { "deleted": true } });
- console.log(await Search.Instance.updateDocuments(
+ console.log(await Search.updateDocuments(
notToDelete.map<any>(id => ({
id, deleted: { set: null }
}))
@@ -122,7 +122,7 @@ async function GarbageCollect(full: boolean = true) {
// const result = await Database.Instance.delete({ _id: { $in: toDelete } }, "newDocuments");
console.log(`${deleted} documents deleted`);
- await Search.Instance.deleteDocuments(toDelete);
+ await Search.deleteDocuments(toDelete);
console.log("Cleared search documents");
const folder = "./src/server/public/files/";
diff --git a/src/server/IDatabase.ts b/src/server/IDatabase.ts
new file mode 100644
index 000000000..6a63df485
--- /dev/null
+++ b/src/server/IDatabase.ts
@@ -0,0 +1,24 @@
+import * as mongodb from 'mongodb';
+import { Transferable } from './Message';
+
+export const DocumentsCollection = 'documents';
+export const NewDocumentsCollection = 'newDocuments';
+export interface IDatabase {
+ update(id: string, value: any, callback: (err: mongodb.MongoError, res: mongodb.UpdateWriteOpResult) => void, upsert?: boolean, collectionName?: string): Promise<void>;
+ updateMany(query: any, update: any, collectionName?: string): Promise<mongodb.WriteOpResult>;
+
+ replace(id: string, value: any, callback: (err: mongodb.MongoError, res: mongodb.UpdateWriteOpResult) => void, upsert?: boolean, collectionName?: string): void;
+
+ delete(query: any, collectionName?: string): Promise<mongodb.DeleteWriteOpResultObject>;
+ delete(id: string, collectionName?: string): Promise<mongodb.DeleteWriteOpResultObject>;
+
+ deleteAll(collectionName?: string, persist?: boolean): Promise<any>;
+
+ insert(value: any, collectionName?: string): Promise<void>;
+
+ getDocument(id: string, fn: (result?: Transferable) => void, collectionName?: string): void;
+ getDocuments(ids: string[], fn: (result: Transferable[]) => void, collectionName?: string): void;
+ visit(ids: string[], fn: (result: any) => string[] | Promise<string[]>, collectionName?: string): Promise<void>;
+
+ query(query: { [key: string]: any }, projection?: { [key: string]: 0 | 1 }, collectionName?: string): Promise<mongodb.Cursor>;
+}
diff --git a/src/server/MemoryDatabase.ts b/src/server/MemoryDatabase.ts
new file mode 100644
index 000000000..543f96e7f
--- /dev/null
+++ b/src/server/MemoryDatabase.ts
@@ -0,0 +1,100 @@
+import { IDatabase, DocumentsCollection, NewDocumentsCollection } from './IDatabase';
+import { Transferable } from './Message';
+import * as mongodb from 'mongodb';
+
+export class MemoryDatabase implements IDatabase {
+
+ private db: { [collectionName: string]: { [id: string]: any } } = {};
+
+ private getCollection(collectionName: string) {
+ const collection = this.db[collectionName];
+ if (collection) {
+ return collection;
+ } else {
+ return this.db[collectionName] = {};
+ }
+ }
+
+ public update(id: string, value: any, callback: (err: mongodb.MongoError, res: mongodb.UpdateWriteOpResult) => void, _upsert?: boolean, collectionName = DocumentsCollection): Promise<void> {
+ const collection = this.getCollection(collectionName);
+ const set = "$set";
+ if (set in value) {
+ let currentVal = collection[id] ?? (collection[id] = {});
+ const val = value[set];
+ for (const key in val) {
+ const keys = key.split(".");
+ for (let i = 0; i < keys.length - 1; i++) {
+ const k = keys[i];
+ if (typeof currentVal[k] === "object") {
+ currentVal = currentVal[k];
+ } else {
+ currentVal[k] = {};
+ currentVal = currentVal[k];
+ }
+ }
+ currentVal[keys[keys.length - 1]] = val[key];
+ }
+ } else {
+ collection[id] = value;
+ }
+ callback(null as any, {} as any);
+ return Promise.resolve(undefined);
+ }
+
+ public updateMany(query: any, update: any, collectionName = NewDocumentsCollection): Promise<mongodb.WriteOpResult> {
+ throw new Error("Can't updateMany a MemoryDatabase");
+ }
+
+ public replace(id: string, value: any, callback: (err: mongodb.MongoError, res: mongodb.UpdateWriteOpResult) => void, upsert?: boolean, collectionName = DocumentsCollection): void {
+ this.update(id, value, callback, upsert, collectionName);
+ }
+
+ public delete(query: any, collectionName?: string): Promise<mongodb.DeleteWriteOpResultObject>;
+ public delete(id: string, collectionName?: string): Promise<mongodb.DeleteWriteOpResultObject>;
+ public delete(id: any, collectionName = DocumentsCollection): Promise<mongodb.DeleteWriteOpResultObject> {
+ const i = id.id ?? id;
+ delete this.getCollection(collectionName)[i];
+
+ return Promise.resolve({} as any);
+ }
+
+ public deleteAll(collectionName = DocumentsCollection, _persist = true): Promise<any> {
+ delete this.db[collectionName];
+ return Promise.resolve();
+ }
+
+ public insert(value: any, collectionName = DocumentsCollection): Promise<void> {
+ const id = value.id;
+ this.getCollection(collectionName)[id] = value;
+ return Promise.resolve();
+ }
+
+ public getDocument(id: string, fn: (result?: Transferable) => void, collectionName = NewDocumentsCollection): void {
+ fn(this.getCollection(collectionName)[id]);
+ }
+ public getDocuments(ids: string[], fn: (result: Transferable[]) => void, collectionName = DocumentsCollection): void {
+ fn(ids.map(id => this.getCollection(collectionName)[id]));
+ }
+
+ public async visit(ids: string[], fn: (result: any) => string[] | Promise<string[]>, collectionName = NewDocumentsCollection): Promise<void> {
+ const visited = new Set<string>();
+ while (ids.length) {
+ const count = Math.min(ids.length, 1000);
+ const index = ids.length - count;
+ const fetchIds = ids.splice(index, count).filter(id => !visited.has(id));
+ if (!fetchIds.length) {
+ continue;
+ }
+ const docs = await new Promise<{ [key: string]: any }[]>(res => this.getDocuments(fetchIds, res, collectionName));
+ for (const doc of docs) {
+ const id = doc.id;
+ visited.add(id);
+ ids.push(...(await fn(doc)));
+ }
+ }
+ }
+
+ public query(): Promise<mongodb.Cursor> {
+ throw new Error("Can't query a MemoryDatabase");
+ }
+}
diff --git a/src/server/Message.ts b/src/server/Message.ts
index aaee143e8..22d2fa8a8 100644
--- a/src/server/Message.ts
+++ b/src/server/Message.ts
@@ -1,4 +1,5 @@
import { Utils } from "../Utils";
+import { Image } from "canvas";
export class Message<T> {
private _name: string;
@@ -50,6 +51,7 @@ export namespace MessageStore {
export const GetFields = new Message<string[]>("Get Fields"); // send string[] of 'id' get Transferable[] back
export const GetDocument = new Message<string>("Get Document");
export const DeleteAll = new Message<any>("Delete All");
+ export const ConnectionTerminated = new Message<string>("Connection Terminated");
export const GetRefField = new Message<string>("Get Ref Field");
export const GetRefFields = new Message<string[]>("Get Ref Fields");
@@ -58,4 +60,5 @@ export namespace MessageStore {
export const YoutubeApiQuery = new Message<YoutubeQueryInput>("Youtube Api Query");
export const DeleteField = new Message<string>("Delete field");
export const DeleteFields = new Message<string[]>("Delete fields");
+ export const AnalyzeInk = new Message<string>("Analyze Ink");
}
diff --git a/src/server/ProcessFactory.ts b/src/server/ProcessFactory.ts
new file mode 100644
index 000000000..acb8b3a99
--- /dev/null
+++ b/src/server/ProcessFactory.ts
@@ -0,0 +1,44 @@
+import { existsSync, mkdirSync } from "fs";
+import { pathFromRoot, fileDescriptorFromStream } from './ActionUtilities';
+import rimraf = require("rimraf");
+import { ChildProcess, spawn, StdioOptions } from "child_process";
+import { Stream } from "stream";
+
+export namespace ProcessFactory {
+
+ export type Sink = "pipe" | "ipc" | "ignore" | "inherit" | Stream | number | null | undefined;
+
+ export async function createWorker(command: string, args?: readonly string[], stdio?: StdioOptions | "logfile", detached = true): Promise<ChildProcess> {
+ if (stdio === "logfile") {
+ const log_fd = await Logger.create(command, args);
+ stdio = ["ignore", log_fd, log_fd];
+ }
+ const child = spawn(command, args, { detached, stdio });
+ child.unref();
+ return child;
+ }
+
+}
+
+export namespace Logger {
+
+ const logPath = pathFromRoot("./logs");
+
+ export async function initialize() {
+ if (existsSync(logPath)) {
+ if (!process.env.SPAWNED) {
+ await new Promise<any>(resolve => rimraf(logPath, resolve));
+ }
+ }
+ mkdirSync(logPath);
+ }
+
+ export async function create(command: string, args?: readonly string[]): Promise<number> {
+ return fileDescriptorFromStream(generate_log_path(command, args));
+ }
+
+ function generate_log_path(command: string, args?: readonly string[]) {
+ return pathFromRoot(`./logs/${command}-${args?.length}-${new Date().toUTCString()}.log`);
+ }
+
+} \ No newline at end of file
diff --git a/src/server/Recommender.ts b/src/server/Recommender.ts
index aaed09999..1d2cb3858 100644
--- a/src/server/Recommender.ts
+++ b/src/server/Recommender.ts
@@ -3,7 +3,7 @@
//import { List } from "../new_fields/List";
//import { CognitiveServices } from "../client/cognitive_services/CognitiveServices";
-var w2v = require('word2vec');
+// var w2v = require('word2vec');
var assert = require('assert');
var arxivapi = require('arxiv-api-node');
import requestPromise = require("request-promise");
@@ -47,17 +47,17 @@ export class Recommender {
* Loads pre-trained model from word2vec
*/
- private loadModel(): Promise<any> {
- let self = this;
- return new Promise(res => {
- w2v.loadModel("./node_modules/word2vec/examples/fixtures/vectors.txt", function (err: any, model: any) {
- self.choice = "WV";
- self._model = model;
- self.dimension = model.size;
- res(model);
- });
- });
- }
+ // private loadModel(): Promise<any> {
+ // let self = this;
+ // return new Promise(res => {
+ // w2v.loadModel("./node_modules/word2vec/examples/fixtures/vectors.txt", function (err: any, model: any) {
+ // self.choice = "WV";
+ // self._model = model;
+ // self.dimension = model.size;
+ // res(model);
+ // });
+ // });
+ // }
/***
* Testing
@@ -118,20 +118,20 @@ export class Recommender {
}
}
- public async trainModel() {
- console.log("phrasing...");
- w2v.word2vec("./node_modules/word2vec/examples/eng_news-typical_2016_1M-sentences.txt", './node_modules/word2vec/examples/my_phrases.txt', {
- cbow: 1,
- size: 200,
- window: 8,
- negative: 25,
- hs: 0,
- sample: 1e-4,
- threads: 20,
- iter: 200,
- minCount: 2
- });
- console.log("phrased!!!");
- }
+ // public async trainModel() {
+ // console.log("phrasing...");
+ // w2v.word2vec("./node_modules/word2vec/examples/eng_news-typical_2016_1M-sentences.txt", './node_modules/word2vec/examples/my_phrases.txt', {
+ // cbow: 1,
+ // size: 200,
+ // window: 8,
+ // negative: 25,
+ // hs: 0,
+ // sample: 1e-4,
+ // threads: 20,
+ // iter: 200,
+ // minCount: 2
+ // });
+ // console.log("phrased!!!");
+ // }
}
diff --git a/src/server/RouteManager.ts b/src/server/RouteManager.ts
new file mode 100644
index 000000000..63e957cd1
--- /dev/null
+++ b/src/server/RouteManager.ts
@@ -0,0 +1,202 @@
+import RouteSubscriber from "./RouteSubscriber";
+import { DashUserModel } from "./authentication/models/user_model";
+import { Request, Response, Express } from 'express';
+import { cyan, red, green } from 'colors';
+
+export enum Method {
+ GET,
+ POST
+}
+
+export interface CoreArguments {
+ req: Request;
+ res: Response;
+ isRelease: boolean;
+}
+
+export type AuthorizedCore = CoreArguments & { user: DashUserModel };
+export type SecureHandler = (core: AuthorizedCore) => any | Promise<any>;
+export type PublicHandler = (core: CoreArguments) => any | Promise<any>;
+export type ErrorHandler = (core: CoreArguments & { error: any }) => any | Promise<any>;
+
+export interface RouteInitializer {
+ method: Method;
+ subscription: string | RouteSubscriber | (string | RouteSubscriber)[];
+ secureHandler: SecureHandler;
+ publicHandler?: PublicHandler;
+ errorHandler?: ErrorHandler;
+}
+
+const registered = new Map<string, Set<Method>>();
+
+enum RegistrationError {
+ Malformed,
+ Duplicate
+}
+
+export default class RouteManager {
+ private server: Express;
+ private _isRelease: boolean;
+ private failedRegistrations: { route: string, reason: RegistrationError }[] = [];
+
+ public get isRelease() {
+ return this._isRelease;
+ }
+
+ constructor(server: Express, isRelease: boolean) {
+ this.server = server;
+ this._isRelease = isRelease;
+ }
+
+ logRegistrationOutcome = () => {
+ if (this.failedRegistrations.length) {
+ let duplicateCount = 0;
+ let malformedCount = 0;
+ this.failedRegistrations.forEach(({ reason, route }) => {
+ let error: string;
+ if (reason === RegistrationError.Duplicate) {
+ error = `duplicate registration error: ${route} is already registered `;
+ duplicateCount++;
+ } else {
+ error = `malformed route error: ${route} is invalid`;
+ malformedCount++;
+ }
+ console.log(red(error));
+ });
+ console.log();
+ if (duplicateCount) {
+ console.log('please remove all duplicate routes before continuing');
+ }
+ if (malformedCount) {
+ console.log(`please ensure all routes adhere to ^\/$|^\/[A-Za-z]+(\/\:[A-Za-z?_]+)*$`);
+ }
+ process.exit(1);
+ } else {
+ console.log(green("all server routes have been successfully registered:"));
+ Array.from(registered.keys()).sort().forEach(route => console.log(cyan(route)));
+ console.log();
+ }
+ }
+
+ /**
+ *
+ * @param initializer
+ */
+ addSupervisedRoute = (initializer: RouteInitializer): void => {
+ const { method, subscription, secureHandler, publicHandler, errorHandler } = initializer;
+
+ const isRelease = this._isRelease;
+ const supervised = async (req: Request, res: Response) => {
+ let { user } = req;
+ const { originalUrl: target } = req;
+ if (process.env.DB === "MEM" && !user) {
+ user = { id: "guest", email: "", userDocumentId: "guestDocId" };
+ }
+ const core = { req, res, isRelease };
+ const tryExecute = async (toExecute: (args: any) => any | Promise<any>, args: any) => {
+ try {
+ await toExecute(args);
+ } catch (e) {
+ console.log(red(target), user && ("email" in user) ? "<user logged out>" : undefined);
+ if (errorHandler) {
+ errorHandler({ ...core, error: e });
+ } else {
+ _error(res, `The server encountered an internal error when serving ${target}.`, e);
+ }
+ }
+ };
+ if (user) {
+ await tryExecute(secureHandler, { ...core, user });
+ } else {
+ req.session!.target = target;
+ if (publicHandler) {
+ await tryExecute(publicHandler, core);
+ if (!res.headersSent) {
+ res.redirect("/login");
+ }
+ } else {
+ res.redirect("/login");
+ }
+ }
+ setTimeout(() => {
+ if (!res.headersSent) {
+ console.log(red(`Initiating fallback for ${target}. Please remove dangling promise from route handler`));
+ const warning = `request to ${target} fell through - this is a fallback response`;
+ res.send({ warning });
+ }
+ }, 1000);
+ };
+ const subscribe = (subscriber: RouteSubscriber | string) => {
+ let route: string;
+ if (typeof subscriber === "string") {
+ route = subscriber;
+ } else {
+ route = subscriber.build;
+ }
+ if (!/^\/$|^\/[A-Za-z]+(\/\:[A-Za-z?_]+)*$/g.test(route)) {
+ this.failedRegistrations.push({
+ reason: RegistrationError.Malformed,
+ route
+ });
+ } else {
+ const existing = registered.get(route);
+ if (existing) {
+ if (existing.has(method)) {
+ this.failedRegistrations.push({
+ reason: RegistrationError.Duplicate,
+ route
+ });
+ return;
+ }
+ } else {
+ const specific = new Set<Method>();
+ specific.add(method);
+ registered.set(route, specific);
+ }
+ switch (method) {
+ case Method.GET:
+ this.server.get(route, supervised);
+ break;
+ case Method.POST:
+ this.server.post(route, supervised);
+ break;
+ }
+ }
+ };
+ if (Array.isArray(subscription)) {
+ subscription.forEach(subscribe);
+ } else {
+ subscribe(subscription);
+ }
+ }
+
+}
+
+export const STATUS = {
+ OK: 200,
+ BAD_REQUEST: 400,
+ EXECUTION_ERROR: 500,
+ PERMISSION_DENIED: 403
+};
+
+export function _error(res: Response, message: string, error?: any) {
+ console.error(message, error);
+ res.statusMessage = message;
+ res.status(STATUS.EXECUTION_ERROR).send(error);
+}
+
+export function _success(res: Response, body: any) {
+ res.status(STATUS.OK).send(body);
+}
+
+export function _invalid(res: Response, message: string) {
+ res.statusMessage = message;
+ res.status(STATUS.BAD_REQUEST).send();
+}
+
+export function _permission_denied(res: Response, message?: string) {
+ if (message) {
+ res.statusMessage = message;
+ }
+ res.status(STATUS.PERMISSION_DENIED).send("Permission Denied!");
+}
diff --git a/src/server/RouteStore.ts b/src/server/RouteStore.ts
deleted file mode 100644
index 7426ffb39..000000000
--- a/src/server/RouteStore.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-// PREPEND ALL ROUTES WITH FORWARD SLASHES!
-
-export enum RouteStore {
- // GENERAL
- root = "/",
- home = "/home",
- corsProxy = "/corsProxy",
- delete = "/delete",
- deleteAll = "/deleteAll",
-
- // UPLOAD AND STATIC FILE SERVING
- public = "/public",
- upload = "/upload",
- dataUriToImage = "/uploadURI",
- images = "/images",
- inspectImage = "/inspectImage",
- imageHierarchyExport = "/imageHierarchyExport",
-
- // USER AND WORKSPACES
- getCurrUser = "/getCurrentUser",
- getUsers = "/getUsers",
- getUserDocumentId = "/getUserDocumentId",
- updateCursor = "/updateCursor",
-
- openDocumentWithId = "/doc/:docId",
-
- // AUTHENTICATION
- signup = "/signup",
- login = "/login",
- logout = "/logout",
- forgot = "/forgotpassword",
- reset = "/reset/:token",
-
- // APIS
- cognitiveServices = "/cognitiveservices",
- googleDocs = "/googleDocs",
- readGoogleAccessToken = "/readGoogleAccessToken",
- writeGoogleAccessToken = "/writeGoogleAccessToken",
- googlePhotosMediaUpload = "/googlePhotosMediaUpload",
- googlePhotosMediaDownload = "/googlePhotosMediaDownload",
- googleDocsGet = "/googleDocsGet"
-
-} \ No newline at end of file
diff --git a/src/server/RouteSubscriber.ts b/src/server/RouteSubscriber.ts
index e49be8af5..a1cf7c1c4 100644
--- a/src/server/RouteSubscriber.ts
+++ b/src/server/RouteSubscriber.ts
@@ -3,7 +3,7 @@ export default class RouteSubscriber {
private requestParameters: string[] = [];
constructor(root: string) {
- this._root = root;
+ this._root = `/${root}`;
}
add(...parameters: string[]) {
diff --git a/src/server/Search.ts b/src/server/Search.ts
index 44c1b1298..43aa7e49c 100644
--- a/src/server/Search.ts
+++ b/src/server/Search.ts
@@ -1,14 +1,13 @@
import * as rp from 'request-promise';
-import { Database } from './database';
-import { thisExpression } from 'babel-types';
+import { red } from 'colors';
-export class Search {
- public static Instance = new Search();
- private url = 'http://localhost:8983/solr/';
+const pathTo = (relative: string) => `http://localhost:8983/solr/dash/${relative}`;
- public async updateDocument(document: any) {
+export namespace Search {
+
+ export async function updateDocument(document: any) {
try {
- const res = await rp.post(this.url + "dash/update", {
+ const res = await rp.post(pathTo("update"), {
headers: { 'content-type': 'application/json' },
body: JSON.stringify([document])
});
@@ -18,9 +17,9 @@ export class Search {
}
}
- public async updateDocuments(documents: any[]) {
+ export async function updateDocuments(documents: any[]) {
try {
- const res = await rp.post(this.url + "dash/update", {
+ const res = await rp.post(pathTo("update"), {
headers: { 'content-type': 'application/json' },
body: JSON.stringify(documents)
});
@@ -30,9 +29,9 @@ export class Search {
}
}
- public async search(query: any) {
+ export async function search(query: any) {
try {
- const searchResults = JSON.parse(await rp.get(this.url + "dash/select", {
+ const searchResults = JSON.parse(await rp.get(pathTo("select"), {
qs: query
}));
const { docs, numFound } = searchResults.response;
@@ -43,9 +42,9 @@ export class Search {
}
}
- public async clear() {
+ export async function clear() {
try {
- return await rp.post(this.url + "dash/update", {
+ await rp.post(pathTo("update"), {
body: {
delete: {
query: "*:*"
@@ -53,10 +52,13 @@ export class Search {
},
json: true
});
- } catch { }
+ } catch (e) {
+ console.log(red("Unable to clear search..."));
+ console.log(red(e.message));
+ }
}
- public deleteDocuments(docs: string[]) {
+ export async function deleteDocuments(docs: string[]) {
const promises: rp.RequestPromise[] = [];
const nToDelete = 1000;
let index = 0;
@@ -64,7 +66,7 @@ export class Search {
const count = Math.min(docs.length - index, nToDelete);
const deleteIds = docs.slice(index, index + count);
index += count;
- promises.push(rp.post(this.url + "dash/update", {
+ promises.push(rp.post(pathTo("update"), {
body: {
delete: {
query: deleteIds.map(id => `id:"${id}"`).join(" ")
diff --git a/src/server/SharedMediaTypes.ts b/src/server/SharedMediaTypes.ts
new file mode 100644
index 000000000..8d0f441f0
--- /dev/null
+++ b/src/server/SharedMediaTypes.ts
@@ -0,0 +1,8 @@
+export namespace AcceptibleMedia {
+ export const gifs = [".gif"];
+ export const pngs = [".png"];
+ export const jpgs = [".jpg", ".jpeg"];
+ export const imageFormats = [...pngs, ...jpgs, ...gifs];
+ export const videoFormats = [".mov", ".mp4"];
+ export const applicationFormats = [".pdf"];
+} \ No newline at end of file
diff --git a/src/server/Websocket/Websocket.ts b/src/server/Websocket/Websocket.ts
new file mode 100644
index 000000000..f485e1dcd
--- /dev/null
+++ b/src/server/Websocket/Websocket.ts
@@ -0,0 +1,257 @@
+import { Utils } from "../../Utils";
+import { MessageStore, Transferable, Types, Diff, YoutubeQueryInput, YoutubeQueryTypes } from "../Message";
+import { Client } from "../Client";
+import { Socket } from "socket.io";
+import { Database } from "../database";
+import { Search } from "../Search";
+import * as io from 'socket.io';
+import YoutubeApi from "../apis/youtube/youtubeApiSample";
+import { GoogleCredentialsLoader } from "../credentials/CredentialsLoader";
+import { logPort } from "../ActionUtilities";
+import { timeMap } from "../ApiManagers/UserManager";
+import { green } from "colors";
+import { Image } from "canvas";
+import { write, createWriteStream } from "fs";
+import { serverPathToFile, Directory } from "../ApiManagers/UploadManager";
+const tesseract = require("node-tesseract-ocr");
+const config = {
+ lang: "eng",
+ oem: 1,
+ psm: 8
+};
+const imageDataUri = require('image-data-uri');
+
+export namespace WebSocket {
+
+ export let _socket: Socket;
+ const clients: { [key: string]: Client } = {};
+ export const socketMap = new Map<SocketIO.Socket, string>();
+ export let disconnect: Function;
+
+ export async function start(isRelease: boolean) {
+ await preliminaryFunctions();
+ initialize(isRelease);
+ }
+
+ async function preliminaryFunctions() {
+ }
+
+ function initialize(isRelease: boolean) {
+ const endpoint = io();
+ endpoint.on("connection", function (socket: Socket) {
+ _socket = socket;
+
+ socket.use((_packet, next) => {
+ const userEmail = socketMap.get(socket);
+ if (userEmail) {
+ timeMap[userEmail] = Date.now();
+ }
+ next();
+ });
+
+ Utils.Emit(socket, MessageStore.Foo, "handshooken");
+
+ Utils.AddServerHandler(socket, MessageStore.Bar, guid => barReceived(socket, guid));
+ Utils.AddServerHandler(socket, MessageStore.SetField, (args) => setField(socket, args));
+ Utils.AddServerHandlerCallback(socket, MessageStore.GetField, getField);
+ Utils.AddServerHandlerCallback(socket, MessageStore.GetFields, getFields);
+ if (isRelease) {
+ Utils.AddServerHandler(socket, MessageStore.DeleteAll, deleteFields);
+ }
+
+ Utils.AddServerHandler(socket, MessageStore.CreateField, CreateField);
+ Utils.AddServerHandlerCallback(socket, MessageStore.YoutubeApiQuery, HandleYoutubeQuery);
+ Utils.AddServerHandlerCallback(socket, MessageStore.AnalyzeInk, RecognizeImage);
+ Utils.AddServerHandler(socket, MessageStore.UpdateField, diff => UpdateField(socket, diff));
+ Utils.AddServerHandler(socket, MessageStore.DeleteField, id => DeleteField(socket, id));
+ Utils.AddServerHandler(socket, MessageStore.DeleteFields, ids => DeleteFields(socket, ids));
+ Utils.AddServerHandlerCallback(socket, MessageStore.GetRefField, GetRefField);
+ Utils.AddServerHandlerCallback(socket, MessageStore.GetRefFields, GetRefFields);
+
+ disconnect = () => {
+ socket.broadcast.emit("connection_terminated", Date.now());
+ socket.disconnect(true);
+ };
+ });
+
+ const socketPort = isRelease ? Number(process.env.socketPort) : 4321;
+ endpoint.listen(socketPort);
+ logPort("websocket", socketPort);
+ }
+
+ async function RecognizeImage([query, callback]: [string, (result: any) => any]) {
+ const path = serverPathToFile(Directory.images, "handwriting.jpg");
+ imageDataUri.outputFile(query, path).then((savedName: string) => {
+ console.log("saved " + savedName);
+ const remadePath = path.split("\\").join("\\\\");
+ tesseract.recognize(remadePath, config)
+ .then(callback)
+ .catch(console.log);
+ });
+ }
+
+ function HandleYoutubeQuery([query, callback]: [YoutubeQueryInput, (result?: any[]) => void]) {
+ const { ProjectCredentials } = GoogleCredentialsLoader;
+ switch (query.type) {
+ case YoutubeQueryTypes.Channels:
+ YoutubeApi.authorizedGetChannel(ProjectCredentials);
+ break;
+ case YoutubeQueryTypes.SearchVideo:
+ YoutubeApi.authorizedGetVideos(ProjectCredentials, query.userInput, callback);
+ case YoutubeQueryTypes.VideoDetails:
+ YoutubeApi.authorizedGetVideoDetails(ProjectCredentials, query.videoIds, callback);
+ }
+ }
+
+ export async function deleteFields() {
+ await Database.Instance.deleteAll();
+ if (process.env.DISABLE_SEARCH !== "true") {
+ await Search.clear();
+ }
+ await Database.Instance.deleteAll('newDocuments');
+ }
+
+ // export async function deleteUserDocuments() {
+ // await Database.Instance.deleteAll();
+ // await Database.Instance.deleteAll('newDocuments');
+ // }
+
+ export async function deleteAll() {
+ await Database.Instance.deleteAll();
+ await Database.Instance.deleteAll('newDocuments');
+ await Database.Instance.deleteAll('sessions');
+ await Database.Instance.deleteAll('users');
+ if (process.env.DISABLE_SEARCH !== "true") {
+ await Search.clear();
+ }
+ }
+
+ function barReceived(socket: SocketIO.Socket, userEmail: string) {
+ clients[userEmail] = new Client(userEmail.toString());
+ console.log(green(`user ${userEmail} has connected to the web socket`));
+ socketMap.set(socket, userEmail);
+ }
+
+ function getField([id, callback]: [string, (result?: Transferable) => void]) {
+ Database.Instance.getDocument(id, (result?: Transferable) =>
+ callback(result ? result : undefined));
+ }
+
+ function getFields([ids, callback]: [string[], (result: Transferable[]) => void]) {
+ Database.Instance.getDocuments(ids, callback);
+ }
+
+ function setField(socket: Socket, newValue: Transferable) {
+ Database.Instance.update(newValue.id, newValue, () =>
+ socket.broadcast.emit(MessageStore.SetField.Message, newValue));
+ if (newValue.type === Types.Text) {
+ Search.updateDocument({ id: newValue.id, data: (newValue as any).data });
+ }
+ }
+
+ function GetRefField([id, callback]: [string, (result?: Transferable) => void]) {
+ Database.Instance.getDocument(id, callback, "newDocuments");
+ }
+
+ function GetRefFields([ids, callback]: [string[], (result?: Transferable[]) => void]) {
+ Database.Instance.getDocuments(ids, callback, "newDocuments");
+ }
+
+ const suffixMap: { [type: string]: (string | [string, string | ((json: any) => any)]) } = {
+ "number": "_n",
+ "string": "_t",
+ "boolean": "_b",
+ "image": ["_t", "url"],
+ "video": ["_t", "url"],
+ "pdf": ["_t", "url"],
+ "audio": ["_t", "url"],
+ "web": ["_t", "url"],
+ "RichTextField": ["_t", value => value.Text],
+ "date": ["_d", value => new Date(value.date).toISOString()],
+ "proxy": ["_i", "fieldId"],
+ "list": ["_l", list => {
+ const results = [];
+ for (const value of list.fields) {
+ const term = ToSearchTerm(value);
+ if (term) {
+ results.push(term.value);
+ }
+ }
+ return results.length ? results : null;
+ }]
+ };
+
+ function ToSearchTerm(val: any): { suffix: string, value: any } | undefined {
+ if (val === null || val === undefined) {
+ return;
+ }
+ const type = val.__type || typeof val;
+ let suffix = suffixMap[type];
+ if (!suffix) {
+ return;
+ }
+
+ if (Array.isArray(suffix)) {
+ const accessor = suffix[1];
+ if (typeof accessor === "function") {
+ val = accessor(val);
+ } else {
+ val = val[accessor];
+ }
+ suffix = suffix[0];
+ }
+
+ return { suffix, value: val };
+ }
+
+ function getSuffix(value: string | [string, any]): string {
+ return typeof value === "string" ? value : value[0];
+ }
+
+ function UpdateField(socket: Socket, diff: Diff) {
+ Database.Instance.update(diff.id, diff.diff,
+ () => socket.broadcast.emit(MessageStore.UpdateField.Message, diff), false, "newDocuments");
+ const docfield = diff.diff.$set || diff.diff.$unset;
+ if (!docfield) {
+ return;
+ }
+ const update: any = { id: diff.id };
+ let dynfield = false;
+ for (let key in docfield) {
+ if (!key.startsWith("fields.")) continue;
+ dynfield = true;
+ const val = docfield[key];
+ key = key.substring(7);
+ Object.values(suffixMap).forEach(suf => update[key + getSuffix(suf)] = { set: null });
+ const term = ToSearchTerm(val);
+ if (term !== undefined) {
+ const { suffix, value } = term;
+ update[key + suffix] = { set: value };
+ }
+ }
+ if (dynfield) {
+ Search.updateDocument(update);
+ }
+ }
+
+ function DeleteField(socket: Socket, id: string) {
+ Database.Instance.delete({ _id: id }, "newDocuments").then(() => {
+ socket.broadcast.emit(MessageStore.DeleteField.Message, id);
+ });
+
+ Search.deleteDocuments([id]);
+ }
+
+ function DeleteFields(socket: Socket, ids: string[]) {
+ Database.Instance.delete({ _id: { $in: ids } }, "newDocuments").then(() => {
+ socket.broadcast.emit(MessageStore.DeleteFields.Message, ids);
+ });
+ Search.deleteDocuments(ids);
+ }
+
+ function CreateField(newValue: any) {
+ Database.Instance.insert(newValue, "newDocuments");
+ }
+
+}
+
diff --git a/src/server/apis/google/GoogleApiServerUtils.ts b/src/server/apis/google/GoogleApiServerUtils.ts
index 5714c9928..329107a71 100644
--- a/src/server/apis/google/GoogleApiServerUtils.ts
+++ b/src/server/apis/google/GoogleApiServerUtils.ts
@@ -1,142 +1,282 @@
import { google } from "googleapis";
-import { createInterface } from "readline";
-import { readFile, writeFile } from "fs";
-import { OAuth2Client, Credentials } from "google-auth-library";
+import { OAuth2Client, Credentials, OAuth2ClientOptions } from "google-auth-library";
import { Opt } from "../../../new_fields/Doc";
-import { GlobalOptions } from "googleapis-common";
import { GaxiosResponse } from "gaxios";
import request = require('request-promise');
import * as qs from 'query-string';
-import Photos = require('googlephotos');
import { Database } from "../../database";
+import { GoogleCredentialsLoader } from "../../credentials/CredentialsLoader";
+
/**
- * Server side authentication for Google Api queries.
+ * Scopes give Google users fine granularity of control
+ * over the information they make accessible via the API.
+ * This is the somewhat overkill list of what Dash requests
+ * from the user.
*/
-export namespace GoogleApiServerUtils {
+const scope = [
+ 'documents.readonly',
+ 'documents',
+ 'presentations',
+ 'presentations.readonly',
+ 'drive',
+ 'drive.file',
+ 'photoslibrary',
+ 'photoslibrary.appendonly',
+ 'photoslibrary.sharing',
+ 'userinfo.profile'
+].map(relative => `https://www.googleapis.com/auth/${relative}`);
- // If modifying these scopes, delete token.json.
- const prefix = 'https://www.googleapis.com/auth/';
- const SCOPES = [
- 'documents.readonly',
- 'documents',
- 'presentations',
- 'presentations.readonly',
- 'drive',
- 'drive.file',
- 'photoslibrary',
- 'photoslibrary.appendonly',
- 'photoslibrary.sharing',
- 'userinfo.profile'
- ];
-
- export const parseBuffer = (data: Buffer) => JSON.parse(data.toString());
+/**
+ * This namespace manages server side authentication for Google API queries, either
+ * from the standard v1 APIs or the Google Photos REST API.
+ */
+export namespace GoogleApiServerUtils {
+ /**
+ * As we expand out to more Google APIs that are accessible from
+ * the 'googleapis' module imported above, this enum will record
+ * the list and provide a unified string representation of each API.
+ */
export enum Service {
Documents = "Documents",
Slides = "Slides"
}
- export interface CredentialInformation {
- credentialsPath: string;
- userId: string;
+ /**
+ * Global credentials read once from a JSON file
+ * before the server is started that
+ * allow us to build OAuth2 clients with Dash's
+ * application specific credentials.
+ */
+ let oAuthOptions: OAuth2ClientOptions;
+
+ /**
+ * This is a global authorization client that is never
+ * passed around, and whose credentials are never set.
+ * Its job is purely to generate new authentication urls
+ * (users will follow to get to Google's permissions GUI)
+ * and to use the codes returned from that process to generate the
+ * initial credentials.
+ */
+ let worker: OAuth2Client;
+
+ /**
+ * This function is called once before the server is started,
+ * reading in Dash's project-specific credentials (client secret
+ * and client id) for later repeated access. It also sets up the
+ * global, intentionally unauthenticated worker OAuth2 client instance.
+ */
+ export function processProjectCredentials(): void {
+ const { client_secret, client_id, redirect_uris } = GoogleCredentialsLoader.ProjectCredentials;
+ // initialize the global authorization client
+ oAuthOptions = {
+ clientId: client_id,
+ clientSecret: client_secret,
+ redirectUri: redirect_uris[0]
+ };
+ worker = generateClient();
}
+ /**
+ * A briefer format for the response from a 'googleapis' API request
+ */
export type ApiResponse = Promise<GaxiosResponse>;
+
+ /**
+ * A generic form for a handler that executes some request on the endpoint
+ */
export type ApiRouter = (endpoint: Endpoint, parameters: any) => ApiResponse;
+
+ /**
+ * A generic form for the asynchronous function that actually submits the
+ * request to the API and returns the corresporing response. Helpful when
+ * making an extensible endpoint definition.
+ */
export type ApiHandler = (parameters: any, methodOptions?: any) => ApiResponse;
+
+ /**
+ * A literal union type indicating the valid actions for these 'googleapis'
+ * requestions
+ */
export type Action = "create" | "retrieve" | "update";
- export type Endpoint = { get: ApiHandler, create: ApiHandler, batchUpdate: ApiHandler };
- export type EndpointParameters = GlobalOptions & { version: "v1" };
-
- export const GetEndpoint = (sector: string, paths: CredentialInformation) => {
- return new Promise<Opt<Endpoint>>(resolve => {
- RetrieveCredentials(paths).then(authentication => {
- let routed: Opt<Endpoint>;
- let parameters: EndpointParameters = { auth: authentication.client, version: "v1" };
- switch (sector) {
- case Service.Documents:
- routed = google.docs(parameters).documents;
- break;
- case Service.Slides:
- routed = google.slides(parameters).presentations;
- break;
- }
- resolve(routed);
- });
- });
- };
-
- export const RetrieveAccessToken = (information: CredentialInformation) => {
- return new Promise<string>((resolve, reject) => {
- RetrieveCredentials(information).then(
- credentials => resolve(credentials.token.access_token!),
- error => reject(`Error: unable to authenticate Google Photos API request.\n${error}`)
- );
+ /**
+ * An interface defining any entity on which one can invoke
+ * anuy of the following handlers. All 'googleapis' wrappers
+ * such as google.docs().documents and google.slides().presentations
+ * satisfy this interface.
+ */
+ export interface Endpoint {
+ get: ApiHandler;
+ create: ApiHandler;
+ batchUpdate: ApiHandler;
+ }
+
+ /**
+ * Maps the Dash user id of a given user to their single
+ * associated OAuth2 client, mitigating the creation
+ * of needless duplicate clients that would arise from
+ * making one new client instance per request.
+ */
+ const authenticationClients = new Map<String, OAuth2Client>();
+
+ /**
+ * This function receives the target sector ("which G-Suite app's API am I interested in?")
+ * and the id of the Dash user making the request to the API. With this information, it generates
+ * an authenticated OAuth2 client and passes it into the relevant 'googleapis' wrapper.
+ * @param sector the particular desired G-Suite 'googleapis' API (docs, slides, etc.)
+ * @param userId the id of the Dash user making the request to the API
+ * @returns the relevant 'googleapis' wrapper, if any
+ */
+ export async function GetEndpoint(sector: string, userId: string): Promise<Opt<Endpoint>> {
+ return new Promise(async resolve => {
+ const auth = await retrieveOAuthClient(userId);
+ if (!auth) {
+ return resolve();
+ }
+ let routed: Opt<Endpoint>;
+ const parameters: any = { auth, version: "v1" };
+ switch (sector) {
+ case Service.Documents:
+ routed = google.docs(parameters).documents;
+ break;
+ case Service.Slides:
+ routed = google.slides(parameters).presentations;
+ break;
+ }
+ resolve(routed);
});
- };
+ }
- const RetrieveOAuthClient = async (information: CredentialInformation) => {
- return new Promise<OAuth2Client>((resolve, reject) => {
- readFile(information.credentialsPath, async (err, credentials) => {
- if (err) {
- reject(err);
- return console.log('Error loading client secret file:', err);
- }
- const { client_secret, client_id, redirect_uris } = parseBuffer(credentials).installed;
- resolve(new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]));
- });
+ /**
+ * Returns the lengthy string or access token that can be passed into
+ * the headers of an API request or into the constructor of the Photos
+ * client API wrapper.
+ * @param userId the Dash user id of the user requesting his/her associated
+ * access_token
+ * @returns the current access_token associated with the requesting
+ * Dash user. The access_token is valid for only an hour, and
+ * is then refreshed.
+ */
+ export async function retrieveAccessToken(userId: string): Promise<string> {
+ return new Promise(async resolve => {
+ const { credentials } = await retrieveCredentials(userId);
+ if (!credentials) {
+ return resolve();
+ }
+ resolve(credentials.access_token!);
});
- };
+ }
- export const GenerateAuthenticationUrl = async (information: CredentialInformation) => {
- const client = await RetrieveOAuthClient(information);
- return client.generateAuthUrl({
- access_type: 'offline',
- scope: SCOPES.map(relative => prefix + relative),
+ /**
+ * Manipulates a mapping such that, in the limit, each Dash user has
+ * an associated authenticated OAuth2 client at their disposal. This
+ * function ensures that the client's credentials always remain up to date
+ * @param userId the Dash user id of the user requesting account integration
+ * @returns returns an initialized OAuth2 client instance, likely to be passed into Google's
+ * npm-installed API wrappers that use authenticated client instances rather than access codes for
+ * security.
+ */
+ export async function retrieveOAuthClient(userId: string): Promise<OAuth2Client> {
+ return new Promise(async resolve => {
+ const { credentials, refreshed } = await retrieveCredentials(userId);
+ if (!credentials) {
+ return resolve();
+ }
+ let client = authenticationClients.get(userId);
+ if (!client) {
+ authenticationClients.set(userId, client = generateClient(credentials));
+ } else if (refreshed) {
+ client.setCredentials(credentials);
+ }
+ resolve(client);
});
- };
+ }
+
+ /**
+ * Creates a new OAuth2Client instance, and if provided, sets
+ * the specific credentials on the client
+ * @param credentials if you have access to the credentials that you'll eventually set on
+ * the client, just pass them in at initialization
+ * @returns the newly created, potentially certified, OAuth2 client instance
+ */
+ function generateClient(credentials?: Credentials): OAuth2Client {
+ const client = new google.auth.OAuth2(oAuthOptions);
+ credentials && client.setCredentials(credentials);
+ return client;
+ }
+
+ /**
+ * Calls on the worker (which does not have and does not need
+ * any credentials) to produce a url to which the user can
+ * navigate to give Dash the necessary Google permissions.
+ * @returns the newly generated url to the authentication landing page
+ */
+ export function generateAuthenticationUrl(): string {
+ return worker.generateAuthUrl({ scope, access_type: 'offline' });
+ }
+ /**
+ * This is what we return to the server in processNewUser(), after the
+ * worker OAuth2Client has used the user-pasted authentication code
+ * to retrieve an access token and an info token. The avatar is the
+ * URL to the Google-hosted mono-color, single white letter profile 'image'.
+ */
export interface GoogleAuthenticationResult {
access_token: string;
avatar: string;
name: string;
}
- export const ProcessClientSideCode = async (information: CredentialInformation, authenticationCode: string): Promise<GoogleAuthenticationResult> => {
- const oAuth2Client = await RetrieveOAuthClient(information);
- return new Promise<GoogleAuthenticationResult>((resolve, reject) => {
- oAuth2Client.getToken(authenticationCode, async (err, token) => {
- if (err || !token) {
+
+ /**
+ * This method receives the authentication code that the
+ * user pasted into the overlay in the client side and uses the worker
+ * and the authentication code to fetch the full set of credentials that
+ * we'll store in the database for each user. This is called once per
+ * new account integration.
+ * @param userId the Dash user id of the user requesting account integration, used to associate the new credentials
+ * with a Dash user in the googleAuthentication table of the database.
+ * @param authenticationCode the Google-provided authentication code that the user copied
+ * from Google's permissions UI and pasted into the overlay.
+ *
+ * EXAMPLE CODE: 4/sgF2A5uGg4xASHf7VQDnLtdqo3mUlfQqLSce_HYz5qf1nFtHj9YTeGs
+ *
+ * @returns the information necessary to authenticate a client side google photos request
+ * and display basic user information in the overlay on successful authentication.
+ * This can be expanded as needed by adding properties to the interface GoogleAuthenticationResult.
+ */
+ export async function processNewUser(userId: string, authenticationCode: string): Promise<GoogleAuthenticationResult> {
+ const credentials = await new Promise<Credentials>((resolve, reject) => {
+ worker.getToken(authenticationCode, async (err, credentials) => {
+ if (err || !credentials) {
reject(err);
- return console.error('Error retrieving access token', err);
+ return;
}
- oAuth2Client.setCredentials(token);
- const enriched = injectUserInfo(token);
- await Database.Auxiliary.GoogleAuthenticationToken.Write(information.userId, enriched);
- const { given_name, picture } = enriched.userInfo;
- resolve({
- access_token: enriched.access_token!,
- avatar: picture,
- name: given_name
- });
+ resolve(credentials);
});
});
- };
+ const enriched = injectUserInfo(credentials);
+ await Database.Auxiliary.GoogleAuthenticationToken.Write(userId, enriched);
+ const { given_name, picture } = enriched.userInfo;
+ return {
+ access_token: enriched.access_token!,
+ avatar: picture,
+ name: given_name
+ };
+ }
/**
- * It's pretty cool: the credentials id_token is split into thirds by periods.
- * The middle third contains a base64-encoded JSON string with all the
- * user info contained in the interface below. So, we isolate that middle third,
- * base64 decode with atob and parse the JSON.
- * @param credentials the client credentials returned from OAuth after the user
- * has executed the authentication routine
+ * This type represents the union of the full set of OAuth2 credentials
+ * and all of a Google user's publically available information. This is the strucure
+ * of the JSON object we ultimately store in the googleAuthentication table of the database.
*/
- const injectUserInfo = (credentials: Credentials): EnrichedCredentials => {
- const userInfo = JSON.parse(atob(credentials.id_token!.split(".")[1]));
- return { ...credentials, userInfo };
- };
-
export type EnrichedCredentials = Credentials & { userInfo: UserInfo };
+
+ /**
+ * This interface defines all of the information we
+ * receive from parsing the base64 encoded info-token
+ * for a Google user.
+ */
export interface UserInfo {
at_hash: string;
aud: string;
@@ -152,70 +292,73 @@ export namespace GoogleApiServerUtils {
sub: string;
}
- export const RetrieveCredentials = (information: CredentialInformation) => {
- return new Promise<TokenResult>((resolve, reject) => {
- readFile(information.credentialsPath, async (err, credentials) => {
- if (err) {
- reject(err);
- return console.log('Error loading client secret file:', err);
- }
- authorize(parseBuffer(credentials), information.userId).then(resolve, reject);
- });
- });
- };
-
- export const RetrievePhotosEndpoint = (paths: CredentialInformation) => {
- return new Promise<any>((resolve, reject) => {
- RetrieveAccessToken(paths).then(
- token => resolve(new Photos(token)),
- reject
- );
- });
- };
-
- type TokenResult = { token: Credentials, client: OAuth2Client };
- /**
- * Create an OAuth2 client with the given credentials, and returns the promise resolving to the authenticated client
- * @param {Object} credentials The authorization client credentials.
- */
- export function authorize(credentials: any, userId: string): Promise<TokenResult> {
- const { client_secret, client_id, redirect_uris } = credentials.installed;
- const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]);
- return new Promise<TokenResult>((resolve, reject) => {
- // Attempting to authorize user (${userId})
- Database.Auxiliary.GoogleAuthenticationToken.Fetch(userId).then(token => {
- if (token!.expiry_date! < new Date().getTime()) {
- // Token has expired, so submitting a request for a refreshed access token
- return refreshToken(token!, client_id, client_secret, oAuth2Client, userId).then(resolve, reject);
- }
- // Authentication successful!
- oAuth2Client.setCredentials(token!);
- resolve({ token: token!, client: oAuth2Client });
- });
- });
+ /**
+ * It's pretty cool: the credentials id_token is split into thirds by periods.
+ * The middle third contains a base64-encoded JSON string with all the
+ * user info contained in the interface below. So, we isolate that middle third,
+ * base64 decode with atob and parse the JSON.
+ * @param credentials the client credentials returned from OAuth after the user
+ * has executed the authentication routine
+ * @returns the full set of credentials in the structure in which they'll be stored
+ * in the database.
+ */
+ function injectUserInfo(credentials: Credentials): EnrichedCredentials {
+ const userInfo: UserInfo = JSON.parse(atob(credentials.id_token!.split(".")[1]));
+ return { ...credentials, userInfo };
}
- const refreshEndpoint = "https://oauth2.googleapis.com/token";
- const refreshToken = (credentials: Credentials, client_id: string, client_secret: string, oAuth2Client: OAuth2Client, userId: string) => {
- return new Promise<TokenResult>(resolve => {
- let headerParameters = { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } };
- let queryParameters = {
- refreshToken: credentials.refresh_token,
- client_id,
- client_secret,
- grant_type: "refresh_token"
- };
- let url = `${refreshEndpoint}?${qs.stringify(queryParameters)}`;
- request.post(url, headerParameters).then(async response => {
- let { access_token, expires_in } = JSON.parse(response);
- const expiry_date = new Date().getTime() + (expires_in * 1000);
- await Database.Auxiliary.GoogleAuthenticationToken.Update(userId, access_token, expiry_date);
- credentials.access_token = access_token;
- credentials.expiry_date = expiry_date;
- oAuth2Client.setCredentials(credentials);
- resolve({ token: credentials, client: oAuth2Client });
- });
+ /**
+ * Looks in the database for any credentials object with the given user id,
+ * and returns them. If the credentials are found but expired, the function will
+ * automatically refresh the credentials and then resolve with the updated values.
+ * @param userId the id of the Dash user requesting his/her credentials. Eventually, each user might
+ * be associated with multiple different sets of Google credentials.
+ * @returns the credentials, or undefined if the user has no stored associated credentials,
+ * and a flag indicating whether or not they were refreshed during retrieval
+ */
+ async function retrieveCredentials(userId: string): Promise<{ credentials: Opt<Credentials>, refreshed: boolean }> {
+ let credentials: Opt<Credentials> = await Database.Auxiliary.GoogleAuthenticationToken.Fetch(userId);
+ const refreshed = false;
+ if (!credentials) {
+ return { credentials: undefined, refreshed };
+ }
+ // check for token expiry
+ if (credentials.expiry_date! <= new Date().getTime()) {
+ credentials = await refreshAccessToken(credentials, userId);
+ }
+ return { credentials, refreshed };
+ }
+
+ /**
+ * This function submits a request to OAuth with the local refresh token
+ * to revalidate the credentials for a given Google user associated with
+ * the Dash user id passed in. In addition to returning the credentials, it
+ * writes the diff to the database.
+ * @param credentials the credentials
+ * @param userId the id of the Dash user implicitly requesting that
+ * his/her credentials be refreshed
+ * @returns the updated credentials
+ */
+ async function refreshAccessToken(credentials: Credentials, userId: string): Promise<Credentials> {
+ const headerParameters = { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } };
+ const { client_id, client_secret } = GoogleCredentialsLoader.ProjectCredentials;
+ const url = `https://oauth2.googleapis.com/token?${qs.stringify({
+ refreshToken: credentials.refresh_token,
+ client_id,
+ client_secret,
+ grant_type: "refresh_token"
+ })}`;
+ const { access_token, expires_in } = await new Promise<any>(async resolve => {
+ const response = await request.post(url, headerParameters);
+ resolve(JSON.parse(response));
});
- };
+ // expires_in is in seconds, but we're building the new expiry date in milliseconds
+ const expiry_date = new Date().getTime() + (expires_in * 1000);
+ await Database.Auxiliary.GoogleAuthenticationToken.Update(userId, access_token, expiry_date);
+ // update the relevant properties
+ credentials.access_token = access_token;
+ credentials.expiry_date = expiry_date;
+ return credentials;
+ }
} \ No newline at end of file
diff --git a/src/server/apis/google/GooglePhotosUploadUtils.ts b/src/server/apis/google/GooglePhotosUploadUtils.ts
index 36256822c..8ae63caa3 100644
--- a/src/server/apis/google/GooglePhotosUploadUtils.ts
+++ b/src/server/apis/google/GooglePhotosUploadUtils.ts
@@ -1,74 +1,137 @@
import request = require('request-promise');
-import { GoogleApiServerUtils } from './GoogleApiServerUtils';
import * as path from 'path';
-import { MediaItemCreationResult, NewMediaItemResult } from './SharedTypes';
-import { NewMediaItem } from "../../index";
+import { NewMediaItemResult } from './SharedTypes';
import { BatchedArray, TimeUnit } from 'array-batcher';
import { DashUploadUtils } from '../../DashUploadUtils';
+/**
+ * This namespace encompasses the logic
+ * necessary to upload images to Google's server,
+ * and then initialize / create those images in the Photos
+ * API given the upload tokens returned from the initial
+ * uploading process.
+ *
+ * https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchCreate
+ */
export namespace GooglePhotosUploadUtils {
- export interface Paths {
- uploadDirectory: string;
- credentialsPath: string;
- tokenPath: string;
- }
-
- export interface MediaInput {
+ /**
+ * Specifies the structure of the object
+ * necessary to upload bytes to Google's servers.
+ * The url is streamed to access the image's bytes,
+ * and the description is what appears in Google Photos'
+ * description field.
+ */
+ export interface UploadSource {
url: string;
description: string;
}
- const prepend = (extension: string) => `https://photoslibrary.googleapis.com/v1/${extension}`;
- const headers = (type: string) => ({
- 'Content-Type': `application/${type}`,
- 'Authorization': Bearer,
- });
+ /**
+ * This is the format needed to pass
+ * into the BatchCreate API request
+ * to take a reference to raw uploaded bytes
+ * and actually create an image in Google Photos.
+ *
+ * So, to instantiate this interface you must have already dispatched an upload
+ * and received an upload token.
+ */
+ export interface NewMediaItem {
+ description: string;
+ simpleMediaItem: {
+ uploadToken: string;
+ };
+ }
- let Bearer: string;
+ /**
+ * A utility function to streamline making
+ * calls to the API's url - accentuates
+ * the relative path in the caller.
+ * @param extension the desired
+ * subset of the API
+ */
+ function prepend(extension: string): string {
+ return `https://photoslibrary.googleapis.com/v1/${extension}`;
+ }
- export const initialize = async (information: GoogleApiServerUtils.CredentialInformation) => {
- const token = await GoogleApiServerUtils.RetrieveAccessToken(information);
- Bearer = `Bearer ${token}`;
- };
+ /**
+ * Factors out the creation of the API request's
+ * authentication elements stored in the header.
+ * @param type the contents of the request
+ * @param token the user-specific Google access token
+ */
+ function headers(type: string, token: string) {
+ return {
+ 'Content-Type': `application/${type}`,
+ 'Authorization': `Bearer ${token}`,
+ };
+ }
- export const DispatchGooglePhotosUpload = async (url: string) => {
- if (!DashUploadUtils.imageFormats.includes(path.extname(url))) {
+ /**
+ * This is the first step in the remote image creation process.
+ * Here we upload the raw bytes of the image to Google's servers by
+ * setting authentication and other required header properties and including
+ * the raw bytes to the image, to be uploaded, in the body of the request.
+ * @param bearerToken the user-specific Google access token, specifies the account associated
+ * with the eventual image creation
+ * @param url the url of the image to upload
+ * @param filename an optional name associated with the uploaded image - if not specified
+ * defaults to the filename (basename) in the url
+ */
+ export const DispatchGooglePhotosUpload = async (bearerToken: string, url: string, filename?: string): Promise<any> => {
+ // check if the url points to a non-image or an unsupported format
+ if (!DashUploadUtils.validateExtension(url)) {
return undefined;
}
- const body = await request(url, { encoding: null });
const parameters = {
method: 'POST',
+ uri: prepend('uploads'),
headers: {
- ...headers('octet-stream'),
- 'X-Goog-Upload-File-Name': path.basename(url),
+ ...headers('octet-stream', bearerToken),
+ 'X-Goog-Upload-File-Name': filename || path.basename(url),
'X-Goog-Upload-Protocol': 'raw'
},
- uri: prepend('uploads'),
- body
+ body: await request(url, { encoding: null }) // returns a readable stream with the unencoded binary image data
};
- return new Promise<any>((resolve, reject) => request(parameters, (error, _response, body) => {
+ return new Promise((resolve, reject) => request(parameters, (error, _response, body) => {
if (error) {
- console.log(error);
+ // on rejection, the server logs the error and the offending image
return reject(error);
}
resolve(body);
}));
};
- export const CreateMediaItems = async (newMediaItems: NewMediaItem[], album?: { id: string }): Promise<NewMediaItemResult[]> => {
+ /**
+ * This is the second step in the remote image creation process: having uploaded
+ * the raw bytes of the image and received / stored pointers (upload tokens) to those
+ * bytes, we can now instruct the API to finalize the creation of those images by
+ * submitting a batch create request with the list of upload tokens and the description
+ * to be associated with reach resulting new image.
+ * @param bearerToken the user-specific Google access token, specifies the account associated
+ * with the eventual image creation
+ * @param newMediaItems a list of objects containing a description and, effectively, the
+ * pointer to the uploaded bytes
+ * @param album if included, will add all of the newly created remote images to the album
+ * with the specified id
+ */
+ export const CreateMediaItems = async (bearerToken: string, newMediaItems: NewMediaItem[], album?: { id: string }): Promise<NewMediaItemResult[]> => {
+ // it's important to note that the API can't handle more than 50 items in each request and
+ // seems to need at least some latency between requests (spamming it synchronously has led to the server returning errors)...
const batched = BatchedArray.from(newMediaItems, { batchSize: 50 });
+ // ...so we execute them in delayed batches and await the entire execution
return batched.batchedMapPatientInterval(
{ magnitude: 100, unit: TimeUnit.Milliseconds },
- async (batch, collector) => {
+ async (batch: NewMediaItem[], collector: any): Promise<any> => {
const parameters = {
method: 'POST',
- headers: headers('json'),
+ headers: headers('json', bearerToken),
uri: prepend('mediaItems:batchCreate'),
body: { newMediaItems: batch } as any,
json: true
};
+ // register the target album, if provided
album && (parameters.body.albumId = album.id);
collector.push(...(await new Promise<NewMediaItemResult[]>((resolve, reject) => {
request(parameters, (error, _response, body) => {
diff --git a/src/server/authentication/config/passport.ts b/src/server/authentication/config/passport.ts
index 8915a4abf..286209b20 100644
--- a/src/server/authentication/config/passport.ts
+++ b/src/server/authentication/config/passport.ts
@@ -1,9 +1,6 @@
import * as passport from 'passport';
import * as passportLocal from 'passport-local';
-import _ from "lodash";
import { default as User } from '../models/user_model';
-import { Request, Response, NextFunction } from "express";
-import { RouteStore } from '../../RouteStore';
const LocalStrategy = passportLocal.Strategy;
@@ -29,21 +26,4 @@ passport.use(new LocalStrategy({ usernameField: 'email', passReqToCallback: true
return done(undefined, user);
});
});
-}));
-
-export let isAuthenticated = (req: Request, res: Response, next: NextFunction) => {
- if (req.isAuthenticated()) {
- return next();
- }
- return res.redirect(RouteStore.login);
-};
-
-export let isAuthorized = (req: Request, res: Response, next: NextFunction) => {
- const provider = req.path.split("/").slice(-1)[0];
-
- if (_.find((req.user as any).tokens, { kind: provider })) {
- next();
- } else {
- res.redirect(`/auth/${provider}`);
- }
-}; \ No newline at end of file
+})); \ No newline at end of file
diff --git a/src/server/authentication/controllers/user_controller.ts b/src/server/authentication/controllers/user_controller.ts
index f5c6e1610..f0086d4ea 100644
--- a/src/server/authentication/controllers/user_controller.ts
+++ b/src/server/authentication/controllers/user_controller.ts
@@ -3,17 +3,11 @@ import { Request, Response, NextFunction } from "express";
import * as passport from "passport";
import { IVerifyOptions } from "passport-local";
import "../config/passport";
-import * as request from "express-validator";
import flash = require("express-flash");
-import * as session from "express-session";
-import * as pug from 'pug';
import * as async from 'async';
import * as nodemailer from 'nodemailer';
import c = require("crypto");
-import { RouteStore } from "../../RouteStore";
import { Utils } from "../../../Utils";
-import { Schema } from "mongoose";
-import { Opt } from "../../../new_fields/Doc";
import { MailOptions } from "nodemailer/lib/stream-transport";
/**
@@ -23,8 +17,7 @@ import { MailOptions } from "nodemailer/lib/stream-transport";
*/
export let getSignup = (req: Request, res: Response) => {
if (req.user) {
- let user = req.user;
- return res.redirect(RouteStore.home);
+ return res.redirect("/home");
}
res.render("signup.pug", {
title: "Sign Up",
@@ -45,7 +38,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
const errors = req.validationErrors();
if (errors) {
- return res.redirect(RouteStore.signup);
+ return res.redirect("/signup");
}
const email = req.body.email as String;
@@ -62,7 +55,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
User.findOne({ email }, (err, existingUser) => {
if (err) { return next(err); }
if (existingUser) {
- return res.redirect(RouteStore.login);
+ return res.redirect("/login");
}
user.save((err: any) => {
if (err) { return next(err); }
@@ -75,13 +68,13 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
};
-let tryRedirectToTarget = (req: Request, res: Response) => {
+const tryRedirectToTarget = (req: Request, res: Response) => {
if (req.session && req.session.target) {
- let target = req.session.target;
+ const target = req.session.target;
req.session.target = undefined;
res.redirect(target);
} else {
- res.redirect(RouteStore.home);
+ res.redirect("/home");
}
};
@@ -93,7 +86,7 @@ let tryRedirectToTarget = (req: Request, res: Response) => {
export let getLogin = (req: Request, res: Response) => {
if (req.user) {
req.session!.target = undefined;
- return res.redirect(RouteStore.home);
+ return res.redirect("/home");
}
res.render("login.pug", {
title: "Log In",
@@ -115,13 +108,13 @@ export let postLogin = (req: Request, res: Response, next: NextFunction) => {
if (errors) {
req.flash("errors", "Unable to login at this time. Please try again.");
- return res.redirect(RouteStore.signup);
+ return res.redirect("/signup");
}
passport.authenticate("local", (err: Error, user: DashUserModel, info: IVerifyOptions) => {
if (err) { next(err); return; }
if (!user) {
- return res.redirect(RouteStore.signup);
+ return res.redirect("/signup");
}
req.logIn(user, (err) => {
if (err) { next(err); return; }
@@ -141,7 +134,7 @@ export let getLogout = (req: Request, res: Response) => {
if (sess) {
sess.destroy((err) => { if (err) { console.log(err); } });
}
- res.redirect(RouteStore.login);
+ res.redirect("/login");
};
export let getForgot = function (req: Request, res: Response) {
@@ -155,7 +148,6 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
const email = req.body.email;
async.waterfall([
function (done: any) {
- let token: string;
c.randomBytes(20, function (err: any, buffer: Buffer) {
if (err) {
done(null);
@@ -168,7 +160,7 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
User.findOne({ email }, function (err, user: DashUserModel) {
if (!user) {
// NO ACCOUNT WITH SUBMITTED EMAIL
- res.redirect(RouteStore.forgot);
+ res.redirect("/forgotPassword");
return;
}
user.passwordResetToken = token;
@@ -192,7 +184,7 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
subject: 'Dash Password Reset',
text: 'You are receiving this because you (or someone else) have requested the reset of the password for your account.\n\n' +
'Please click on the following link, or paste this into your browser to complete the process:\n\n' +
- 'http://' + req.headers.host + '/reset/' + token + '\n\n' +
+ 'http://' + req.headers.host + '/resetPassword/' + token + '\n\n' +
'If you did not request this, please ignore this email and your password will remain unchanged.\n'
} as MailOptions;
smtpTransport.sendMail(mailOptions, function (err: Error | null) {
@@ -202,14 +194,14 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
}
], function (err) {
if (err) return next(err);
- res.redirect(RouteStore.forgot);
+ res.redirect("/forgotPassword");
});
};
export let getReset = function (req: Request, res: Response) {
User.findOne({ passwordResetToken: req.params.token, passwordResetExpires: { $gt: Date.now() } }, function (err, user: DashUserModel) {
if (!user || err) {
- return res.redirect(RouteStore.forgot);
+ return res.redirect("/forgotPassword");
}
res.render("reset.pug", {
title: "Reset Password",
@@ -239,7 +231,7 @@ export let postReset = function (req: Request, res: Response) {
user.save(function (err) {
if (err) {
- res.redirect(RouteStore.login);
+ res.redirect("/login");
return;
}
req.logIn(user, function (err) {
@@ -271,6 +263,6 @@ export let postReset = function (req: Request, res: Response) {
});
}
], function (err) {
- res.redirect(RouteStore.login);
+ res.redirect("/login");
});
}; \ No newline at end of file
diff --git a/src/server/authentication/models/current_user_utils.ts b/src/server/authentication/models/current_user_utils.ts
index 466e2d707..b0ea2f9ad 100644
--- a/src/server/authentication/models/current_user_utils.ts
+++ b/src/server/authentication/models/current_user_utils.ts
@@ -1,4 +1,4 @@
-import { action, computed, observable, reaction, runInAction } from "mobx";
+import { action, computed, observable, reaction } from "mobx";
import * as rp from 'request-promise';
import { DocServer } from "../../../client/DocServer";
import { Docs } from "../../../client/documents/Documents";
@@ -9,12 +9,12 @@ import { Doc, DocListCast } from "../../../new_fields/Doc";
import { List } from "../../../new_fields/List";
import { listSpec } from "../../../new_fields/Schema";
import { ScriptField, ComputedField } from "../../../new_fields/ScriptField";
-import { Cast, PromiseValue } from "../../../new_fields/Types";
+import { Cast, PromiseValue, StrCast } from "../../../new_fields/Types";
import { Utils } from "../../../Utils";
-import { RouteStore } from "../../RouteStore";
-import { InkingControl } from "../../../client/views/InkingControl";
-import { DragManager } from "../../../client/util/DragManager";
import { nullAudio } from "../../../new_fields/URLField";
+import { DragManager } from "../../../client/util/DragManager";
+import { InkingControl } from "../../../client/views/InkingControl";
+import { CollectionViewType } from "../../../client/views/collections/CollectionView";
export class CurrentUserUtils {
private static curr_id: string;
@@ -29,62 +29,140 @@ export class CurrentUserUtils {
@observable public static GuestTarget: Doc | undefined;
@observable public static GuestWorkspace: Doc | undefined;
+ @observable public static GuestMobile: Doc | undefined;
// a default set of note types .. not being used yet...
static setupNoteTypes(doc: Doc) {
return [
- Docs.Create.TextDocument({ title: "Note", backgroundColor: "yellow", isTemplateDoc: true }),
- Docs.Create.TextDocument({ title: "Idea", backgroundColor: "pink", isTemplateDoc: true }),
- Docs.Create.TextDocument({ title: "Topic", backgroundColor: "lightBlue", isTemplateDoc: true }),
- Docs.Create.TextDocument({ title: "Person", backgroundColor: "lightGreen", isTemplateDoc: true }),
- Docs.Create.TextDocument({ title: "Todo", backgroundColor: "orange", isTemplateDoc: true })
+ Docs.Create.TextDocument("", { title: "Note", backgroundColor: "yellow", isTemplateDoc: true }),
+ Docs.Create.TextDocument("", { title: "Idea", backgroundColor: "pink", isTemplateDoc: true }),
+ Docs.Create.TextDocument("", { title: "Topic", backgroundColor: "lightBlue", isTemplateDoc: true }),
+ Docs.Create.TextDocument("", { title: "Person", backgroundColor: "lightGreen", isTemplateDoc: true }),
+ Docs.Create.TextDocument("", { title: "Todo", backgroundColor: "orange", isTemplateDoc: true })
];
}
// setup the "creator" buttons for the sidebar-- eg. the default set of draggable document creation tools
- static setupCreatorButtons(doc: Doc) {
- let notes = CurrentUserUtils.setupNoteTypes(doc);
- doc.noteTypes = Docs.Create.TreeDocument(notes, { title: "Note Types", height: 75 });
+ static setupCreatorButtons(doc: Doc, buttons?: string[]) {
+ const notes = CurrentUserUtils.setupNoteTypes(doc);
+ doc.noteTypes = Docs.Create.TreeDocument(notes, { title: "Note Types", _height: 75 });
doc.activePen = doc;
- let docProtoData: { title: string, icon: string, drag?: string, ignoreClick?: boolean, click?: string, unchecked?: string, activePen?: Doc, backgroundColor?: string, dragFactory?: Doc }[] = [
- { title: "collection", icon: "folder", ignoreClick: true, drag: 'Docs.Create.FreeformDocument([], { nativeWidth: undefined, nativeHeight: undefined, width: 150, height: 100, title: "freeform" })' },
+ const docProtoData: { title: string, icon: string, drag?: string, ignoreClick?: boolean, click?: string, ischecked?: string, activePen?: Doc, backgroundColor?: string, dragFactory?: Doc }[] = [
+ { title: "collection", icon: "folder", ignoreClick: true, drag: 'Docs.Create.FreeformDocument([], { _nativeWidth: undefined, _nativeHeight: undefined, _LODdisable: true, _width: 150, _height: 100, title: "freeform" })' },
+ { title: "preview", icon: "expand", ignoreClick: true, drag: 'Docs.Create.DocumentDocument(ComputedField.MakeFunction("selectedDocs(this,true,[_last_])?.[0]"), { _width: 250, _height: 250, title: "container" })' },
{ title: "todo item", icon: "check", ignoreClick: true, drag: 'getCopy(this.dragFactory, true)', dragFactory: notes[notes.length - 1] },
- { title: "web page", icon: "globe-asia", ignoreClick: true, drag: 'Docs.Create.WebDocument("https://en.wikipedia.org/wiki/Hedgehog", { width: 300, height: 300, title: "New Webpage" })' },
- { title: "cat image", icon: "cat", ignoreClick: true, drag: 'Docs.Create.ImageDocument("https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg", { width: 200, title: "an image of a cat" })' },
- { title: "record", icon: "microphone", ignoreClick: true, drag: `Docs.Create.AudioDocument("${nullAudio}", { width: 200, title: "ready to record audio" })` },
- { title: "clickable button", icon: "bolt", ignoreClick: true, drag: 'Docs.Create.ButtonDocument({ width: 150, height: 50, title: "Button" })' },
- { title: "presentation", icon: "tv", ignoreClick: true, drag: 'Doc.UserDoc().curPresentation = Docs.Create.PresDocument(new List<Doc>(), { width: 200, height: 500, title: "a presentation trail" })' },
- { title: "import folder", icon: "cloud-upload-alt", ignoreClick: true, drag: 'Docs.Create.DirectoryImportDocument({ title: "Directory Import", width: 400, height: 400 })' },
- { title: "use pen", icon: "pen-nib", click: 'activatePen(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this,2, this.backgroundColor)', backgroundColor: "blue", unchecked: `!sameDocs(this.activePen.pen, this)`, activePen: doc },
- { title: "use highlighter", icon: "highlighter", click: 'activateBrush(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this,20,this.backgroundColor)', backgroundColor: "yellow", unchecked: `!sameDocs(this.activePen.pen, this)`, activePen: doc },
- { title: "use eraser", icon: "eraser", click: 'activateEraser(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this);', unchecked: `!sameDocs(this.activePen.pen, this)`, backgroundColor: "pink", activePen: doc },
- { title: "use scrubber", icon: "eraser", click: 'activateScrubber(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this);', unchecked: `!sameDocs(this.activePen.pen, this)`, backgroundColor: "green", activePen: doc },
- { title: "use drag", icon: "mouse-pointer", click: 'deactivateInk();this.activePen.pen = this;', unchecked: `!sameDocs(this.activePen.pen, this) && this.activePen.pen !== undefined`, backgroundColor: "white", activePen: doc },
+ { title: "web page", icon: "globe-asia", ignoreClick: true, drag: 'Docs.Create.WebDocument("https://en.wikipedia.org/wiki/Hedgehog", {_width: 300, _height: 300, title: "New Webpage" })' },
+ { title: "cat image", icon: "cat", ignoreClick: true, drag: 'Docs.Create.ImageDocument("https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg", { _width: 200, title: "an image of a cat" })' },
+ { title: "record", icon: "microphone", ignoreClick: true, drag: `Docs.Create.AudioDocument("${nullAudio}", { _width: 200, title: "ready to record audio" })` },
+ { title: "clickable button", icon: "bolt", ignoreClick: true, drag: 'Docs.Create.ButtonDocument({ _width: 150, _height: 50, title: "Button" })' },
+ { title: "presentation", icon: "tv", ignoreClick: true, drag: `Doc.UserDoc().curPresentation = Docs.Create.PresDocument(new List<Doc>(), { _width: 200, _height: 500, _viewType: ${CollectionViewType.Stacking}, title: "a presentation trail" })` },
+ { title: "import folder", icon: "cloud-upload-alt", ignoreClick: true, drag: 'Docs.Create.DirectoryImportDocument({ title: "Directory Import", _width: 400, _height: 400 })' },
+ { title: "mobile view", icon: "phone", ignoreClick: true, drag: 'Doc.UserDoc().activeMobile' },
+ { title: "use pen", icon: "pen-nib", click: 'activatePen(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this,2, this.backgroundColor)', backgroundColor: "blue", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ { title: "use highlighter", icon: "highlighter", click: 'activateBrush(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this,20,this.backgroundColor)', backgroundColor: "yellow", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ { title: "use stamp", icon: "stamp", click: 'activateStamp(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this)', backgroundColor: "orange", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ { title: "use eraser", icon: "eraser", click: 'activateEraser(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this);', ischecked: `sameDocs(this.activePen.pen, this)`, backgroundColor: "pink", activePen: doc },
+ { title: "use scrubber", icon: "eraser", click: 'activateScrubber(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this);', ischecked: `sameDocs(this.activePen.pen, this)`, backgroundColor: "green", activePen: doc },
+ { title: "use drag", icon: "mouse-pointer", click: 'deactivateInk();this.activePen.pen = this;', ischecked: `sameDocs(this.activePen.pen, this)`, backgroundColor: "white", activePen: doc },
];
- return docProtoData.map(data => Docs.Create.FontIconDocument({
- nativeWidth: 100, nativeHeight: 100, width: 100, height: 100, dropAction: data.click ? "copy" : undefined, title: data.title, icon: data.icon, ignoreClick: data.ignoreClick,
+ return docProtoData.filter(d => !buttons || !buttons.includes(d.title)).map(data => Docs.Create.FontIconDocument({
+ _nativeWidth: 100, _nativeHeight: 100, _width: 100, _height: 100, _dropAction: data.click ? "copy" : undefined, title: data.title, icon: data.icon, ignoreClick: data.ignoreClick,
+ onDragStart: data.drag ? ScriptField.MakeFunction(data.drag) : undefined, onClick: data.click ? ScriptField.MakeScript(data.click) : undefined,
+ ischecked: data.ischecked ? ComputedField.MakeFunction(data.ischecked) : undefined, activePen: data.activePen,
+ backgroundColor: data.backgroundColor, removeDropProperties: new List<string>(["dropAction"]), dragFactory: data.dragFactory,
+ }));
+ }
+
+ static async updateCreatorButtons(doc: Doc) {
+ const toolsBtn = await Cast(doc.ToolsBtn, Doc);
+ if (toolsBtn) {
+ const stackingDoc = await Cast(toolsBtn.sourcePanel, Doc);
+ if (stackingDoc) {
+ const stackdocs = await Cast(stackingDoc.data, listSpec(Doc));
+ if (stackdocs) {
+ const dragset = await Cast(stackdocs[0], Doc);
+ if (dragset) {
+ const dragdocs = await Cast(dragset.data, listSpec(Doc));
+ if (dragdocs) {
+ const dragDocs = await Promise.all(dragdocs);
+ const newButtons = this.setupCreatorButtons(doc, dragDocs.map(d => StrCast(d.title)));
+ newButtons.map(nb => Doc.AddDocToList(dragset, "data", nb));
+ }
+ }
+ }
+ }
+ }
+ }
+
+ static setupMobileButtons(doc: Doc, buttons?: string[]) {
+ const docProtoData: { title: string, icon: string, drag?: string, ignoreClick?: boolean, click?: string, ischecked?: string, activePen?: Doc, backgroundColor?: string, dragFactory?: Doc }[] = [
+ { title: "record", icon: "microphone", ignoreClick: true, click: "FILL" },
+ { title: "use pen", icon: "pen-nib", click: 'activatePen(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this,2, this.backgroundColor)', backgroundColor: "blue", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ { title: "use highlighter", icon: "highlighter", click: 'activateBrush(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this,20,this.backgroundColor)', backgroundColor: "yellow", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ { title: "use eraser", icon: "eraser", click: 'activateEraser(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this);', ischecked: `sameDocs(this.activePen.pen, this)`, backgroundColor: "pink", activePen: doc },
+ { title: "use scrubber", icon: "eraser", click: 'activateScrubber(this.activePen.pen = sameDocs(this.activePen.pen, this) ? undefined : this);', ischecked: `sameDocs(this.activePen.pen, this)`, backgroundColor: "green", activePen: doc },
+ { title: "use drag", icon: "mouse-pointer", click: 'deactivateInk();this.activePen.pen = this;', ischecked: `sameDocs(this.activePen.pen, this)`, backgroundColor: "white", activePen: doc },
+ ];
+ return docProtoData.filter(d => !buttons || !buttons.includes(d.title)).map(data => Docs.Create.FontIconDocument({
+ _nativeWidth: 100, _nativeHeight: 100, _width: 100, _height: 100, _dropAction: data.click ? "copy" : undefined, title: data.title, icon: data.icon, ignoreClick: data.ignoreClick,
onDragStart: data.drag ? ScriptField.MakeFunction(data.drag) : undefined, onClick: data.click ? ScriptField.MakeScript(data.click) : undefined,
- unchecked: data.unchecked ? ComputedField.MakeFunction(data.unchecked) : undefined, activePen: data.activePen,
+ ischecked: data.ischecked ? ComputedField.MakeFunction(data.ischecked) : undefined, activePen: data.activePen,
+ backgroundColor: data.backgroundColor, removeDropProperties: new List<string>(["dropAction"]), dragFactory: data.dragFactory,
+ }));
+ }
+
+ static setupThumbButtons(doc: Doc) {
+ const docProtoData: { title: string, icon: string, drag?: string, ignoreClick?: boolean, pointerDown?: string, pointerUp?: string, ischecked?: string, clipboard?: Doc, activePen?: Doc, backgroundColor?: string, dragFactory?: Doc }[] = [
+ { title: "use pen", icon: "pen-nib", pointerUp: "resetPen()", pointerDown: 'setPen(2, this.backgroundColor)', backgroundColor: "blue", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ { title: "use highlighter", icon: "highlighter", pointerUp: "resetPen()", pointerDown: 'setPen(20, this.backgroundColor)', backgroundColor: "yellow", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ { title: "notepad", icon: "clipboard", pointerUp: "GestureOverlay.Instance.closeFloatingDoc()", pointerDown: 'GestureOverlay.Instance.openFloatingDoc(this.clipboard)', clipboard: Docs.Create.FreeformDocument([], { _width: 300, _height: 300 }), backgroundColor: "orange", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ { title: "interpret text", icon: "font", pointerUp: "setToolglass('none')", pointerDown: "setToolglass('inktotext')", backgroundColor: "orange", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ { title: "ignore gestures", icon: "signature", pointerUp: "setToolglass('none')", pointerDown: "setToolglass('ignoregesture')", backgroundColor: "green", ischecked: `sameDocs(this.activePen.pen, this)`, activePen: doc },
+ ];
+ return docProtoData.map(data => Docs.Create.FontIconDocument({
+ _nativeWidth: 10, _nativeHeight: 10, _width: 10, _height: 10, _dropAction: data.pointerDown ? "copy" : undefined, title: data.title, icon: data.icon, ignoreClick: data.ignoreClick,
+ onDragStart: data.drag ? ScriptField.MakeFunction(data.drag) : undefined,
+ clipboard: data.clipboard,
+ onPointerUp: data.pointerUp ? ScriptField.MakeScript(data.pointerUp) : undefined, onPointerDown: data.pointerDown ? ScriptField.MakeScript(data.pointerDown) : undefined,
+ ischecked: data.ischecked ? ComputedField.MakeFunction(data.ischecked) : undefined, activePen: data.activePen, pointerHack: true,
backgroundColor: data.backgroundColor, removeDropProperties: new List<string>(["dropAction"]), dragFactory: data.dragFactory,
}));
}
+ static setupThumbDoc(userDoc: Doc) {
+ if (!userDoc.thumbDoc) {
+ const thumbDoc = Docs.Create.LinearDocument(CurrentUserUtils.setupThumbButtons(userDoc), {
+ _width: 100, _height: 50, ignoreClick: true, lockedPosition: true, _chromeStatus: "disabled", title: "buttons", _autoHeight: true, _yMargin: 5, isExpanded: true, backgroundColor: "white"
+ });
+ thumbDoc.inkToTextDoc = Docs.Create.LinearDocument([], { _width: 300, _height: 25, _autoHeight: true, _chromeStatus: "disabled", isExpanded: true, flexDirection: "column" });
+ userDoc.thumbDoc = thumbDoc;
+ }
+ return Cast(userDoc.thumbDoc, Doc);
+ }
+
+ static setupMobileDoc(userDoc: Doc) {
+ return userDoc.activeMoble ?? Docs.Create.MasonryDocument(CurrentUserUtils.setupMobileButtons(userDoc), {
+ columnWidth: 100, ignoreClick: true, lockedPosition: true, _chromeStatus: "disabled", title: "buttons", _autoHeight: true, _yMargin: 5
+ });
+ }
+
// setup the Creator button which will display the creator panel. This panel will include the drag creators and the color picker. when clicked, this panel will be displayed in the target container (ie, sidebarContainer)
static setupToolsPanel(sidebarContainer: Doc, doc: Doc) {
// setup a masonry view of all he creators
const dragCreators = Docs.Create.MasonryDocument(CurrentUserUtils.setupCreatorButtons(doc), {
- width: 500, autoHeight: true, columnWidth: 35, ignoreClick: true, lockedPosition: true, chromeStatus: "disabled", title: "buttons",
- dropConverter: ScriptField.MakeScript("convertToButtons(dragData)", { dragData: DragManager.DocumentDragData.name }), yMargin: 5
+ _width: 500, _autoHeight: true, columnWidth: 35, ignoreClick: true, lockedPosition: true, _chromeStatus: "disabled", title: "buttons",
+ dropConverter: ScriptField.MakeScript("convertToButtons(dragData)", { dragData: DragManager.DocumentDragData.name }), _yMargin: 5
});
// setup a color picker
const color = Docs.Create.ColorDocument({
- title: "color picker", width: 400, dropAction: "alias", forceActive: true, removeDropProperties: new List<string>(["dropAction", "forceActive"])
+ title: "color picker", _width: 300, _dropAction: "alias", forceActive: true, removeDropProperties: new List<string>(["dropAction", "forceActive"])
});
return Docs.Create.ButtonDocument({
- width: 35, height: 35, borderRounding: "50%", boxShadow: "2px 2px 1px", title: "Tools", targetContainer: sidebarContainer,
+ _width: 35, _height: 25, backgroundColor: "lightgrey", color: "rgb(34, 34, 34)", title: "Tools", fontSize: 10, targetContainer: sidebarContainer,
+ letterSpacing: "0px", textTransform: "unset", borderRounding: "5px 5px 0px 0px", boxShadow: "3px 3px 0px rgb(34, 34, 34)",
sourcePanel: Docs.Create.StackingDocument([dragCreators, color], {
- width: 500, height: 800, lockedPosition: true, chromeStatus: "disabled", title: "tools stack"
+ _width: 500, lockedPosition: true, _chromeStatus: "disabled", title: "tools stack"
}),
onClick: ScriptField.MakeScript("this.targetContainer.proto = this.sourcePanel"),
});
@@ -94,32 +172,34 @@ export class CurrentUserUtils {
static setupLibraryPanel(sidebarContainer: Doc, doc: Doc) {
// setup workspaces library item
doc.workspaces = Docs.Create.TreeDocument([], {
- title: "WORKSPACES", height: 100, forceActive: true, boxShadow: "0 0", lockedPosition: true, backgroundColor: "#eeeeee"
+ title: "WORKSPACES", _height: 100, forceActive: true, boxShadow: "0 0", lockedPosition: true, backgroundColor: "#eeeeee"
});
doc.documents = Docs.Create.TreeDocument([], {
- title: "DOCUMENTS", height: 42, forceActive: true, boxShadow: "0 0", preventTreeViewOpen: true, lockedPosition: true, backgroundColor: "#eeeeee"
+ title: "DOCUMENTS", _height: 42, forceActive: true, boxShadow: "0 0", preventTreeViewOpen: true, lockedPosition: true, backgroundColor: "#eeeeee"
});
// setup Recently Closed library item
doc.recentlyClosed = Docs.Create.TreeDocument([], {
- title: "RECENTLY CLOSED", height: 75, forceActive: true, boxShadow: "0 0", preventTreeViewOpen: true, lockedPosition: true, backgroundColor: "#eeeeee"
+ title: "RECENTLY CLOSED", _height: 75, forceActive: true, boxShadow: "0 0", preventTreeViewOpen: true, lockedPosition: true, backgroundColor: "#eeeeee"
});
return Docs.Create.ButtonDocument({
- width: 50, height: 35, borderRounding: "50%", boxShadow: "2px 2px 1px", title: "Library",
+ _width: 50, _height: 25, backgroundColor: "lightgrey", color: "rgb(34, 34, 34)", title: "Library", fontSize: 10,
+ letterSpacing: "0px", textTransform: "unset", borderRounding: "5px 5px 0px 0px", boxShadow: "3px 3px 0px rgb(34, 34, 34)",
sourcePanel: Docs.Create.TreeDocument([doc.workspaces as Doc, doc.documents as Doc, doc.recentlyClosed as Doc], {
- title: "Library", xMargin: 5, yMargin: 5, gridGap: 5, forceActive: true, dropAction: "alias", lockedPosition: true
+ title: "Library", _xMargin: 5, _yMargin: 5, _gridGap: 5, forceActive: true, _dropAction: "alias", lockedPosition: true, boxShadow: "0 0",
}),
targetContainer: sidebarContainer,
- onClick: ScriptField.MakeScript("this.targetContainer.proto = this.sourcePanel")
+ onClick: ScriptField.MakeScript("this.targetContainer.proto = this.sourcePanel;")
});
}
// setup the Search button which will display the search panel.
static setupSearchPanel(sidebarContainer: Doc) {
return Docs.Create.ButtonDocument({
- width: 50, height: 35, borderRounding: "50%", boxShadow: "2px 2px 1px", title: "Search",
+ _width: 50, _height: 25, backgroundColor: "lightgrey", color: "rgb(34, 34, 34)", title: "Search", fontSize: 10,
+ letterSpacing: "0px", textTransform: "unset", borderRounding: "5px 5px 0px 0px", boxShadow: "3px 3px 0px rgb(34, 34, 34)",
sourcePanel: Docs.Create.QueryDocument({
title: "search stack", ignoreClick: true
}),
@@ -132,7 +212,7 @@ export class CurrentUserUtils {
// setup the list of sidebar mode buttons which determine what is displayed in the sidebar
static setupSidebarButtons(doc: Doc) {
doc.sidebarContainer = new Doc();
- (doc.sidebarContainer as Doc).chromeStatus = "disabled";
+ (doc.sidebarContainer as Doc)._chromeStatus = "disabled";
(doc.sidebarContainer as Doc).onClick = ScriptField.MakeScript("freezeSidebar()");
doc.ToolsBtn = this.setupToolsPanel(doc.sidebarContainer as Doc, doc);
@@ -141,20 +221,21 @@ export class CurrentUserUtils {
// Finally, setup the list of buttons to display in the sidebar
doc.sidebarButtons = Docs.Create.StackingDocument([doc.SearchBtn as Doc, doc.LibraryBtn as Doc, doc.ToolsBtn as Doc], {
- width: 500, height: 80, boxShadow: "0 0", sectionFilter: "title", hideHeadings: true, ignoreClick: true,
- backgroundColor: "lightgrey", chromeStatus: "disabled", title: "library stack"
+ _width: 500, _height: 80, boxShadow: "0 0", sectionFilter: "title", hideHeadings: true, ignoreClick: true,
+ backgroundColor: "rgb(100, 100, 100)", _chromeStatus: "disabled", title: "library stack",
+ _yMargin: 10,
});
}
/// sets up the default list of buttons to be shown in the expanding button menu at the bottom of the Dash window
static setupExpandingButtons(doc: Doc) {
doc.undoBtn = Docs.Create.FontIconDocument(
- { nativeWidth: 100, nativeHeight: 100, width: 100, height: 100, dropAction: "alias", onClick: ScriptField.MakeScript("undo()"), removeDropProperties: new List<string>(["dropAction"]), title: "undo button", icon: "undo-alt" });
+ { _nativeWidth: 100, _nativeHeight: 100, _width: 100, _height: 100, _dropAction: "alias", onClick: ScriptField.MakeScript("undo()"), removeDropProperties: new List<string>(["dropAction"]), title: "undo button", icon: "undo-alt" });
doc.redoBtn = Docs.Create.FontIconDocument(
- { nativeWidth: 100, nativeHeight: 100, width: 100, height: 100, dropAction: "alias", onClick: ScriptField.MakeScript("redo()"), removeDropProperties: new List<string>(["dropAction"]), title: "redo button", icon: "redo-alt" });
+ { _nativeWidth: 100, _nativeHeight: 100, _width: 100, _height: 100, _dropAction: "alias", onClick: ScriptField.MakeScript("redo()"), removeDropProperties: new List<string>(["dropAction"]), title: "redo button", icon: "redo-alt" });
doc.expandingButtons = Docs.Create.LinearDocument([doc.undoBtn as Doc, doc.redoBtn as Doc], {
- title: "expanding buttons", gridGap: 5, xMargin: 5, yMargin: 5, height: 42, width: 100, boxShadow: "0 0",
+ title: "expanding buttons", _gridGap: 5, _xMargin: 5, _yMargin: 5, _height: 42, _width: 100, boxShadow: "0 0",
backgroundColor: "black", preventTreeViewOpen: true, forceActive: true, lockedPosition: true,
dropConverter: ScriptField.MakeScript("convertToButtons(dragData)", { dragData: DragManager.DocumentDragData.name })
});
@@ -163,13 +244,13 @@ export class CurrentUserUtils {
// sets up the default set of documents to be shown in the Overlay layer
static setupOverlays(doc: Doc) {
doc.overlays = Docs.Create.FreeformDocument([], { title: "Overlays", backgroundColor: "#aca3a6" });
- doc.linkFollowBox = Docs.Create.LinkFollowBoxDocument({ x: 250, y: 20, width: 500, height: 370, title: "Link Follower" });
+ doc.linkFollowBox = Docs.Create.LinkFollowBoxDocument({ x: 250, y: 20, _width: 500, _height: 370, title: "Link Follower" });
Doc.AddDocToList(doc.overlays as Doc, "data", doc.linkFollowBox as Doc);
}
// the initial presentation Doc to use
static setupDefaultPresentation(doc: Doc) {
- doc.curPresentation = Docs.Create.PresDocument(new List<Doc>(), { title: "Presentation", boxShadow: "0 0" });
+ doc.curPresentation = Docs.Create.PresDocument(new List<Doc>(), { title: "Presentation", _viewType: CollectionViewType.Stacking, boxShadow: "0 0" });
}
static setupMobileUploads(doc: Doc) {
@@ -203,11 +284,12 @@ export class CurrentUserUtils {
doc.undoBtn && reaction(() => UndoManager.undoStack.slice(), () => Doc.GetProto(doc.undoBtn as Doc).opacity = UndoManager.CanUndo() ? 1 : 0.4, { fireImmediately: true });
doc.redoBtn && reaction(() => UndoManager.redoStack.slice(), () => Doc.GetProto(doc.redoBtn as Doc).opacity = UndoManager.CanRedo() ? 1 : 0.4, { fireImmediately: true });
+ this.updateCreatorButtons(doc);
return doc;
}
- public static loadCurrentUser() {
- return rp.get(Utils.prepend(RouteStore.getCurrUser)).then(response => {
+ public static async loadCurrentUser() {
+ return rp.get(Utils.prepend("/getCurrentUser")).then(response => {
if (response) {
const result: { id: string, email: string } = JSON.parse(response);
return result;
@@ -220,7 +302,7 @@ export class CurrentUserUtils {
public static async loadUserDocument({ id, email }: { id: string, email: string }) {
this.curr_id = id;
Doc.CurrentUserEmail = email;
- await rp.get(Utils.prepend(RouteStore.getUserDocumentId)).then(id => {
+ await rp.get(Utils.prepend("/getUserDocumentId")).then(id => {
if (id && id !== "guest") {
return DocServer.GetRefField(id).then(async field =>
Doc.SetUserDoc(await this.updateUserDocument(field instanceof Doc ? field : new Doc(id, true))));
@@ -279,7 +361,7 @@ export class CurrentUserUtils {
if (this._northstarCatalog && CurrentUserUtils._northstarSchemas) {
this._northstarCatalog.schemas!.push(schema);
CurrentUserUtils._northstarSchemas.push(schemaDoc);
- let schemas = Cast(CurrentUserUtils.UserDocument.DBSchemas, listSpec("string"), []);
+ const schemas = Cast(CurrentUserUtils.UserDocument.DBSchemas, listSpec("string"), []);
schemas.push(schema.displayName!);
CurrentUserUtils.UserDocument.DBSchemas = new List<string>(schemas);
}
@@ -300,4 +382,4 @@ export class CurrentUserUtils {
};
return recurs([] as Attribute[], schema ? schema.rootAttributeGroup : undefined);
}
-} \ No newline at end of file
+}
diff --git a/src/server/authentication/models/user_model.ts b/src/server/authentication/models/user_model.ts
index 45fbf23b1..78e39dbc1 100644
--- a/src/server/authentication/models/user_model.ts
+++ b/src/server/authentication/models/user_model.ts
@@ -1,20 +1,8 @@
//@ts-ignore
import * as bcrypt from "bcrypt-nodejs";
//@ts-ignore
-import * as mongoose from "mongoose";
-var url = 'mongodb://localhost:27017/Dash';
+import * as mongoose from 'mongoose';
-mongoose.connect(url, { useNewUrlParser: true });
-
-mongoose.connection.on('connected', function () {
- console.log('Stablished connection on ' + url);
-});
-mongoose.connection.on('error', function (error) {
- console.log('Something wrong happened: ' + error);
-});
-mongoose.connection.on('disconnected', function () {
- console.log('connection closed');
-});
export type DashUserModel = mongoose.Document & {
email: String,
password: string,
@@ -85,7 +73,11 @@ userSchema.pre("save", function save(next) {
});
const comparePassword: comparePasswordFunction = function (this: DashUserModel, candidatePassword, cb) {
+ // Choose one of the following bodies for authentication logic.
+ // secure
bcrypt.compare(candidatePassword, this.password, cb);
+ // bypass password
+ // cb(undefined, true);
};
userSchema.methods.comparePassword = comparePassword;
diff --git a/src/server/credentials/CredentialsLoader.ts b/src/server/credentials/CredentialsLoader.ts
new file mode 100644
index 000000000..e3f4d167b
--- /dev/null
+++ b/src/server/credentials/CredentialsLoader.ts
@@ -0,0 +1,29 @@
+import { readFile } from "fs";
+
+export namespace GoogleCredentialsLoader {
+
+ export interface InstalledCredentials {
+ client_id: string;
+ project_id: string;
+ auth_uri: string;
+ token_uri: string;
+ auth_provider_x509_cert_url: string;
+ client_secret: string;
+ redirect_uris: string[];
+ }
+
+ export let ProjectCredentials: InstalledCredentials;
+
+ export async function loadCredentials() {
+ ProjectCredentials = await new Promise<InstalledCredentials>(resolve => {
+ readFile(__dirname + '/google_project_credentials.json', function processClientSecrets(err, content) {
+ if (err) {
+ console.log('Error loading client secret file: ' + err);
+ return;
+ }
+ resolve(JSON.parse(content.toString()).installed);
+ });
+ });
+ }
+
+}
diff --git a/src/server/credentials/google_docs_credentials.json b/src/server/credentials/google_project_credentials.json
index 955c5a3c1..955c5a3c1 100644
--- a/src/server/credentials/google_docs_credentials.json
+++ b/src/server/credentials/google_project_credentials.json
diff --git a/src/server/database.ts b/src/server/database.ts
index db86b472d..83ce865c6 100644
--- a/src/server/database.ts
+++ b/src/server/database.ts
@@ -5,19 +5,60 @@ import { Utils, emptyFunction } from '../Utils';
import { DashUploadUtils } from './DashUploadUtils';
import { Credentials } from 'google-auth-library';
import { GoogleApiServerUtils } from './apis/google/GoogleApiServerUtils';
+import { IDatabase } from './IDatabase';
+import { MemoryDatabase } from './MemoryDatabase';
+import * as mongoose from 'mongoose';
export namespace Database {
- class Database {
+ export let disconnect: Function;
+ const schema = 'Dash';
+ const port = 27017;
+ export const url = `mongodb://localhost:${port}/${schema}`;
+
+ enum ConnectionStates {
+ disconnected = 0,
+ connected = 1,
+ connecting = 2,
+ disconnecting = 3,
+ uninitialized = 99,
+ }
+
+ export async function tryInitializeConnection() {
+ try {
+ const { connection } = mongoose;
+ disconnect = async () => new Promise<any>(resolve => connection.close(resolve));
+ if (connection.readyState === ConnectionStates.disconnected) {
+ await new Promise<void>((resolve, reject) => {
+ connection.on('error', reject);
+ connection.on('connected', () => {
+ console.log(`mongoose established default connection at ${url}`);
+ resolve();
+ });
+ mongoose.connect(url, { useNewUrlParser: true });
+ });
+ }
+ } catch (e) {
+ console.error(`Mongoose FAILED to establish default connection at ${url} with the following error:`);
+ console.error(e);
+ console.log('Since a valid database connection is required to use Dash, the server process will now exit.\nPlease try again later.');
+ process.exit(1);
+ }
+ }
+
+ class Database implements IDatabase {
public static DocumentsCollection = 'documents';
private MongoClient = mongodb.MongoClient;
- private url = 'mongodb://localhost:27017/Dash';
private currentWrites: { [id: string]: Promise<void> } = {};
private db?: mongodb.Db;
private onConnect: (() => void)[] = [];
constructor() {
- this.MongoClient.connect(this.url, (err, client) => {
+ this.MongoClient.connect(url, (_err, client) => {
+ if (!client) {
+ console.error("\nPlease start MongoDB by running 'mongod' in a terminal before continuing...\n");
+ process.exit(0);
+ }
this.db = client.db();
this.onConnect.forEach(fn => fn());
});
@@ -25,7 +66,7 @@ export namespace Database {
public async update(id: string, value: any, callback: (err: mongodb.MongoError, res: mongodb.UpdateWriteOpResult) => void, upsert = true, collectionName = Database.DocumentsCollection) {
if (this.db) {
- let collection = this.db.collection(collectionName);
+ const collection = this.db.collection(collectionName);
const prom = this.currentWrites[id];
let newProm: Promise<void>;
const run = (): Promise<void> => {
@@ -50,7 +91,7 @@ export namespace Database {
public replace(id: string, value: any, callback: (err: mongodb.MongoError, res: mongodb.UpdateWriteOpResult) => void, upsert = true, collectionName = Database.DocumentsCollection) {
if (this.db) {
- let collection = this.db.collection(collectionName);
+ const collection = this.db.collection(collectionName);
const prom = this.currentWrites[id];
let newProm: Promise<void>;
const run = (): Promise<void> => {
@@ -176,7 +217,7 @@ export namespace Database {
if (!fetchIds.length) {
continue;
}
- const docs = await new Promise<{ [key: string]: any }[]>(res => Instance.getDocuments(fetchIds, res, "newDocuments"));
+ const docs = await new Promise<{ [key: string]: any }[]>(res => this.getDocuments(fetchIds, res, collectionName));
for (const doc of docs) {
const id = doc.id;
visited.add(id);
@@ -223,7 +264,16 @@ export namespace Database {
}
}
- export const Instance = new Database();
+ function getDatabase() {
+ switch (process.env.DB) {
+ case "MEM":
+ return new MemoryDatabase();
+ default:
+ return new Database();
+ }
+ }
+
+ export const Instance: IDatabase = getDatabase();
export namespace Auxiliary {
@@ -247,7 +297,7 @@ export namespace Database {
};
export const QueryUploadHistory = async (contentSize: number) => {
- return SanitizedSingletonQuery<DashUploadUtils.UploadInformation>({ contentSize }, AuxiliaryCollections.GooglePhotosUploadHistory);
+ return SanitizedSingletonQuery<DashUploadUtils.ImageUploadInformation>({ contentSize }, AuxiliaryCollections.GooglePhotosUploadHistory);
};
export namespace GoogleAuthenticationToken {
@@ -256,7 +306,7 @@ export namespace Database {
export type StoredCredentials = Credentials & { _id: string };
- export const Fetch = async (userId: string, removeId = true) => {
+ export const Fetch = async (userId: string, removeId = true): Promise<Opt<StoredCredentials>> => {
return SanitizedSingletonQuery<StoredCredentials>({ userId }, GoogleAuthentication, removeId);
};
@@ -276,7 +326,7 @@ export namespace Database {
}
- export const LogUpload = async (information: DashUploadUtils.UploadInformation) => {
+ export const LogUpload = async (information: DashUploadUtils.ImageUploadInformation) => {
const bundle = {
_id: Utils.GenerateDeterministicGuid(String(information.contentSize!)),
...information
@@ -292,4 +342,4 @@ export namespace Database {
}
-} \ No newline at end of file
+}
diff --git a/src/server/downsize.ts b/src/server/downsize.ts
index ed68fbecc..cd0d83812 100644
--- a/src/server/downsize.ts
+++ b/src/server/downsize.ts
@@ -17,7 +17,7 @@ fs.readdir(folder, async (err, files) => {
// });
for (const file of files) {
const filesplit = file.split(".");
- let resizers = [
+ const resizers = [
{ resizer: sharp().resize(100, undefined, { withoutEnlargement: true }), suffix: "_s" },
{ resizer: sharp().resize(400, undefined, { withoutEnlargement: true }), suffix: "_m" },
{ resizer: sharp().resize(900, undefined, { withoutEnlargement: true }), suffix: "_l" },
diff --git a/src/server/index.ts b/src/server/index.ts
index 050ab8755..313a2f0e2 100644
--- a/src/server/index.ts
+++ b/src/server/index.ts
@@ -1,1292 +1,147 @@
require('dotenv').config();
-import * as bodyParser from 'body-parser';
-import { exec, ExecOptions } from 'child_process';
-import * as cookieParser from 'cookie-parser';
-import * as express from 'express';
-import * as session from 'express-session';
-import * as expressValidator from 'express-validator';
-import * as formidable from 'formidable';
-import * as fs from 'fs';
-import * as sharp from 'sharp';
-import * as Pdfjs from 'pdfjs-dist';
-const imageDataUri = require('image-data-uri');
+import { GoogleApiServerUtils } from "./apis/google/GoogleApiServerUtils";
import * as mobileDetect from 'mobile-detect';
-import * as passport from 'passport';
import * as path from 'path';
-import * as request from 'request';
-import * as io from 'socket.io';
-import { Socket } from 'socket.io';
-import * as webpack from 'webpack';
-import * as wdm from 'webpack-dev-middleware';
-import * as whm from 'webpack-hot-middleware';
-import { Utils } from '../Utils';
-import { getForgot, getLogin, getLogout, getReset, getSignup, postForgot, postLogin, postReset, postSignup } from './authentication/controllers/user_controller';
-import { DashUserModel } from './authentication/models/user_model';
-import { Client } from './Client';
import { Database } from './database';
-import { MessageStore, Transferable, Types, Diff, YoutubeQueryTypes as YoutubeQueryType, YoutubeQueryInput } from "./Message";
-import { RouteStore } from './RouteStore';
-import v4 = require('uuid/v4');
-const app = express();
-const config = require('../../webpack.config');
-import { createCanvas } from "canvas";
-const compiler = webpack(config);
-const port = 1050; // default port to listen
-const serverPort = 4321;
-import expressFlash = require('express-flash');
-import flash = require('connect-flash');
-import { Search } from './Search';
-import * as Archiver from 'archiver';
-var AdmZip = require('adm-zip');
-import * as YoutubeApi from "./apis/youtube/youtubeApiSample";
-import { Response } from 'express-serve-static-core';
-import { DocComponent } from '../client/views/DocComponent';
-import { Recommender } from "./Recommender";
-import { GoogleApiServerUtils } from "./apis/google/GoogleApiServerUtils";
-const MongoStore = require('connect-mongo')(session);
-const mongoose = require('mongoose');
-const probe = require("probe-image-size");
-const pdf = require('pdf-parse');
-var findInFiles = require('find-in-files');
-import { GooglePhotosUploadUtils } from './apis/google/GooglePhotosUploadUtils';
-import * as qs from 'query-string';
-import { Opt } from '../new_fields/Doc';
import { DashUploadUtils } from './DashUploadUtils';
-import { BatchedArray, TimeUnit } from 'array-batcher';
-import { ParsedPDF } from "./PdfTypes";
-import { reject } from 'bluebird';
-import { Result } from '../client/northstar/model/idea/idea';
import RouteSubscriber from './RouteSubscriber';
-import { IBM_Recommender } from '../client/apis/IBM_Recommender';
-
-const download = (url: string, dest: fs.PathLike) => request.get(url).pipe(fs.createWriteStream(dest));
-let youtubeApiKey: string;
-YoutubeApi.readApiKey((apiKey: string) => youtubeApiKey = apiKey);
-
-const release = process.env.RELEASE === "true";
-if (process.env.RELEASE === "true") {
- console.log("Running server in release mode");
-} else {
- console.log("Running server in debug mode");
-}
-console.log(process.env.PWD);
-let clientUtils = fs.readFileSync("./src/client/util/ClientUtils.ts.temp", "utf8");
-clientUtils = `//AUTO-GENERATED FILE: DO NOT EDIT\n${clientUtils.replace('"mode"', String(release))}`;
-fs.writeFileSync("./src/client/util/ClientUtils.ts", clientUtils, "utf8");
-
-const mongoUrl = 'mongodb://localhost:27017/Dash';
-mongoose.connection.readyState === 0 && mongoose.connect(mongoUrl);
-mongoose.connection.on('connected', () => console.log("connected"));
-
-// SESSION MANAGEMENT AND AUTHENTICATION MIDDLEWARE
-// ORDER OF IMPORTS MATTERS
-
-app.use(cookieParser());
-app.use(session({
- secret: "64d6866242d3b5a5503c675b32c9605e4e90478e9b77bcf2bc",
- resave: true,
- cookie: { maxAge: 7 * 24 * 60 * 60 * 1000 },
- saveUninitialized: true,
- store: new MongoStore({ url: 'mongodb://localhost:27017/Dash' })
-}));
-
-app.use(flash());
-app.use(expressFlash());
-app.use(bodyParser.json({ limit: "10mb" }));
-app.use(bodyParser.urlencoded({ extended: true }));
-app.use(expressValidator());
-app.use(passport.initialize());
-app.use(passport.session());
-app.use((req, res, next) => {
- res.locals.user = req.user;
- next();
-});
-
-app.get("/hello", (req, res) => res.send("<p>Hello</p>"));
-
-enum Method {
- GET,
- POST
-}
-
-export type ValidationHandler = (user: DashUserModel, req: express.Request, res: express.Response) => any | Promise<any>;
-export type RejectionHandler = (req: express.Request, res: express.Response) => any | Promise<any>;
-export type ErrorHandler = (req: express.Request, res: express.Response, error: any) => any | Promise<any>;
-
-const LoginRedirect: RejectionHandler = (_req, res) => res.redirect(RouteStore.login);
-
-export interface RouteInitializer {
- method: Method;
- subscribers: string | RouteSubscriber | (string | RouteSubscriber)[];
- onValidation: ValidationHandler;
- onRejection?: RejectionHandler;
- onError?: ErrorHandler;
-}
-
-const isSharedDocAccess = (target: string) => {
- const shared = qs.parse(qs.extract(target), { sort: false }).sharing === "true";
- const docAccess = target.startsWith("/doc/");
- return shared && docAccess;
-};
+import initializeServer from './server_Initialization';
+import RouteManager, { Method, _success, _permission_denied, _error, _invalid, PublicHandler } from './RouteManager';
+import * as qs from 'query-string';
+import UtilManager from './ApiManagers/UtilManager';
+import { SearchManager } from './ApiManagers/SearchManager';
+import UserManager from './ApiManagers/UserManager';
+import { WebSocket } from './Websocket/Websocket';
+import DownloadManager from './ApiManagers/DownloadManager';
+import { GoogleCredentialsLoader } from './credentials/CredentialsLoader';
+import DeleteManager from "./ApiManagers/DeleteManager";
+import PDFManager from "./ApiManagers/PDFManager";
+import UploadManager from "./ApiManagers/UploadManager";
+import { log_execution } from "./ActionUtilities";
+import GeneralGoogleManager from "./ApiManagers/GeneralGoogleManager";
+import GooglePhotosManager from "./ApiManagers/GooglePhotosManager";
+import { Logger } from "./ProcessFactory";
+import { yellow } from "colors";
+import { DashSessionAgent } from "./DashSession/DashSessionAgent";
+import SessionManager from "./ApiManagers/SessionManager";
+import { AppliedSessionAgent } from "resilient-server-session";
+
+export const onWindows = process.platform === "win32";
+export let sessionAgent: AppliedSessionAgent;
+export const publicDirectory = path.resolve(__dirname, "public");
+export const filesDirectory = path.resolve(publicDirectory, "files");
/**
- * Please invoke this function when adding a new route to Dash's server.
- * It ensures that any requests leading to or containing user-sensitive information
- * does not execute unless Passport authentication detects a user logged in.
- * @param method whether or not the request is a GET or a POST
- * @param handler the action to invoke, recieving a DashUserModel and, as expected, the Express.Request and Express.Response
- * @param onRejection an optional callback invoked on return if no user is found to be logged in
- * @param subscribers the forward slash prepended path names (reference and add to RouteStore.ts) that will all invoke the given @param handler
+ * These are the functions run before the server starts
+ * listening. Anything that must be complete
+ * before clients can access the server should be run or awaited here.
*/
-function addSecureRoute(initializer: RouteInitializer) {
- const { method, subscribers, onValidation, onRejection, onError } = initializer;
- let abstracted = async (req: express.Request, res: express.Response) => {
- const { user, originalUrl: target } = req;
- if (user || isSharedDocAccess(target)) {
- try {
- await onValidation(user as any, req, res);
- } catch (e) {
- if (onError) {
- onError(req, res, e);
- } else {
- _error(res, `The server encountered an internal error handling ${target}.`, e);
- }
- }
- } else {
- req.session!.target = target;
- try {
- await (onRejection || LoginRedirect)(req, res);
- } catch (e) {
- if (onError) {
- onError(req, res, e);
- } else {
- _error(res, `The server encountered an internal error when rejecting ${target}.`, e);
- }
- }
- }
- };
- const subscribe = (subscriber: RouteSubscriber | string) => {
- let route: string;
- if (typeof subscriber === "string") {
- route = subscriber;
- } else {
- route = subscriber.build;
- }
- switch (method) {
- case Method.GET:
- app.get(route, abstracted);
- break;
- case Method.POST:
- app.post(route, abstracted);
- break;
- }
- };
- if (Array.isArray(subscribers)) {
- subscribers.forEach(subscribe);
- } else {
- subscribe(subscribers);
- }
-}
-
-// STATIC FILE SERVING
-app.use(express.static(__dirname + RouteStore.public));
-app.use(RouteStore.images, express.static(__dirname + RouteStore.public));
-
-app.get("/pull", (req, res) =>
- exec('"C:\\Program Files\\Git\\git-bash.exe" -c "git pull"', (err, stdout, stderr) => {
- if (err) {
- res.send(err.message);
- return;
- }
- res.redirect("/");
- }));
-
-app.get("/buxton", (req, res) => {
- let cwd = '../scraping/buxton';
-
- let onResolved = (stdout: string) => { console.log(stdout); res.redirect("/"); };
- let onRejected = (err: any) => { console.error(err.message); res.send(err); };
- let tryPython3 = () => command_line('python3 scraper.py', cwd).then(onResolved, onRejected);
-
- command_line('python scraper.py', cwd).then(onResolved, tryPython3);
-});
-
-const STATUS = {
- OK: 200,
- BAD_REQUEST: 400,
- EXECUTION_ERROR: 500,
- PERMISSION_DENIED: 403
-};
-
-const command_line = (command: string, fromDirectory?: string) => {
- return new Promise<string>((resolve, reject) => {
- let options: ExecOptions = {};
- if (fromDirectory) {
- options.cwd = path.join(__dirname, fromDirectory);
- }
- exec(command, options, (err, stdout) => err ? reject(err) : resolve(stdout));
- });
-};
-
-const read_text_file = (relativePath: string) => {
- let target = path.join(__dirname, relativePath);
- return new Promise<string>((resolve, reject) => {
- fs.readFile(target, (err, data) => err ? reject(err) : resolve(data.toString()));
- });
-};
-
-const write_text_file = (relativePath: string, contents: any) => {
- let target = path.join(__dirname, relativePath);
- return new Promise<void>((resolve, reject) => {
- fs.writeFile(target, contents, (err) => err ? reject(err) : resolve());
- });
-};
-
-app.get("/version", (req, res) => {
- exec('"C:\\Program Files\\Git\\bin\\git.exe" rev-parse HEAD', (err, stdout, stderr) => {
- if (err) {
- res.send(err.message);
- return;
- }
- res.send(stdout);
- });
-});
-
-// SEARCH
-const solrURL = "http://localhost:8983/solr/#/dash";
-
-// GETTERS
-
-app.get("/textsearch", async (req, res) => {
- let q = req.query.q;
- if (q === undefined) {
- res.send([]);
- return;
- }
- let results = await findInFiles.find({ 'term': q, 'flags': 'ig' }, uploadDirectory + "text", ".txt$");
- let resObj: { ids: string[], numFound: number, lines: string[] } = { ids: [], numFound: 0, lines: [] };
- for (var result in results) {
- resObj.ids.push(path.basename(result, ".txt").replace(/upload_/, ""));
- resObj.lines.push(results[result].line);
- resObj.numFound++;
- }
- res.send(resObj);
-});
-
-app.get("/search", async (req, res) => {
- const solrQuery: any = {};
- ["q", "fq", "start", "rows", "hl", "hl.fl"].forEach(key => solrQuery[key] = req.query[key]);
- if (solrQuery.q === undefined) {
- res.send([]);
- return;
- }
- let results = await Search.Instance.search(solrQuery);
- res.send(results);
-});
-
-function msToTime(duration: number) {
- let milliseconds = Math.floor((duration % 1000) / 100),
- seconds = Math.floor((duration / 1000) % 60),
- minutes = Math.floor((duration / (1000 * 60)) % 60),
- hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
-
- let hoursS = (hours < 10) ? "0" + hours : hours;
- let minutesS = (minutes < 10) ? "0" + minutes : minutes;
- let secondsS = (seconds < 10) ? "0" + seconds : seconds;
-
- return hoursS + ":" + minutesS + ":" + secondsS + "." + milliseconds;
-}
-
-async function getDocs(id: string) {
- const files = new Set<string>();
- const docs: { [id: string]: any } = {};
- const fn = (doc: any): string[] => {
- const id = doc.id;
- if (typeof id === "string" && id.endsWith("Proto")) {
- //Skip protos
- return [];
- }
- const ids: string[] = [];
- for (const key in doc.fields) {
- if (!doc.fields.hasOwnProperty(key)) {
- continue;
- }
- const field = doc.fields[key];
- if (field === undefined || field === null) {
- continue;
- }
-
- if (field.__type === "proxy" || field.__type === "prefetch_proxy") {
- ids.push(field.fieldId);
- } else if (field.__type === "script" || field.__type === "computed") {
- if (field.captures) {
- ids.push(field.captures.fieldId);
- }
- } else if (field.__type === "list") {
- ids.push(...fn(field));
- } else if (typeof field === "string") {
- const re = /"(?:dataD|d)ocumentId"\s*:\s*"([\w\-]*)"/g;
- let match: string[] | null;
- while ((match = re.exec(field)) !== null) {
- ids.push(match[1]);
- }
- } else if (field.__type === "RichTextField") {
- const re = /"href"\s*:\s*"(.*?)"/g;
- let match: string[] | null;
- while ((match = re.exec(field.Data)) !== null) {
- const urlString = match[1];
- const split = new URL(urlString).pathname.split("doc/");
- if (split.length > 1) {
- ids.push(split[split.length - 1]);
- }
- }
- const re2 = /"src"\s*:\s*"(.*?)"/g;
- while ((match = re2.exec(field.Data)) !== null) {
- const urlString = match[1];
- const pathname = new URL(urlString).pathname;
- files.add(pathname);
- }
- } else if (["audio", "image", "video", "pdf", "web"].includes(field.__type)) {
- const url = new URL(field.url);
- const pathname = url.pathname;
- files.add(pathname);
- }
- }
-
- if (doc.id) {
- docs[doc.id] = doc;
- }
- return ids;
- };
- await Database.Instance.visit([id], fn);
- return { id, docs, files };
-}
-app.get("/serializeDoc/:docId", async (req, res) => {
- const { docs, files } = await getDocs(req.params.docId);
- res.send({ docs, files: Array.from(files) });
-});
-
-export type Hierarchy = { [id: string]: string | Hierarchy };
-export type ZipMutator = (file: Archiver.Archiver) => void | Promise<void>;
-
-addSecureRoute({
- method: Method.GET,
- subscribers: new RouteSubscriber(RouteStore.imageHierarchyExport).add('docId'),
- onValidation: async (_user, req, res) => {
- const id = req.params.docId;
- const hierarchy: Hierarchy = {};
- await targetedVisitorRecursive(id, hierarchy);
- BuildAndDispatchZip(res, async zip => {
- await hierarchyTraverserRecursive(zip, hierarchy);
+async function preliminaryFunctions() {
+ await Logger.initialize();
+ await GoogleCredentialsLoader.loadCredentials();
+ GoogleApiServerUtils.processProjectCredentials();
+ await DashUploadUtils.buildFileDirectories();
+ if (process.env.DB !== "MEM") {
+ await log_execution({
+ startMessage: "attempting to initialize mongodb connection",
+ endMessage: "connection outcome determined",
+ action: Database.tryInitializeConnection
});
}
-});
-
-const BuildAndDispatchZip = async (res: Response, mutator: ZipMutator): Promise<void> => {
- const zip = Archiver('zip');
- zip.pipe(res);
- await mutator(zip);
- return zip.finalize();
-};
-
-const targetedVisitorRecursive = async (seedId: string, hierarchy: Hierarchy): Promise<void> => {
- const local: Hierarchy = {};
- const { title, data } = await getData(seedId);
- const label = `${title} (${seedId})`;
- if (Array.isArray(data)) {
- hierarchy[label] = local;
- await Promise.all(data.map(proxy => targetedVisitorRecursive(proxy.fieldId, local)));
- } else {
- hierarchy[label + path.extname(data)] = data;
- }
-};
-
-const getData = async (seedId: string): Promise<{ data: string | any[], title: string }> => {
- return new Promise<{ data: string | any[], title: string }>((resolve, reject) => {
- Database.Instance.getDocument(seedId, async (result: any) => {
- const { data, proto, title } = result.fields;
- if (data) {
- if (data.url) {
- resolve({ data: data.url, title });
- } else if (data.fields) {
- resolve({ data: data.fields, title });
- } else {
- reject();
- }
- }
- if (proto) {
- getData(proto.fieldId).then(resolve, reject);
- }
- });
- });
-};
-
-const hierarchyTraverserRecursive = async (file: Archiver.Archiver, hierarchy: Hierarchy, prefix = "Dash Export"): Promise<void> => {
- for (const key of Object.keys(hierarchy)) {
- const result = hierarchy[key];
- if (typeof result === "string") {
- let path: string;
- let matches: RegExpExecArray | null;
- if ((matches = /\:1050\/files\/(upload\_[\da-z]{32}.*)/g.exec(result)) !== null) {
- path = `${__dirname}/public/files/${matches[1]}`;
- } else {
- const information = await DashUploadUtils.UploadImage(result);
- path = information.mediaPaths[0];
- }
- file.file(path, { name: key, prefix });
- } else {
- await hierarchyTraverserRecursive(file, result, `${prefix}/${key}`);
- }
- }
-};
-
-app.get("/downloadId/:docId", async (req, res) => {
- res.set('Content-disposition', `attachment;`);
- res.set('Content-Type', "application/zip");
- const { id, docs, files } = await getDocs(req.params.docId);
- const docString = JSON.stringify({ id, docs });
- const zip = Archiver('zip');
- zip.pipe(res);
- zip.append(docString, { name: "doc.json" });
- files.forEach(val => {
- zip.file(__dirname + RouteStore.public + val, { name: val.substring(1) });
- });
- zip.finalize();
-});
-
-app.post("/uploadDoc", (req, res) => {
- let form = new formidable.IncomingForm();
- form.keepExtensions = true;
- // let path = req.body.path;
- const ids: { [id: string]: string } = {};
- let remap = true;
- const getId = (id: string): string => {
- if (!remap) return id;
- if (id.endsWith("Proto")) return id;
- if (id in ids) {
- return ids[id];
- } else {
- return ids[id] = v4();
- }
- };
- const mapFn = (doc: any) => {
- if (doc.id) {
- doc.id = getId(doc.id);
- }
- for (const key in doc.fields) {
- if (!doc.fields.hasOwnProperty(key)) {
- continue;
- }
- const field = doc.fields[key];
- if (field === undefined || field === null) {
- continue;
- }
-
- if (field.__type === "proxy" || field.__type === "prefetch_proxy") {
- field.fieldId = getId(field.fieldId);
- } else if (field.__type === "script" || field.__type === "computed") {
- if (field.captures) {
- field.captures.fieldId = getId(field.captures.fieldId);
- }
- } else if (field.__type === "list") {
- mapFn(field);
- } else if (typeof field === "string") {
- const re = /("(?:dataD|d)ocumentId"\s*:\s*")([\w\-]*)"/g;
- doc.fields[key] = (field as any).replace(re, (match: any, p1: string, p2: string) => {
- return `${p1}${getId(p2)}"`;
- });
- } else if (field.__type === "RichTextField") {
- const re = /("href"\s*:\s*")(.*?)"/g;
- field.Data = field.Data.replace(re, (match: any, p1: string, p2: string) => {
- return `${p1}${getId(p2)}"`;
- });
- }
- }
- };
- form.parse(req, async (err, fields, files) => {
- remap = fields.remap !== "false";
- let id: string = "";
- try {
- for (const name in files) {
- const path_2 = files[name].path;
- const zip = new AdmZip(path_2);
- zip.getEntries().forEach((entry: any) => {
- if (!entry.entryName.startsWith("files/")) return;
- let dirname = path.dirname(entry.entryName) + "/";
- let extname = path.extname(entry.entryName);
- let basename = path.basename(entry.entryName).split(".")[0];
- // zip.extractEntryTo(dirname + basename + "_o" + extname, __dirname + RouteStore.public, true, false);
- // zip.extractEntryTo(dirname + basename + "_s" + extname, __dirname + RouteStore.public, true, false);
- // zip.extractEntryTo(dirname + basename + "_m" + extname, __dirname + RouteStore.public, true, false);
- // zip.extractEntryTo(dirname + basename + "_l" + extname, __dirname + RouteStore.public, true, false);
- try {
- zip.extractEntryTo(entry.entryName, __dirname + RouteStore.public, true, false);
- dirname = "/" + dirname;
-
- fs.createReadStream(__dirname + RouteStore.public + dirname + basename + extname).pipe(fs.createWriteStream(__dirname + RouteStore.public + dirname + basename + "_o" + extname));
- fs.createReadStream(__dirname + RouteStore.public + dirname + basename + extname).pipe(fs.createWriteStream(__dirname + RouteStore.public + dirname + basename + "_s" + extname));
- fs.createReadStream(__dirname + RouteStore.public + dirname + basename + extname).pipe(fs.createWriteStream(__dirname + RouteStore.public + dirname + basename + "_m" + extname));
- fs.createReadStream(__dirname + RouteStore.public + dirname + basename + extname).pipe(fs.createWriteStream(__dirname + RouteStore.public + dirname + basename + "_l" + extname));
- } catch (e) {
- console.log(e);
- }
- });
- const json = zip.getEntry("doc.json");
- let docs: any;
- try {
- let data = JSON.parse(json.getData().toString("utf8"));
- docs = data.docs;
- id = data.id;
- docs = Object.keys(docs).map(key => docs[key]);
- docs.forEach(mapFn);
- await Promise.all(docs.map((doc: any) => new Promise(res => Database.Instance.replace(doc.id, doc, (err, r) => {
- err && console.log(err);
- res();
- }, true, "newDocuments"))));
- } catch (e) { console.log(e); }
- fs.unlink(path_2, () => { });
- }
- if (id) {
- res.send(JSON.stringify(getId(id)));
- } else {
- res.send(JSON.stringify("error"));
- }
- } catch (e) { console.log(e); }
- });
-});
-
-app.get("/whosOnline", (req, res) => {
- let users: any = { active: {}, inactive: {} };
- const now = Date.now();
-
- for (const user in timeMap) {
- const time = timeMap[user];
- const key = ((now - time) / 1000) < (60 * 5) ? "active" : "inactive";
- users[key][user] = `Last active ${msToTime(now - time)} ago`;
- }
-
- res.send(users);
-});
-app.get("/thumbnail/:filename", (req, res) => {
- let filename = req.params.filename;
- let noExt = filename.substring(0, filename.length - ".png".length);
- let pagenumber = parseInt(noExt.split('-')[1]);
- fs.exists(uploadDirectory + filename, (exists: boolean) => {
- console.log(`${uploadDirectory + filename} ${exists ? "exists" : "does not exist"}`);
- if (exists) {
- let input = fs.createReadStream(uploadDirectory + filename);
- probe(input, (err: any, result: any) => {
- if (err) {
- console.log(err);
- console.log(`error on ${filename}`);
- return;
- }
- res.send({ path: "/files/" + filename, width: result.width, height: result.height });
- });
- }
- else {
- LoadPage(uploadDirectory + filename.substring(0, filename.length - noExt.split('-')[1].length - ".PNG".length - 1) + ".pdf", pagenumber, res);
- }
- });
-});
-
-function LoadPage(file: string, pageNumber: number, res: Response) {
- console.log(file);
- Pdfjs.getDocument(file).promise
- .then((pdf: Pdfjs.PDFDocumentProxy) => {
- let factory = new NodeCanvasFactory();
- console.log(pageNumber);
- pdf.getPage(pageNumber).then((page: Pdfjs.PDFPageProxy) => {
- console.log("reading " + page);
- let viewport = page.getViewport(1 as any);
- let canvasAndContext = factory.create(viewport.width, viewport.height);
- let renderContext = {
- canvasContext: canvasAndContext.context,
- viewport: viewport,
- canvasFactory: factory
- };
- console.log("read " + pageNumber);
-
- page.render(renderContext).promise
- .then(() => {
- console.log("saving " + pageNumber);
- let stream = canvasAndContext.canvas.createPNGStream();
- let pngFile = `${file.substring(0, file.length - ".pdf".length)}-${pageNumber}.PNG`;
- let out = fs.createWriteStream(pngFile);
- stream.pipe(out);
- out.on("finish", () => {
- console.log(`Success! Saved to ${pngFile}`);
- let name = path.basename(pngFile);
- res.send({ path: "/files/" + name, width: viewport.width, height: viewport.height });
- });
- }, (reason: string) => {
- console.error(reason + ` ${pageNumber}`);
- });
- });
- });
}
/**
- * Anyone attempting to navigate to localhost at this port will
- * first have to log in.
+ * Either clustered together as an API manager
+ * or individually referenced below, by the completion
+ * of this function's execution, all routes will
+ * be registered on the server
+ * @param router the instance of the route manager
+ * that will manage the registration of new routes
+ * with the server
*/
-addSecureRoute({
- method: Method.GET,
- subscribers: RouteStore.root,
- onValidation: (_user, _req, res) => res.redirect(RouteStore.home)
-});
-
-addSecureRoute({
- method: Method.GET,
- subscribers: RouteStore.getUsers,
- onValidation: async (_user, _req, res) => {
- const cursor = await Database.Instance.query({}, { email: 1, userDocumentId: 1 }, "users");
- const results = await cursor.toArray();
- res.send(results.map(user => ({ email: user.email, userDocumentId: user.userDocumentId })));
- },
-});
-
-addSecureRoute({
- method: Method.GET,
- subscribers: [RouteStore.home, RouteStore.openDocumentWithId],
- onValidation: (_user, req, res) => {
- let detector = new mobileDetect(req.headers['user-agent'] || "");
- let filename = detector.mobile() !== null ? 'mobile/image.html' : 'index.html';
- res.sendFile(path.join(__dirname, '../../deploy/' + filename));
- },
-});
-
-addSecureRoute({
- method: Method.GET,
- subscribers: RouteStore.getUserDocumentId,
- onValidation: (user, _req, res) => res.send(user.userDocumentId),
- onRejection: (_req, res) => res.send(undefined)
-});
-
-addSecureRoute({
- method: Method.GET,
- subscribers: RouteStore.getCurrUser,
- onValidation: (user, _req, res) => { res.send(JSON.stringify(user)); },
- onRejection: (_req, res) => res.send(JSON.stringify({ id: "__guest__", email: "" }))
-});
-
-const ServicesApiKeyMap = new Map<string, string | undefined>([
- ["face", process.env.FACE],
- ["vision", process.env.VISION],
- ["handwriting", process.env.HANDWRITING],
- ["text", process.env.TEXT],
- ["bing", process.env.BING]
-]);
-
-addSecureRoute({
- method: Method.GET,
- subscribers: new RouteSubscriber(RouteStore.cognitiveServices).add('requestedservice'),
- onValidation: (_user, req, res) => {
- let service = req.params.requestedservice;
- res.send(ServicesApiKeyMap.get(service));
- }
-});
-
-class NodeCanvasFactory {
- create = (width: number, height: number) => {
- var canvas = createCanvas(width, height);
- var context = canvas.getContext('2d');
- return {
- canvas: canvas,
- context: context,
- };
- }
-
- reset = (canvasAndContext: any, width: number, height: number) => {
- canvasAndContext.canvas.width = width;
- canvasAndContext.canvas.height = height;
- }
-
- destroy = (canvasAndContext: any) => {
- canvasAndContext.canvas.width = 0;
- canvasAndContext.canvas.height = 0;
- canvasAndContext.canvas = null;
- canvasAndContext.context = null;
- }
-}
-
-const pngTypes = [".png", ".PNG"];
-const jpgTypes = [".jpg", ".JPG", ".jpeg", ".JPEG"];
-const uploadDirectory = __dirname + "/public/files/";
-const pdfDirectory = uploadDirectory + "text";
-DashUploadUtils.createIfNotExists(pdfDirectory);
-
-interface ImageFileResponse {
- name: string;
- path: string;
- type: string;
- exif: Opt<DashUploadUtils.EnrichedExifData>;
-}
-
-addSecureRoute({
- method: Method.POST,
- subscribers: RouteStore.upload,
- onValidation: (_user, req, res) => {
- let form = new formidable.IncomingForm();
- form.uploadDir = uploadDirectory;
- form.keepExtensions = true;
- form.parse(req, async (_err, _fields, files) => {
- let results: ImageFileResponse[] = [];
- for (const key in files) {
- const { type, path: location, name } = files[key];
- const filename = path.basename(location);
- let uploadInformation: Opt<DashUploadUtils.UploadInformation>;
- if (filename.endsWith(".pdf")) {
- let dataBuffer = fs.readFileSync(uploadDirectory + filename);
- const result: ParsedPDF = await pdf(dataBuffer);
- await new Promise<void>(resolve => {
- const path = pdfDirectory + "/" + filename.substring(0, filename.length - ".pdf".length) + ".txt";
- fs.createWriteStream(path).write(result.text, error => {
- if (!error) {
- resolve();
- } else {
- reject(error);
- }
- });
- });
- } else if (type.indexOf("audio") !== -1) {
- // nothing to be done yet-- although transcribing the audio a la pdfs would make sense.
- } else {
- uploadInformation = await DashUploadUtils.UploadImage(uploadDirectory + filename, filename);
- }
- const exif = uploadInformation ? uploadInformation.exifData : undefined;
- results.push({ name, type, path: `/files/${filename}`, exif });
-
- }
- _success(res, results);
- });
- }
-});
-
-addSecureRoute({
- method: Method.POST,
- subscribers: RouteStore.inspectImage,
- onValidation: async (_user, req, res) => {
- const { source } = req.body;
- if (typeof source === "string") {
- const uploadInformation = await DashUploadUtils.UploadImage(source);
- return res.send(await DashUploadUtils.InspectImage(uploadInformation.mediaPaths[0]));
- }
- res.send({});
- }
-});
-
-addSecureRoute({
- method: Method.POST,
- subscribers: "/IBMAnalysis",
- onValidation: async (_user, req, res) => res.send(await IBM_Recommender.analyze(req.body))
-});
-
-addSecureRoute({
- method: Method.POST,
- subscribers: RouteStore.dataUriToImage,
- onValidation: (_user, req, res) => {
- const uri = req.body.uri;
- const filename = req.body.name;
- if (!uri || !filename) {
- res.status(401).send("incorrect parameters specified");
- return;
- }
- imageDataUri.outputFile(uri, uploadDirectory + filename).then((savedName: string) => {
- const ext = path.extname(savedName);
- let resizers = [
- { resizer: sharp().resize(100, undefined, { withoutEnlargement: true }), suffix: "_s" },
- { resizer: sharp().resize(400, undefined, { withoutEnlargement: true }), suffix: "_m" },
- { resizer: sharp().resize(900, undefined, { withoutEnlargement: true }), suffix: "_l" },
- ];
- let isImage = false;
- if (pngTypes.includes(ext)) {
- resizers.forEach(element => {
- element.resizer = element.resizer.png();
- });
- isImage = true;
- } else if (jpgTypes.includes(ext)) {
- resizers.forEach(element => {
- element.resizer = element.resizer.jpeg();
- });
- isImage = true;
- }
- if (isImage) {
- resizers.forEach(resizer => {
- fs.createReadStream(savedName).pipe(resizer.resizer).pipe(fs.createWriteStream(uploadDirectory + filename + resizer.suffix + ext));
- });
- }
- res.send("/files/" + filename + ext);
- });
- }
-});
-
-// AUTHENTICATION
-
-// Sign Up
-app.get(RouteStore.signup, getSignup);
-app.post(RouteStore.signup, postSignup);
-
-// Log In
-app.get(RouteStore.login, getLogin);
-app.post(RouteStore.login, postLogin);
-
-// Log Out
-app.get(RouteStore.logout, getLogout);
-
-// FORGOT PASSWORD EMAIL HANDLING
-app.get(RouteStore.forgot, getForgot);
-app.post(RouteStore.forgot, postForgot);
-
-// RESET PASSWORD EMAIL HANDLING
-app.get(RouteStore.reset, getReset);
-app.post(RouteStore.reset, postReset);
-
-const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/;
-app.use(RouteStore.corsProxy, (req, res) => {
- req.pipe(request(decodeURIComponent(req.url.substring(1)))).on("response", res => {
- const headers = Object.keys(res.headers);
- headers.forEach(headerName => {
- const header = res.headers[headerName];
- if (Array.isArray(header)) {
- res.headers[headerName] = header.filter(h => !headerCharRegex.test(h));
- } else if (header) {
- if (headerCharRegex.test(header as any)) {
- delete res.headers[headerName];
- }
- }
- });
- }).pipe(res);
-});
-
-////
-
-let recommender = new Recommender();
-recommender.testModel();
-
-app.post("/recommender", async (req, res) => {
- let keyphrases = req.body.keyphrases;
- let wordvecs = await recommender.vectorize(keyphrases);
- let embedding: Float32Array = new Float32Array();
- if (wordvecs && wordvecs.dataSync()) {
- embedding = wordvecs.dataSync() as Float32Array;
- }
- res.send(embedding);
-});
-
-
-/////
-
-app.get(RouteStore.delete, (req, res) => {
- if (release) {
- res.send("no");
- return;
- }
- deleteFields().then(() => res.redirect(RouteStore.home));
-});
-addSecureRoute({
- method: Method.GET,
- subscribers: RouteStore.delete,
- onValidation: (user, _req, res) => {
- if (release) {
- return _permission_denied(res, deletionPermissionError);
- }
- deleteFields().then(() => res.redirect(RouteStore.home));
- }
-});
-
-addSecureRoute({
- method: Method.GET,
- subscribers: RouteStore.deleteAll,
- onValidation: (_user, _req, res) => {
- if (release) {
- return _permission_denied(res, deletionPermissionError);
- }
- deleteAll().then(() => res.redirect(RouteStore.home));
- }
-});
-
-app.use(wdm(compiler, { publicPath: config.output.publicPath }));
-
-app.use(whm(compiler));
-
-// start the Express server
-app.listen(port, () =>
- console.log(`server started at http://localhost:${port}`));
-
-const server = io();
-interface Map {
- [key: string]: Client;
-}
-let clients: Map = {};
-
-let socketMap = new Map<SocketIO.Socket, string>();
-let timeMap: { [id: string]: number } = {};
-
-server.on("connection", function (socket: Socket) {
- socket.use((packet, next) => {
- let id = socketMap.get(socket);
- if (id) {
- timeMap[id] = Date.now();
- }
- next();
+function routeSetter({ isRelease, addSupervisedRoute, logRegistrationOutcome }: RouteManager) {
+ const managers = [
+ new SessionManager(),
+ new UserManager(),
+ new UploadManager(),
+ new DownloadManager(),
+ new SearchManager(),
+ new PDFManager(),
+ new DeleteManager(),
+ new UtilManager(),
+ new GeneralGoogleManager(),
+ new GooglePhotosManager(),
+ ];
+
+ // initialize API Managers
+ console.log(yellow("\nregistering server routes..."));
+ managers.forEach(manager => manager.register(addSupervisedRoute));
+
+ /**
+ * Accessing root index redirects to home
+ */
+ addSupervisedRoute({
+ method: Method.GET,
+ subscription: "/",
+ secureHandler: ({ res }) => res.redirect("/home")
});
- Utils.Emit(socket, MessageStore.Foo, "handshooken");
-
- Utils.AddServerHandler(socket, MessageStore.Bar, guid => barReceived(socket, guid));
- Utils.AddServerHandler(socket, MessageStore.SetField, (args) => setField(socket, args));
- Utils.AddServerHandlerCallback(socket, MessageStore.GetField, getField);
- Utils.AddServerHandlerCallback(socket, MessageStore.GetFields, getFields);
- if (!release) {
- Utils.AddServerHandler(socket, MessageStore.DeleteAll, deleteFields);
- }
-
- Utils.AddServerHandler(socket, MessageStore.CreateField, CreateField);
- Utils.AddServerHandlerCallback(socket, MessageStore.YoutubeApiQuery, HandleYoutubeQuery);
- Utils.AddServerHandler(socket, MessageStore.UpdateField, diff => UpdateField(socket, diff));
- Utils.AddServerHandler(socket, MessageStore.DeleteField, id => DeleteField(socket, id));
- Utils.AddServerHandler(socket, MessageStore.DeleteFields, ids => DeleteFields(socket, ids));
- Utils.AddServerHandlerCallback(socket, MessageStore.GetRefField, GetRefField);
- Utils.AddServerHandlerCallback(socket, MessageStore.GetRefFields, GetRefFields);
-});
-
-async function deleteFields() {
- await Database.Instance.deleteAll();
- await Search.Instance.clear();
- await Database.Instance.deleteAll('newDocuments');
-}
-
-async function deleteAll() {
- await Database.Instance.deleteAll();
- await Database.Instance.deleteAll('newDocuments');
- await Database.Instance.deleteAll('sessions');
- await Database.Instance.deleteAll('users');
- await Search.Instance.clear();
-}
-
-function barReceived(socket: SocketIO.Socket, guid: string) {
- clients[guid] = new Client(guid.toString());
- console.log(`User ${guid} has connected`);
- socketMap.set(socket, guid);
-}
-
-function getField([id, callback]: [string, (result?: Transferable) => void]) {
- Database.Instance.getDocument(id, (result?: Transferable) =>
- callback(result ? result : undefined));
-}
-
-function getFields([ids, callback]: [string[], (result: Transferable[]) => void]) {
- Database.Instance.getDocuments(ids, callback);
-}
-
-function setField(socket: Socket, newValue: Transferable) {
- Database.Instance.update(newValue.id, newValue, () =>
- socket.broadcast.emit(MessageStore.SetField.Message, newValue));
- if (newValue.type === Types.Text) {
- Search.Instance.updateDocument({ id: newValue.id, data: (newValue as any).data });
- console.log("set field");
- console.log("checking in");
- }
-}
-
-function GetRefField([id, callback]: [string, (result?: Transferable) => void]) {
- Database.Instance.getDocument(id, callback, "newDocuments");
-}
-
-function GetRefFields([ids, callback]: [string[], (result?: Transferable[]) => void]) {
- Database.Instance.getDocuments(ids, callback, "newDocuments");
-}
-
-function HandleYoutubeQuery([query, callback]: [YoutubeQueryInput, (result?: any[]) => void]) {
- switch (query.type) {
- case YoutubeQueryType.Channels:
- YoutubeApi.authorizedGetChannel(youtubeApiKey);
- break;
- case YoutubeQueryType.SearchVideo:
- YoutubeApi.authorizedGetVideos(youtubeApiKey, query.userInput, callback);
- case YoutubeQueryType.VideoDetails:
- YoutubeApi.authorizedGetVideoDetails(youtubeApiKey, query.videoIds, callback);
- }
-}
-
-const credentialsPath = path.join(__dirname, "./credentials/google_docs_credentials.json");
-
-const EndpointHandlerMap = new Map<GoogleApiServerUtils.Action, GoogleApiServerUtils.ApiRouter>([
- ["create", (api, params) => api.create(params)],
- ["retrieve", (api, params) => api.get(params)],
- ["update", (api, params) => api.batchUpdate(params)],
-]);
-
-app.post(RouteStore.googleDocs + "/:sector/:action", (req, res) => {
- let sector: GoogleApiServerUtils.Service = req.params.sector as GoogleApiServerUtils.Service;
- let action: GoogleApiServerUtils.Action = req.params.action as GoogleApiServerUtils.Action;
- GoogleApiServerUtils.GetEndpoint(GoogleApiServerUtils.Service[sector], { credentialsPath, userId: req.headers.userId as string }).then(endpoint => {
- let handler = EndpointHandlerMap.get(action);
- if (endpoint && handler) {
- let execute = handler(endpoint, req.body).then(
- response => res.send(response.data),
- rejection => res.send(rejection)
- );
- execute.catch(exception => res.send(exception));
- return;
- }
- res.send(undefined);
+ addSupervisedRoute({
+ method: Method.GET,
+ subscription: "/serverHeartbeat",
+ secureHandler: ({ res }) => res.send(true)
});
-});
-
-addSecureRoute({
- method: Method.GET,
- subscribers: RouteStore.readGoogleAccessToken,
- onValidation: async (user, _req, res) => {
- const userId = user.id;
- const token = await Database.Auxiliary.GoogleAuthenticationToken.Fetch(userId);
- const information = { credentialsPath, userId };
- if (!token) {
- return res.send(await GoogleApiServerUtils.GenerateAuthenticationUrl(information));
- }
- GoogleApiServerUtils.RetrieveAccessToken(information).then(token => res.send(token));
- }
-});
-
-addSecureRoute({
- method: Method.POST,
- subscribers: RouteStore.writeGoogleAccessToken,
- onValidation: async (user, req, res) => {
- const userId = user.id;
- const information = { credentialsPath, userId };
- res.send(await GoogleApiServerUtils.ProcessClientSideCode(information, req.body.authenticationCode));
- }
-});
-const tokenError = "Unable to successfully upload bytes for all images!";
-const mediaError = "Unable to convert all uploaded bytes to media items!";
-const userIdError = "Unable to parse the identification of the user!";
-
-export interface NewMediaItem {
- description: string;
- simpleMediaItem: {
- uploadToken: string;
+ const serve: PublicHandler = ({ req, res }) => {
+ const detector = new mobileDetect(req.headers['user-agent'] || "");
+ const filename = detector.mobile() !== null ? 'mobile/image.html' : 'index.html';
+ res.sendFile(path.join(__dirname, '../../deploy/' + filename));
};
-}
-
-addSecureRoute({
- method: Method.POST,
- subscribers: RouteStore.googlePhotosMediaUpload,
- onValidation: async (user, req, res) => {
- const { media } = req.body;
- const userId = user.id;
- if (!userId) {
- return _error(res, userIdError);
- }
-
- await GooglePhotosUploadUtils.initialize({ credentialsPath, userId });
-
- let failed: number[] = [];
-
- const batched = BatchedArray.from<GooglePhotosUploadUtils.MediaInput>(media, { batchSize: 25 });
- const newMediaItems = await batched.batchedMapPatientInterval<NewMediaItem>(
- { magnitude: 100, unit: TimeUnit.Milliseconds },
- async (batch: any, collector: any): Promise<any> => {
- for (let index = 0; index < batch.length; index++) {
- const { url, description } = batch[index];
- const uploadToken = await GooglePhotosUploadUtils.DispatchGooglePhotosUpload(url);
- if (!uploadToken) {
- failed.push(index);
- } else {
- collector.push({
- description,
- simpleMediaItem: { uploadToken }
- });
- }
- }
- }
- );
-
- const failedCount = failed.length;
- if (failedCount) {
- console.error(`Unable to upload ${failedCount} image${failedCount === 1 ? "" : "s"} to Google's servers`);
- }
-
- GooglePhotosUploadUtils.CreateMediaItems(newMediaItems, req.body.album).then(
- results => _success(res, { results, failed }),
- error => _error(res, mediaError, error)
- );
- }
-});
-
-interface MediaItem {
- baseUrl: string;
- filename: string;
-}
-const prefix = "google_photos_";
-
-const downloadError = "Encountered an error while executing downloads.";
-const requestError = "Unable to execute download: the body's media items were malformed.";
-const deletionPermissionError = "Cannot perform specialized delete outside of the development environment!";
-
-app.get("/deleteWithAux", async (_req, res) => {
- if (release) {
- return _permission_denied(res, deletionPermissionError);
- }
- await Database.Auxiliary.DeleteAll();
- res.redirect(RouteStore.delete);
-});
-
-app.get("/deleteWithGoogleCredentials", async (req, res) => {
- if (release) {
- return _permission_denied(res, deletionPermissionError);
- }
- await Database.Auxiliary.GoogleAuthenticationToken.DeleteAll();
- res.redirect(RouteStore.delete);
-});
-
-const UploadError = (count: number) => `Unable to upload ${count} images to Dash's server`;
-app.post(RouteStore.googlePhotosMediaDownload, async (req, res) => {
- const contents: { mediaItems: MediaItem[] } = req.body;
- let failed = 0;
- if (contents) {
- const completed: Opt<DashUploadUtils.UploadInformation>[] = [];
- for (let item of contents.mediaItems) {
- const { contentSize, ...attributes } = await DashUploadUtils.InspectImage(item.baseUrl);
- const found: Opt<DashUploadUtils.UploadInformation> = await Database.Auxiliary.QueryUploadHistory(contentSize!);
- if (!found) {
- const upload = await DashUploadUtils.UploadInspectedImage({ contentSize, ...attributes }, item.filename, prefix).catch(error => _error(res, downloadError, error));
- if (upload) {
- completed.push(upload);
- await Database.Auxiliary.LogUpload(upload);
- } else {
- failed++;
- }
- } else {
- completed.push(found);
- }
- }
- if (failed) {
- return _error(res, UploadError(failed));
- }
- return _success(res, completed);
- }
- _invalid(res, requestError);
-});
-
-const _error = (res: Response, message: string, error?: any) => {
- res.statusMessage = message;
- res.status(STATUS.EXECUTION_ERROR).send(error);
-};
-
-const _success = (res: Response, body: any) => {
- res.status(STATUS.OK).send(body);
-};
-
-const _invalid = (res: Response, message: string) => {
- res.statusMessage = message;
- res.status(STATUS.BAD_REQUEST).send();
-};
-const _permission_denied = (res: Response, message: string) => {
- res.statusMessage = message;
- res.status(STATUS.BAD_REQUEST).send("Permission Denied!");
-};
-
-const suffixMap: { [type: string]: (string | [string, string | ((json: any) => any)]) } = {
- "number": "_n",
- "string": "_t",
- "boolean": "_b",
- "image": ["_t", "url"],
- "video": ["_t", "url"],
- "pdf": ["_t", "url"],
- "audio": ["_t", "url"],
- "web": ["_t", "url"],
- "RichTextField": ["_t", value => value.Text],
- "date": ["_d", value => new Date(value.date).toISOString()],
- "proxy": ["_i", "fieldId"],
- "list": ["_l", list => {
- const results = [];
- for (const value of list.fields) {
- const term = ToSearchTerm(value);
- if (term) {
- results.push(term.value);
+ addSupervisedRoute({
+ method: Method.GET,
+ subscription: ["/home", new RouteSubscriber("doc").add("docId")],
+ secureHandler: serve,
+ publicHandler: ({ req, ...remaining }) => {
+ const { originalUrl: target } = req;
+ const sharing = qs.parse(qs.extract(req.originalUrl), { sort: false }).sharing === "true";
+ const docAccess = target.startsWith("/doc/");
+ if (sharing && docAccess) {
+ serve({ req, ...remaining });
}
}
- return results.length ? results : null;
- }]
-};
-
-function ToSearchTerm(val: any): { suffix: string, value: any } | undefined {
- if (val === null || val === undefined) {
- return;
- }
- const type = val.__type || typeof val;
- let suffix = suffixMap[type];
- if (!suffix) {
- return;
- }
-
- if (Array.isArray(suffix)) {
- const accessor = suffix[1];
- if (typeof accessor === "function") {
- val = accessor(val);
- } else {
- val = val[accessor];
- }
- suffix = suffix[0];
- }
-
- return { suffix, value: val };
-}
-
-function getSuffix(value: string | [string, any]): string {
- return typeof value === "string" ? value : value[0];
-}
-
-function UpdateField(socket: Socket, diff: Diff) {
- Database.Instance.update(diff.id, diff.diff,
- () => socket.broadcast.emit(MessageStore.UpdateField.Message, diff), false, "newDocuments");
- const docfield = diff.diff.$set;
- if (!docfield) {
- return;
- }
- const update: any = { id: diff.id };
- let dynfield = false;
- for (let key in docfield) {
- if (!key.startsWith("fields.")) continue;
- dynfield = true;
- let val = docfield[key];
- key = key.substring(7);
- Object.values(suffixMap).forEach(suf => update[key + getSuffix(suf)] = { set: null });
- let term = ToSearchTerm(val);
- if (term !== undefined) {
- let { suffix, value } = term;
- update[key + suffix] = { set: value };
- }
- }
- if (dynfield) {
- Search.Instance.updateDocument(update);
- }
-}
-
-function DeleteField(socket: Socket, id: string) {
- Database.Instance.delete({ _id: id }, "newDocuments").then(() => {
- socket.broadcast.emit(MessageStore.DeleteField.Message, id);
});
- Search.Instance.deleteDocuments([id]);
+ logRegistrationOutcome();
+
+ // initialize the web socket (bidirectional communication: if a user changes
+ // a field on one client, that change must be broadcast to all other clients)
+ WebSocket.start(isRelease);
}
-function DeleteFields(socket: Socket, ids: string[]) {
- Database.Instance.delete({ _id: { $in: ids } }, "newDocuments").then(() => {
- socket.broadcast.emit(MessageStore.DeleteFields.Message, ids);
+/**
+ * This function can be used in two different ways. If not in release mode,
+ * this is simply the logic that is invoked to start the server. In release mode,
+ * however, this becomes the logic invoked by a single worker thread spawned by
+ * the main monitor (master) thread.
+ */
+export async function launchServer() {
+ await log_execution({
+ startMessage: "\nstarting execution of preliminary functions",
+ endMessage: "completed preliminary functions\n",
+ action: preliminaryFunctions
});
-
- Search.Instance.deleteDocuments(ids);
-
+ await initializeServer(routeSetter);
}
-function CreateField(newValue: any) {
- Database.Instance.insert(newValue, "newDocuments");
+/**
+ * If you're in development mode, you won't need to run a session.
+ * The session spawns off new server processes each time an error is encountered, and doesn't
+ * log the output of the server process, so it's not ideal for development.
+ * So, the 'else' clause is exactly what we've always run when executing npm start.
+ */
+if (process.env.RELEASE) {
+ (sessionAgent = new DashSessionAgent()).launch();
+} else {
+ launchServer();
}
-
-server.listen(serverPort);
-console.log(`listening on port ${serverPort}`);
-
diff --git a/src/server/public/files/.gitignore b/src/server/public/files/.gitignore
deleted file mode 100644
index c96a04f00..000000000
--- a/src/server/public/files/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore \ No newline at end of file
diff --git a/src/server/remapUrl.ts b/src/server/remapUrl.ts
index 5218a239a..45d2fdd33 100644
--- a/src/server/remapUrl.ts
+++ b/src/server/remapUrl.ts
@@ -54,7 +54,7 @@ async function update() {
}));
console.log("Done");
// await Promise.all(updates.map(update => {
- // return limit(() => Search.Instance.updateDocument(update));
+ // return limit(() => Search.updateDocument(update));
// }));
cursor.close();
}
diff --git a/src/server/server_Initialization.ts b/src/server/server_Initialization.ts
new file mode 100644
index 000000000..9f67c1dda
--- /dev/null
+++ b/src/server/server_Initialization.ts
@@ -0,0 +1,155 @@
+import * as express from 'express';
+import * as expressValidator from 'express-validator';
+import * as session from 'express-session';
+import * as passport from 'passport';
+import * as bodyParser from 'body-parser';
+import * as cookieParser from 'cookie-parser';
+import expressFlash = require('express-flash');
+import flash = require('connect-flash');
+import { Database } from './database';
+import { getForgot, getLogin, getLogout, getReset, getSignup, postForgot, postLogin, postReset, postSignup } from './authentication/controllers/user_controller';
+const MongoStore = require('connect-mongo')(session);
+import RouteManager from './RouteManager';
+import * as webpack from 'webpack';
+const config = require('../../webpack.config');
+const compiler = webpack(config);
+import * as wdm from 'webpack-dev-middleware';
+import * as whm from 'webpack-hot-middleware';
+import * as fs from 'fs';
+import * as request from 'request';
+import RouteSubscriber from './RouteSubscriber';
+import { publicDirectory } from '.';
+import { logPort, } from './ActionUtilities';
+import { timeMap } from './ApiManagers/UserManager';
+import { blue, yellow } from 'colors';
+import * as cors from "cors";
+
+/* RouteSetter is a wrapper around the server that prevents the server
+ from being exposed. */
+export type RouteSetter = (server: RouteManager) => void;
+export let disconnect: Function;
+
+export default async function InitializeServer(routeSetter: RouteSetter) {
+ const app = buildWithMiddleware(express());
+
+ app.use(express.static(publicDirectory, {
+ setHeaders: res => res.setHeader("Access-Control-Allow-Origin", "*")
+ }));
+ app.use("/images", express.static(publicDirectory));
+ const corsOptions = {
+ origin: function (_origin: any, callback: any) {
+ callback(null, true);
+ }
+ };
+ app.use(cors(corsOptions));
+ app.use("*", ({ user, originalUrl }, res, next) => {
+ if (user && !originalUrl.includes("Heartbeat")) {
+ const userEmail = (user as any).email;
+ if (userEmail) {
+ timeMap[userEmail] = Date.now();
+ }
+ }
+ if (!user && originalUrl === "/") {
+ return res.redirect("/login");
+ }
+ next();
+ });
+
+ app.use(wdm(compiler, { publicPath: config.output.publicPath }));
+ app.use(whm(compiler));
+
+ registerAuthenticationRoutes(app);
+ registerCorsProxy(app);
+
+ const isRelease = determineEnvironment();
+
+ routeSetter(new RouteManager(app, isRelease));
+
+ const serverPort = isRelease ? Number(process.env.serverPort) : 1050;
+ const server = app.listen(serverPort, () => {
+ logPort("server", Number(serverPort));
+ console.log();
+ });
+ disconnect = async () => new Promise<Error>(resolve => server.close(resolve));
+
+ return isRelease;
+}
+
+const week = 7 * 24 * 60 * 60 * 1000;
+const secret = "64d6866242d3b5a5503c675b32c9605e4e90478e9b77bcf2bc";
+
+function buildWithMiddleware(server: express.Express) {
+ [
+ cookieParser(),
+ session({
+ secret,
+ resave: true,
+ cookie: { maxAge: week },
+ saveUninitialized: true,
+ store: process.env.DB === "MEM" ? new session.MemoryStore() : new MongoStore({ url: Database.url })
+ }),
+ flash(),
+ expressFlash(),
+ bodyParser.json({ limit: "10mb" }),
+ bodyParser.urlencoded({ extended: true }),
+ expressValidator(),
+ passport.initialize(),
+ passport.session(),
+ (req: express.Request, res: express.Response, next: express.NextFunction) => {
+ res.locals.user = req.user;
+ next();
+ }
+ ].forEach(next => server.use(next));
+ return server;
+}
+
+/* Determine if the enviroment is dev mode or release mode. */
+function determineEnvironment() {
+ const isRelease = process.env.RELEASE === "true";
+
+ const color = isRelease ? blue : yellow;
+ const label = isRelease ? "release" : "development";
+ console.log(`\nrunning server in ${color(label)} mode`);
+
+ let clientUtils = fs.readFileSync("./src/client/util/ClientUtils.ts.temp", "utf8");
+ clientUtils = `//AUTO-GENERATED FILE: DO NOT EDIT\n${clientUtils.replace('"mode"', String(isRelease))}`;
+ fs.writeFileSync("./src/client/util/ClientUtils.ts", clientUtils, "utf8");
+
+ return isRelease;
+}
+
+function registerAuthenticationRoutes(server: express.Express) {
+ server.get("/signup", getSignup);
+ server.post("/signup", postSignup);
+
+ server.get("/login", getLogin);
+ server.post("/login", postLogin);
+
+ server.get("/logout", getLogout);
+
+ server.get("/forgotPassword", getForgot);
+ server.post("/forgotPassword", postForgot);
+
+ const reset = new RouteSubscriber("resetPassword").add("token").build;
+ server.get(reset, getReset);
+ server.post(reset, postReset);
+}
+
+function registerCorsProxy(server: express.Express) {
+ const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/;
+ server.use("/corsProxy", (req, res) => {
+ req.pipe(request(decodeURIComponent(req.url.substring(1)))).on("response", res => {
+ const headers = Object.keys(res.headers);
+ headers.forEach(headerName => {
+ const header = res.headers[headerName];
+ if (Array.isArray(header)) {
+ res.headers[headerName] = header.filter(h => !headerCharRegex.test(h));
+ } else if (header) {
+ if (headerCharRegex.test(header as any)) {
+ delete res.headers[headerName];
+ }
+ }
+ });
+ }).pipe(res);
+ });
+}
diff --git a/src/server/updateSearch.ts b/src/server/updateSearch.ts
new file mode 100644
index 000000000..83094d36a
--- /dev/null
+++ b/src/server/updateSearch.ts
@@ -0,0 +1,121 @@
+import { Database } from "./database";
+import { Search } from "./Search";
+import { log_execution } from "./ActionUtilities";
+import { cyan, green, yellow, red } from "colors";
+
+const suffixMap: { [type: string]: (string | [string, string | ((json: any) => any)]) } = {
+ "number": "_n",
+ "string": "_t",
+ "boolean": "_b",
+ "image": ["_t", "url"],
+ "video": ["_t", "url"],
+ "pdf": ["_t", "url"],
+ "audio": ["_t", "url"],
+ "web": ["_t", "url"],
+ "date": ["_d", value => new Date(value.date).toISOString()],
+ "proxy": ["_i", "fieldId"],
+ "list": ["_l", list => {
+ const results = [];
+ for (const value of list.fields) {
+ const term = ToSearchTerm(value);
+ if (term) {
+ results.push(term.value);
+ }
+ }
+ return results.length ? results : null;
+ }]
+};
+
+function ToSearchTerm(val: any): { suffix: string, value: any } | undefined {
+ if (val === null || val === undefined) {
+ return;
+ }
+ const type = val.__type || typeof val;
+ let suffix = suffixMap[type];
+ if (!suffix) {
+ return;
+ }
+
+ if (Array.isArray(suffix)) {
+ const accessor = suffix[1];
+ if (typeof accessor === "function") {
+ val = accessor(val);
+ } else {
+ val = val[accessor];
+ }
+ suffix = suffix[0];
+ }
+
+ return { suffix, value: val };
+}
+
+async function update() {
+ console.log(green("Beginning update..."));
+ await log_execution<void>({
+ startMessage: "Clearing existing Solr information...",
+ endMessage: "Solr information successfully cleared",
+ action: Search.clear,
+ color: cyan
+ });
+ const cursor = await log_execution({
+ startMessage: "Connecting to and querying for all documents from database...",
+ endMessage: ({ result, error }) => {
+ const success = error === null && result !== undefined;
+ if (!success) {
+ console.log(red("Unable to connect to the database."));
+ process.exit(0);
+ }
+ return "Connection successful and query complete";
+ },
+ action: () => Database.Instance.query({}),
+ color: yellow
+ });
+ const updates: any[] = [];
+ let numDocs = 0;
+ function updateDoc(doc: any) {
+ numDocs++;
+ if ((numDocs % 50) === 0) {
+ console.log(`Batch of 50 complete, total of ${numDocs}`);
+ }
+ if (doc.__type !== "Doc") {
+ return;
+ }
+ const fields = doc.fields;
+ if (!fields) {
+ return;
+ }
+ const update: any = { id: doc._id };
+ let dynfield = false;
+ for (const key in fields) {
+ const value = fields[key];
+ const term = ToSearchTerm(value);
+ if (term !== undefined) {
+ const { suffix, value } = term;
+ update[key + suffix] = value;
+ dynfield = true;
+ }
+ }
+ if (dynfield) {
+ updates.push(update);
+ }
+ }
+ await cursor?.forEach(updateDoc);
+ const result = await log_execution({
+ startMessage: `Dispatching updates for ${updates.length} documents`,
+ endMessage: "Dispatched updates complete",
+ action: () => Search.updateDocuments(updates),
+ color: cyan
+ });
+ try {
+ const { status } = JSON.parse(result).responseHeader;
+ console.log(status ? red(`Failed with status code (${status})`) : green("Success!"));
+ } catch {
+ console.log(red("Error:"));
+ console.log(result);
+ console.log("\n");
+ }
+ await cursor?.close();
+ process.exit(0);
+}
+
+update(); \ No newline at end of file
diff --git a/src/typings/index.d.ts b/src/typings/index.d.ts
index 36d828fdb..281bb3217 100644
--- a/src/typings/index.d.ts
+++ b/src/typings/index.d.ts
@@ -1,6 +1,8 @@
/// <reference types="node" />
declare module 'googlephotos';
+declare module 'react-image-lightbox-with-rotate';
+declare module 'cors';
declare module '@react-pdf/renderer' {
import * as React from 'react';
diff --git a/test/test.ts b/test/test.ts
index f1cf75bd4..245733e9b 100644
--- a/test/test.ts
+++ b/test/test.ts
@@ -14,21 +14,21 @@ import { createSchema, makeInterface, defaultSpec } from '../src/new_fields/Sche
import { ImageField } from '../src/new_fields/URLField';
describe("Document", () => {
it('should hold fields', () => {
- let key = "Test";
- let key2 = "Test2";
- let field = 15;
- let doc = new Doc();
+ const key = "Test";
+ const key2 = "Test2";
+ const field = 15;
+ const doc = new Doc();
doc[key] = field;
- let getField = Cast(doc[key], "number");
- let getField2 = Cast(doc[key2], "number");
+ const getField = Cast(doc[key], "number");
+ const getField2 = Cast(doc[key2], "number");
expect(getField).to.equal(field);
expect(getField2).to.equal(undefined);
});
it('should update', () => {
- let doc = new Doc();
- let key = "Test";
- let key2 = "Test2";
+ const doc = new Doc();
+ const key = "Test";
+ const key2 = "Test2";
let ran = false;
reaction(() => doc[key], (field) => { ran = true; });
expect(ran).to.equal(false);
diff --git a/tslint.json b/tslint.json
index 76d28b375..0056f4266 100644
--- a/tslint.json
+++ b/tslint.json
@@ -1,32 +1,18 @@
{
+ "linterOptions": {
+ "exclude": ["./src/client/northstar/**", "**/*.js"]
+ },
"rules": {
- // "no-non-null-assertion": true,
"no-return-await": true,
"no-string-literal": true,
- // "no-var-keyword": true,
- // "no-var-requires": true,
"prefer-object-spread": true,
"prefer-for-of": true,
"no-unnecessary-type-assertion": true,
- // "no-void-expression": [
- // true,
- // "ignore-arrow-function-shorthand"
- // ],
"triple-equals": true,
- // "prefer-const": true,
+ "prefer-const": true,
"no-unnecessary-callback-wrapper": true,
- // "align": [
- // true,
- // "parameters",
- // "arguments",
- // "statements",
- // "members",
- // "elements"
- // ],
"class-name": true,
"arrow-return-shorthand": true,
- // "object-literal-shorthand": true,
- // "object-literal-sort-keys": true,
"semicolon": [
true,
"always"
@@ -35,13 +21,6 @@
true,
"ignore-same-line"
],
- // "quotemark": [
- // true,
- // "double",
- // "jsx-double",
- // "avoid-template",
- // "avoid-escape"
- // ],
"no-tautology-expression": true,
"unnecessary-constructor": true
// "trailing-comma": [
@@ -52,6 +31,33 @@
// }
// ],
// "ordered-imports": true
+ // "quotemark": [
+ // true,
+ // "double",
+ // "jsx-double",
+ // "avoid-template",
+ // "avoid-escape"
+ // ],
+ // "object-literal-shorthand": true,
+ // "object-literal-sort-keys": true,
+ // "align": [
+ // true,
+ // "parameters",
+ // "arguments",
+ // "statements",
+ // "members",
+ // "elements"
+ // ],
+ // "no-void-expression": [
+ // true,
+ // "ignore-arrow-function-shorthand"
+ // ],
+ // "no-non-null-assertion": true,
+ // "no-var-keyword": true,
+ // "no-var-requires": true,
},
- "defaultSeverity": "warning"
+ "defaultSeverity": "warning",
+ "jsRules": {
+
+ }
} \ No newline at end of file
diff --git a/views/login.pug b/views/login.pug
index 9bc40a495..98816e9c8 100644
--- a/views/login.pug
+++ b/views/login.pug
@@ -9,16 +9,14 @@ block content
.overlay(id='overlay_login')
a(href="/signup")
img(id='new_user', src="https://bit.ly/2EuqPb4", alt="")
- a(href="/forgot")
+ a(href="/forgotPassword")
img(id='forgot', src="https://bit.ly/2XjHpSo", alt="")
.inner.login
h3.auth_header Log In
.form-group
- //- label.col-sm-3.control-label(for='email', id='email_label') Email
.col-sm-7
input.form-control(type='email', name='email', id='email', placeholder='Email', autofocus, required)
.form-group
- //- label.col-sm-3.control-label(for='password') Password
.col-sm-7
input.form-control(type='password', name='password', id='password', placeholder='Password', required)
.form-group
diff --git a/views/stylesheets/authentication.css b/views/stylesheets/authentication.css
index 36bb880af..ff1f4aace 100644
--- a/views/stylesheets/authentication.css
+++ b/views/stylesheets/authentication.css
@@ -139,4 +139,85 @@ body {
padding-right: 10px;
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
+}
+
+.outermost, .online-container {
+ display: flex;
+ flex-direction: row;
+ height: 98vh;
+ justify-content: center;
+}
+
+.online-container {
+ background: white;
+ display: flex;
+ flex-direction: row;
+ height: 80%;
+ width: 80%;
+ align-self: center;
+ justify-content: center;
+ border-radius: 8px;
+ box-shadow: 10px 10px 10px #00000099;
+}
+
+.partition {
+ width: 50%;
+ display: flex;
+ flex-direction: column;
+ border: 1px solid black;
+}
+
+.inner-activity {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ height: 100%;
+ border-top: 2px solid black;
+ background: white;
+ padding: 20px;
+ overflow: scroll;
+}
+
+ol {
+ align-self: center;
+}
+
+li {
+ font-family: Arial, Helvetica, sans-serif;
+ border: 1px solid black;
+ padding: 10px;
+ border-radius: 5px;
+ margin-bottom: 5px;
+}
+
+.duration {
+ font-style: italic;
+}
+
+span.user-type {
+ align-self: center;
+ font-family: Arial, Helvetica, sans-serif;
+ font-weight: bold;
+ font-size: 20px;
+ margin: 50px;
+}
+
+#active-partition {
+ background: green;
+ border-top-left-radius: 8px;
+ border-bottom-left-radius: 8px;
+}
+
+#active-inner {
+ border-bottom-left-radius: 8px;
+}
+
+#inactive-partition {
+ background: red;
+ border-top-right-radius: 8px;
+ border-bottom-right-radius: 8px;
+}
+
+#inactive-inner {
+ border-bottom-right-radius: 8px;
} \ No newline at end of file
diff --git a/views/user_activity.pug b/views/user_activity.pug
new file mode 100644
index 000000000..68e42140d
--- /dev/null
+++ b/views/user_activity.pug
@@ -0,0 +1,19 @@
+extends ./layout
+
+block content
+ style
+ include ./stylesheets/authentication.css
+ .outermost
+ .online-container
+ .partition(id="active-partition")
+ span.user-type Active Users
+ .inner-activity(id="active-inner")
+ ol
+ each val in active
+ li= val
+ .partition(id="inactive-partition")
+ span.user-type Inactive Users
+ .inner-activity(id="inactive-inner")
+ ol
+ each val in inactive
+ li= val \ No newline at end of file